Show simple item record

dc.contributor.authorAndam, Berima K.
dc.date.accessioned2015-07-20T12:42:16Z
dc.date.available2015-07-20T12:42:16Z
dc.date.issued2015-07-20
dc.identifier.urihttp://hdl.handle.net/2077/39968
dc.description.abstractA significantly large fraction of time during development and maintenance is spent on understanding unfamiliar parts of software systems. The existence of software documentation, such as software architecture design documentation can significantly reduce the amount of time spent on this task. However in reality, few software systems have an up-to-date documentation because project time pressure makes it impractical to do so. During comprehension therefore, software engineers often try to recover these lost design documentation through reverse engineering. However, current reverse engineered diagrams show only one perspective of a software system; the components that exist in the system and the relationship between them. Often, software engineers require additional perspectives in order to understand how a system works. In this research, we aim to solve this problem by providing one such perspective on top of reverse engineered diagrams. We provide a framework and tool for automatically identifying common system concerns that are found in modern software systems, and then map them back to the software components in the system that implement them. An example of such system concerns are user interfaces, persistence, security etc. A regular question that comes up during comprehension is which software components in a system implement these concerns. We propose a taxonomy of these common concerns, and a framework and tool for automatically identifying and labelling system components that implement them. Our framework is based one lightweight static analysis. It calculates three metrics that are then used during identification. An evaluation of the Concern Detector tool (and in essence the framework) on 4 software systems showed that, authors of the systems agreed 65.5% - 76.8% with the tool’s classification of components in their systems. This indicates that, the tool is useful for describing the roles of these components in terms of implementing these concerns. The current implementation is for the java programming language; however the approach is designed to be generalizable for most object oriented programming languages.sv
dc.language.isoengsv
dc.subjectReverse engineeringsv
dc.subjectprogram comprehensionsv
dc.subjectconcernsv
dc.subjectstatic analysissv
dc.subjectsoftware metricssv
dc.titleReverse Architecting: Automatic labelling of- Concerns in Reverse Engineered Software Systemssv
dc.typetext
dc.setspec.uppsokTechnology
dc.type.uppsokM2
dc.contributor.departmentGöteborgs universitet/Institutionen för data- och informationsteknikswe
dc.contributor.departmentUniversity of Gothenburg/Department of Computer Science and Engineeringeng
dc.type.degreeStudent essay


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record