Manually Mapping Model Elements onto the Modeled Code by Analyzing GitHub Data

dc.contributor.authorZhang, Wenli
dc.contributor.departmentChalmers tekniska högskola / Institutionen för data och informationstekniksv
dc.contributor.departmentChalmers University of Technology / Department of Computer Science and Engineeringen
dc.contributor.examinerBerger, Christian
dc.contributor.supervisorHebig, Regina
dc.date.accessioned2023-02-28T08:29:36Z
dc.date.available2023-02-28T08:29:36Z
dc.date.issued2023
dc.date.submitted2023
dc.description.abstractContext: Class diagrams are one of the most popular UML models and are frequently used in the early stages of software development. The advantage of using class diagrams is that they can reflect design decisions and the system’s implementation structure. Maintainers can use class diagrams to understand the system’s implementation structure. Yet, as the code evolves, the absence of updating class diagrams will cause the code implementation to deviate from the class diagram design. One concern is that such a divergent class diagram does not help maintainers much in the same way during the maintenance stage. As a solution, reverse engineering methods/tools can reverse code into class diagrams. Yet, another concern comes up, in most cases, the reverse-engineered class diagrams are not abstract, and they contain extensive information that will burden the understanding of the system’s implementation structure. This is because the existing reverse engineering methods/tools are imperfect as they do not manage to imitate the human ability to abstract relevant information from the source code. Surprisingly, existing studies on the characteristics of manual abstraction are based on the opinions and experiences of participants but do not study actual cases of models and source code. Also, the methods/technologies used for checking the similarities and differences between the models and source code are purely structural but do not analyze or take the semantics of the model elements into account when mapping classes from models and code. The semantics is closely related to abstraction creation. Thereby, a systematic manual study on the characteristics of manual abstraction is required. Aim: To fill this gap, this thesis aimed at studying the characteristics of the differences between the class diagram design and the code implementation by manually creating the mappings between the class diagram elements/constituents and the code constructs. Our manual studies can precisely capture the differences between the class diagram design and source code implementation and investigate the causes of these differences. Method: We employed the methodology of five case studies. The five subjects studied are five Java open-source projects collected from GitHub. They are semirandomly selected from the Linholmen dataset [1]. Results: For the differences between the class diagram design and code implementation, three causes are summarized: various levels of manual abstraction created in class diagrams, deviations of code implementation from class diagram design, and common changes between the class diagram elements/constituents and code constructs. We contribute to a sorted list of cases corresponding to these three causes.
dc.identifier.coursecodeDATX05
dc.identifier.urihttp://hdl.handle.net/20.500.12380/305997
dc.language.isoeng
dc.setspec.uppsokTechnology
dc.subjectUML
dc.subjectModels in Open Source Systems
dc.subjectReverse Engineering
dc.subjectDeviations between Code and Design
dc.subjectManual Abstraction in Modeling
dc.titleManually Mapping Model Elements onto the Modeled Code by Analyzing GitHub Data
dc.type.degreeExamensarbete för masterexamensv
dc.type.degreeMaster's Thesisen
dc.type.uppsokH
local.programmeSoftware engineering and technology (MPSOF), MSc
Ladda ner
Original bundle
Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
CSE 23-05 Wenli Zhang.pdf
Storlek:
9.68 MB
Format:
Adobe Portable Document Format
Beskrivning:
License bundle
Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
license.txt
Storlek:
2.35 KB
Format:
Item-specific license agreed upon to submission
Beskrivning: