1,721,001 research outputs found
Role stereotypes in software designs and their evolution
Role stereotypes are abstract characterisations of the responsibilities of the building blocks of software applications. The role a class plays within a software system reflects its design intention. Wirfs-Brock introduced the following six role stereotypes: Information Holder, which knows information, Structurer, which maintains object relationships, Service Provider, which offers computing services, Coordinator, which delegates tasks to others, Controller, which directs other\u27s actions, and Interfacer, which transforms information. Knowledge about class role stereotypes can help various software development and maintenance tasks, such as program understanding, program summarisation, and quality assurance. This paper presents an automated machine learning-based approach for classifying the role-stereotype of classes in Java projects. We analyse this approach\u27s performance against a manually labelled ground truth for three open source projects that contain 1,500+ Java classes altogether. The contributions of this paper include: (i) a machine learning (ML) approach to address the problem of automatically inferring role-stereotypes of classes in Object-Oriented Programming Languages, (ii) the manually labelled ground truth, (iii) an evaluation of the performance of the classifier, (iv) an evaluation of the generalisability of the approach, and (v) an illustration of new uses of role-stereotypes. The evaluation shows that the Random Forest algorithm yields the best classification performance. We find, however, that the performance of the ML-classifier varies a lot for different role stereotypes. In particular, its performance degrades when classifying rarer stereotypes. Among the 23 features that we study, features related to the classes’ collaboration characteristics and complexity stand out as the best discriminants of role stereotypes
Integration of design smells and role-stereotypes classification dataset
Design smells are recurring patterns of poorly designed (fragments of) software systems that may hinder maintainability. Role-stereotypes indicate generic responsibilities that classes play in system design. Although the concepts of role-stereotypes and design smells are widely divergent, both are significant contributors to the design and maintenance of software systems. To improve software design and maintainability, there is a need to understand the relationship between design smells and role stereotypes. This paper presents a fine-grained dataset of systematically integrated design smells detection and role-stereotypes classification data. The dataset was created from a collection of twelve (12) real-life open-source Java projects mined from GitHub. The dataset consists of 18 design smells columns and 2,513 Java classes (rows) classified into six (6) role-stereotypes taxonomy. We also clustered the dataset into ten (10) different clusters using an unsupervised learning algorithm. Those clusters are useful for understanding the groups of design smells that often co-occur in a particular role-stereotype category. The dataset is significant for understanding the non-innate relationship between design smells and role-stereotypes
A conceptual model for unifying variability in space and time: Rationale, validation, and illustrative applications
With the increasing demand for customized systems and rapidly evolving technology, software engineering faces many challenges. A particular challenge is the development and maintenance of systems that are highly variable both in space (concurrent variations of the system at one point in time) and time (sequential variations of the system, due to its evolution). Recent research aims to address this challenge by managing variability in space and time simultaneously. However, this research originates from two different areas, software product line engineering and software configuration management, resulting in non-uniform terminologies and a varying understanding of concepts. These problems hamper the communication and understanding of involved concepts, as well as the development of techniques that unify variability in space and time. To tackle these problems, we performed an iterative, expert-driven analysis of existing tools from both research areas to derive a conceptual model that integrates and unifies concepts of both dimensions of variability. In this article, we first explain the construction process and present the resulting conceptual model. We validate the model and discuss its coverage and granularity with respect to established concepts of variability in space and time. Furthermore, we perform a formal concept analysis to discuss the commonalities and differences among the tools we considered. Finally, we show illustrative applications to explain how the conceptual model can be used in practice to derive conforming tools. The conceptual model unifies concepts and relations used in software product line engineering and software configuration management, provides a unified terminology and common ground for researchers and developers for comparing their works, clarifies communication, and prevents redundant developments
Evaluating the layout quality of UML class diagrams using machine learning
UML is the de facto standard notation for graphically representing software. UML diagrams are used in the analysis, construction, and maintenance of software systems. Mostly, UML diagrams capture an abstract view of a (piece of a) software system. A key purpose of UML diagrams is to share knowledge about the system among developers. The quality of the layout of UML diagrams plays a crucial role in their comprehension. In this paper, we present an automated method for evaluating the layout quality of UML class diagrams. We use machine learning based on features extracted from the class diagram images using image processing. Such an automated evaluator has several uses: (1) From an industrial perspective, this tool could be used for automated quality assurance for class diagrams (e.g., as part of a quality monitor integrated into a DevOps toolchain). For example, automated feedback can be generated once a UML diagram is checked in the project repository. (2) In an educational setting, the evaluator can grade the layout aspect of student assignments in courses on software modeling, analysis, and design. (3) In the field of algorithm design for graph layouts, our evaluator can assess the layouts generated by such algorithms. In this way, this evaluator opens up the road for using machine learning to learn good layouting algorithms. Approach.: We use machine learning techniques to build (linear) regression models based on features extracted from the class diagram images using image processing. As ground truth, we use a dataset of 600+ UML Class Diagrams for which experts manually label the quality of the layout. Contributions.: This paper makes the following contributions: (1) We show the feasibility of the automatic evaluation of the layout quality of UML class diagrams. (2) We analyze which features of UML class diagrams are most strongly related to the quality of their layout. (3) We evaluate the performance of our layout evaluator. (4) We offer a dataset of labeled UML class diagrams. In this dataset, we supply for every diagram the following information: (a) a manually established ground truth of the quality of the layout, (b) an automatically established value for the layout-quality of the diagram (produced by our classifier), and (c) the values of key features of the layout of the diagram (obtained by image processing). This dataset can be used for replication of our study and others to build on and improve on this work. Editor\u27s note: Open Science material was validated by the Journal of Systems and Software Open Science Board
Joint workshop on foundations and practice of visual modeling (FPVM) and data for model–driven engineering (Data4MDE)
Human values in software development artefacts: A case study on issue discussions in three Android applications
Context: Human values such as inclusion, privacy, and accessibility need to be considered during software development to attract and maintain users. However, little effort has been made to study human values consideration in software development, particularly in software development artefacts. Objective: Issue discussion is potentially a rich source for human values analysis because it is a common place for users and developers to share and communicate their concerns. This paper aims to investigate the extent to which human values are discussed and whether the presence of values differs across projects. Method: We carried out a case study to discover human values in 1,097 issues collected from three Android projects: Signal, K-9, and Focus. Results: We identified 20 value themes and proposed a contextualised software engineering description for each of them. The analysis shows that privacy, freedom, usability, and efficiency were the prevalent value themes in the issue discussions of these three projects. Meanwhile, Self-direction - Action and Security - Personal are the common prevalent human values found in the projects. Moreover, we found that a statement of values from the apps and their functionalities could contribute to the presence of values. Conclusion: The results suggest that human values are present in software development artefacts, for which automated tools can be developed to extract and classify human values from them
International Workshop on Model-Driven Engineering for Digital Twins
Digital twins (DT) are emerging and gaining attention in several disciplines to support different phases of the system life-cycle such as design-space exploration, runtime adaptation, and predictive maintenance of cyber-physical systems (CPSs). The term DT refers to the capability to clone an actual system into a virtual counterpart, that reflects the important properties of the system for a specific purpose. While benefits of DT have been demonstrated in many domains, their development, operation, and evolution, trigger major challenges. Part of these may be addressed from a Model Driven Engineering (MDE) perspective. MoDDiT'21 aims at bringing together researchers and practitioners in the DTs area to shape the future of systematically designing, engineering, evolving, maintaining, and evaluating DTs
SAMOS - A Framework for Model Analytics and Management
The increased popularity and adoption of model-* engineering paradigms, such as model-driven and model-based engineering, leads to an increase in the number of models, metamodels, model transformations and other related artifacts. This calls for automated techniques to analyze large collections of those artifacts to manage model-* ecosystems. SAMOS is a framework to address this challenge: it treats model-* artifacts as data, and applies various techniques - ranging from information retrieval to machine learning - to analyze those artifacts in a holistic, scalable and efficient way. Such analyses can help to understand and manage those ecosystems.Accepted as original software publication at the journal Science of Computer Programming. 2022. For source code and manual, please go to https://github.com/onderbabur/samos
Aggregation-based minimization of finite state automata
We present a minimization algorithm for non-deterministic finite state automata that finds and merges bisimulation-equivalent states. The bisimulation relation is computed through partition aggregation, in contrast to existing algorithms that use partition refinement. The algorithm simultaneously generalises and simplifies an earlier one by Watson and Daciuk for deterministic devices. We show the algorithm to be correct and run in time O(n2r2|Σ|), where n is the number of states of the input automaton M, r is the maximal out-degree in the transition graph for any combination of state and input symbol, and |Σ| is the size of the input alphabet. The algorithm has a higher time complexity than derivatives of Hopcroft’s partition-refinement algorithm, but represents a promising new solution approach that preserves language equivalence throughout the computation process. Furthermore, since the algorithm essentially computes the maximal model of a logical formula derived from M, optimisation techniques from the field of model checking become applicable
- …
