scholarly journals Relationships between Software Architecture and Source Code in Practice: An Exploratory Survey and Interview

Author(s):  
Fangchao Tian ◽  
Peng Liang ◽  
Muhammad Ali Babar
Author(s):  
Marco Konersmann ◽  
Michael Goedicke

AbstractAs software architecture is a main driver for the software quality, source code is often accompanied by software architecture specifications. When the implementation is changed, the architecture specification is often not updated along with the code, which introduces inconsistencies between these artifacts. Such inconsistencies imply a risk of misunderstandings and errors during the development, maintenance, and evolution, causing serious degradation over the lifetime of the system. In this chapter we present the Explicitly Integrated Architecture approach and its tool Codeling, which remove the necessity for a separate representation of software architecture by integrating software architecture information with the program code. By using our approach, the specification can be extracted from the source code and changes in the specification can be propagated to the code. The integration of architecture information with the code leaves no room for inconsistencies between the artifacts and creates links between artifacts. We evaluate the approach and tool in a use case with real software in development and with a benchmark software, accompanied by a performance evaluation.


2012 ◽  
Vol 3 (4) ◽  
pp. 27-44
Author(s):  
Bernard Spitz ◽  
Riccardo Scandariato ◽  
Wouter Joosen

This paper presents the design and implementation of a prototype tool for the extraction of the so-called Task Execution Model directly from the source code of a software system. The Task Execution Model is an essential building block for the analysis of the least privilege violations in a software architecture (presented in previous work). However, the trustworthiness of the analysis results relies on the correspondence between the analyzed model and the implementation of the system. Therefore, the tool presented here is a key ingredient to provide assurance that the analysis results are significant for the system at hand.


2014 ◽  
pp. 1264-1288
Author(s):  
Patrick H. S. Brito ◽  
Ig Ibert Bittencourt ◽  
Aydano Pamponet Machado ◽  
Evandro Costa ◽  
Olavo Holanda ◽  
...  

The construction of Educational Recommender System (ERS) demands the incorporation of quality attributes at the software design, such as availability for preventing the service to be unavailable for a long time, and scalability for preventing the system from going offline due to a large number of simultaneous requests. The incorporation of such characteristics makes ERS more complex and expensive, but existing strategies for designing ERS do not consider quality attributes in an explicit way. This chapter presents an architecture-centered solution, which is partially supported by tools and considers quality attributes as early as possible in the software development process in a systematic way, from requirements to the source code. The feasibility of the proposed process is showed in terms of a case study executed in a “step-by-step” fashion, presenting how the software architecture can be designed and gradually refined until it achieves the level of object-oriented classes generated based on design patterns.


Author(s):  
SUNGWON KANG ◽  
SEONAH LEE ◽  
DANHYUNG LEE

For software with nontrivial size and complexity, it is not feasible to manually perform architecture reconstruction. Therefore it is essential for the software architecture miner who is mining architecture from the existing software to have a well-defined software architecture reconstruction process that helps incorporate as much tool use as possible at the appropriate steps of architecture reconstruction. There are some existing software architecture reconstruction frameworks but they do not provide guidelines on how to systematically utilize tools to produce architecture views for a reconstruction purpose. In this paper, we propose a framework for tool-based software architecture reconstruction. This framework consists of a generic process for software architecture reconstruction and the steps to derive from it a concrete tool-based process to be used for actual architecture reconstruction. The architecture miner can use this framework to analyze source code for modifying source code as well as to reconstruct software architecture from source code.


1998 ◽  
Vol 33 (7) ◽  
pp. 43-50
Author(s):  
Melissa P. Chase ◽  
Steven M. Christey ◽  
David R. Harris ◽  
Alexander S. Yeh

2020 ◽  
Vol 4 (2) ◽  
pp. 58
Author(s):  
Hind Alamin M ◽  
Hany H Ammar

Recently, reverse engineering (RE) is becoming one of the essential engineering trends for software evolution and maintenance. RE is used to support the process of analyzing and recapturing the design information in legacy systems or complex systems during the maintenance phase. The major problem stakeholders might face in understanding the architecture of existing software systems is that the knowledge of software architecture information is difficult to obtain because of the size of the system, and the existing architecture document often is missing or does not match the current implementation of the source code. Therefore, much more effort and time are needed from multiple stakeholders such as developers, maintainers and architects for obtaining and re-documenting and visualizing the architecture of a target system from its source code files. The current works is mainly focused on the developer viewpoint. In this paper, we present a RE methodology for visualizing architectural information for multiple stakeholders and viewpoints based on applying the RE process on specific parts of the source code. The process is driven by eliciting stakeholders’ concerns on specific architectural viewpoints to obtain and visualize architectural information related these concerns. Our contributions are three fold: 1- The RE methodology is based on the IEEE 1471 standard for architectural description and supports concerns of stakeholder including the end-user and maintainer; 2- It supports the visualization of a particular part of the target system by providing a visual model of the architectural representation which highlights the main components needed to execute specific functionality of the target system, 3- The methodology also uses architecture styles to organize the visual architecture information. We illustrate the methodology using a case study of a legacy web application system.


Sign in / Sign up

Export Citation Format

Share Document