• English
    • svenska
  • English 
    • English
    • svenska
  • Login
View Item 
  •   Home
  • Student essays / Studentuppsatser
  • Department of Computer Science and Engineering / Institutionen för data- och informationsteknik
  • Kandidatuppsatser
  • View Item
  •   Home
  • Student essays / Studentuppsatser
  • Department of Computer Science and Engineering / Institutionen för data- och informationsteknik
  • Kandidatuppsatser
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

Reverse Architecting: Automatic labelling of- Concerns in Reverse Engineered Software Systems

Abstract
A 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.
Degree
Student essay
URI
http://hdl.handle.net/2077/39968
Collections
  • Kandidatuppsatser
View/Open
Bachelor Thesis (1.157Mb)
Date
2015-07-20
Author
Andam, Berima K.
Keywords
Reverse engineering
program comprehension
concern
static analysis
software metrics
Language
eng
Metadata
Show full item record

DSpace software copyright © 2002-2016  DuraSpace
Contact Us | Send Feedback
Theme by 
Atmire NV
 

 

Browse

All of DSpaceCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

My Account

LoginRegister

DSpace software copyright © 2002-2016  DuraSpace
Contact Us | Send Feedback
Theme by 
Atmire NV