1. |
- Ahmar, Yosser El, et al.
(author)
-
Visual variables in UML: A first empirical assessment
- 2017
-
In: CEUR Workshop Proceedings. - 1613-0073. ; 2019, s. 376-384
-
Conference paper (peer-reviewed)abstract
- This paper presents results of an empirical research study of the Unified Modeling Language (UML) use in practice. We employed a selective range of research methodologies including in-depth semi structured interviews and quantitative analysis of > 3500 UML diagrams related to open source projects in GitHub. The aim of the study is to provide greater understanding about the use of UML and to particularly shed light on the use of the visual variables (i.e., color, size, brightness, texture/grain, shape and orientation) in practice. The theoretical perspective of the study is to explore the usefulness of the visual variables in UML. These latter are highly significant in reducing the cognitive load of human beings, when effectively employed. As with all qualitative study, findings should be carefully interpreted, they should be seen as providing better understanding about the aforementioned scopes. We conclude by discussions of the obtained results and lessons learned for future researches.
|
|
2. |
- Bergström, Gustav, et al.
(author)
-
Evaluating the layout quality of UML class diagrams using machine learning
- 2022
-
In: Journal of Systems and Software. - : Elsevier BV. - 0164-1212. ; 192
-
Journal article (peer-reviewed)abstract
- 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's note: Open Science material was validated by the Journal of Systems and Software Open Science Board.
|
|
3. |
- Chaudron, Michel, 1969, et al.
(author)
-
Diversity in UML modeling explained: Observations, classifications and theorizations
- 2018
-
In: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). - Cham : Springer International Publishing. - 1611-3349 .- 0302-9743. ; 10706 LNCS, s. 47-66
-
Conference paper (peer-reviewed)abstract
- Modeling is a common part of modern day software engineering practice. Little evidence exists about how models are used in software development and how they help in producing better software. In this talk we introduce a classification-matrix and a theoretical framework that helps explain the large variety of models and modeling styles found in industrial practice. As part of this explanation, we will explore empirical findings on the uses of UML modeling in practice. We intersperse this paper with some insights about modeling in software development that may be common to some, but certainly not generally accepted throughout the software engineering community.
|
|
4. |
- Hebig, Regina, 1984, et al.
(author)
-
How do students experience and judge software comprehension techniques?
- 2020
-
In: IEEE International Conference on Program Comprehension. - New York, NY, USA : ACM. ; , s. 425-435
-
Conference paper (peer-reviewed)abstract
- Today, there is a wide range of techniques to support softwarecomprehension. However, we do not fully understand yet whattechniques really help novices, to comprehend a software system.In this paper, we present a master level project course on softwareevolution, which has a large focus on software comprehension. Wecollected data about student's experience with diverse comprehension techniques during focus group discussions over the course oftwo years. Our results indicate that systematic code reading canbe supported by additional techniques to guiding reading efforts.Most techniques are considered valuable for gaining an overviewand some techniques are judged to be helpful only in later stagesof software comprehension efforts.
|
|
5. |
- Hebig, Regina, 1984, et al.
(author)
-
The quest for open source projects that use UML: mining GitHub.
- 2016
-
In: Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems (MODELS '16). - New York, NY, USA : ACM. - 9781450343213 ; , s. 173-183
-
Conference paper (peer-reviewed)abstract
- Context: While industrial use of UML was studied intensely, little is known about UML use in Free/Open Source Software (FOSS) projects. Goal: We aim at systematically mining GitHub projects to answer the question when models, if used, are created and updated throughout the whole project's life-span. Method: We present a semi-automated approach to collect UML stored in images, .xmi, and .uml files and scanned ten percent of all GitHub projects (1.24 million). Our focus was on number and role of contributors that created/updated models and the time span during which this happened. Results: We identified and studied 21 316 UML diagrams within 3 295 projects. Conclusion: Creating/updating of UML happens most often during a very short phase at the project start. For 12% of the models duplicates were found, which are in average spread across 1.88 projects. Finally, we contribute a list of GitHub projects that include UML files.
|
|
6. |
- Ho-Quang, Truong, 1989, et al.
(author)
-
Challenges and directions for a community infrastructure for Big Data-driven research in software architecture
- 2020
-
In: Model Management and Analytics for Large Scale Systems. - : Elsevier. ; , s. 13-35
-
Book chapter (other academic/artistic)abstract
- Research into software architecture and design has become more and more prominent since the 1990s. Since then, companies have reported how software architecting helped them to tackle various challenges in system design, especially related to system-level quality properties such as scalability and maintainability. Academic research in software architecture has focused on several areas, including architecture description through views and architecture description languages, and on methods for evaluating architectural designs. While much of the contribution of research in software architecture was inspired by industrial experiences, little of the research was validated beyond individual case studies. Many scientific disciplines are currently harvesting fruits from large-scale data collection about their subjects of study. Therefore, this chapter contributes a discussion of challenges and directions for Big Data-driven studies of software architecture. Given the large amount of effort that is needed for this type of research, a promising direction is to look into a community-based infrastructure for enabling and supporting this type of research. We share lessons learned through building various tools that could form building blocks in such an infrastructure. Based on these, we synthesize a reference architecture for creating such a community-wide infrastructure for Big Data-based research in software architecture.
|
|
7. |
- Ho-Quang, Truong, 1989, et al.
(author)
-
Interactive Role Stereotype-Based Visualization to Comprehend Software Architecture
- 2020
-
In: Proceedings - 8th IEEE Working Conference on Software Visualization, VISSOFT 2020. ; , s. 122-132
-
Conference paper (peer-reviewed)abstract
- Motivation: Software visualization can be helpful in comprehending the architecture of large software systems. Traditionally, software visualisation focuses on representing the structural perspectives of systems. In this paper we enrich this perspective by adding the notion of role-stereotype. This rolestereotype carries information about the type of functionality that a class has in the system as well as the types of collaborations with other classes that it typically has. Objective: We propose an interactive visualization called RoleViz, that visualizes system architectures in which architectural elements are annotated with their role-stereotypes. Method: We conducted a user-study in which developers use RoleViz and Softagram (a commercial tool for software architecture comprehension) to solve two separate comprehension tasks on a large open source system. We compared RoleViz against Softagram in terms of participant's: (i) perceived cognitive load, (ii) perceived usability, and (iii) understanding of the system. Result: In total, 16 developers participated in our study. Six of the participants explicitly indicated that visualizing roles helped them complete the assigned tasks. Our observations indicate significant differences in terms of participant's perceived usability and understanding scores. Conclusion: The participants achieved better scores on completing software understanding tasks with RoleViz without any cognitive-load penalty. Demo: https://youtu.be/HqCUAlai4qw?t=258
|
|
8. |
- Ho Quang, Truong, 1989, et al.
(author)
-
Interactive user-oriented views for better understanding software systems
- 2015
-
In: CEUR Workshop Proceedings. - 1613-0073. ; 1820, s. 48-53
-
Conference paper (peer-reviewed)abstract
- Understanding software artefacts is a crucial task for people who want to participate in any software development process. However, because of the large amount of detailed and scattered information in software artefacts, understanding them is usually time-consuming and vulnerable to human errors and subjectivities. A system that aids practitioners to investigate understanding about software artefacts could reduce the vulnerabilities and speed up software development/maintenance process. Our research focuses on building a comprehensive view of software system in order for developers to achieve the two goals: (i) to save the time spending on searching and navigating on source code; and (ii) to gain better understanding about software artefacts regarding to domain-specific tasks. To achieve these goals, we propose an emprical approach in which the visualisation and the generation of high-level design and architectural views from source code and design documentations have been played central roles. The research is on-going and could potentially be extended to different software artefacts (such as requirements, use-cases, test-cases, revision logs).
|
|
9. |
- Ho-Quang, Truong, 1989, et al.
(author)
-
Role stereotypes in software designs and their evolution
- 2022
-
In: Journal of Systems and Software. - : Elsevier BV. - 0164-1212. ; 189
-
Journal article (peer-reviewed)abstract
- 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's 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's 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.
|
|
10. |
- Ho-Quang, Truong, 1989, et al.
(author)
-
Towards an infrastructure for empirical research into software architecture: Challenges and directions
- 2019
-
In: Proceedings - 2019 IEEE/ACM 2nd International Workshop on Establishing a Community-Wide Infrastructure for Architecture-Based Software Engineering, ECASE 2019. ; , s. 34-41
-
Conference paper (peer-reviewed)abstract
- While the software engineering community at large has embraced empirical studies of source code, empirical studies of software architecture are lacking. In order to increase the possibility and relevance of studies into software architecture, an infrastructure for sharing empirical data on software architecture is essential. This paper contributes by discussing needs and challenges in empirical studies of software architecture. Based on lessons learned we propose CoSARI - a community-wide infrastructure for empirical research into software architecture.
|
|