Observing software architectural gaps in industry: A case study
Examensarbete för masterexamen
The software architecture is an important part of any software system, especially as today’s software systems become increasingly complex. A key objective of having a software architecture is to encourage a united perception regarding the structure of a system. However, this is no easy task and differences may arise between intention, implementation, and individual workers’ interpretation. These different perceptions of a system’s architecture may cause a threat to the system’s quality. For example, new features and solutions based on a developers perception of the architecture might violate the intended architecture. These violations may in turn cause a threat to system quality attributes such as performance, testability, modularity, etc , . This thesis aims to discover and analyze gaps between the implemented architecture and the architecture interpreted by the developers of a software system used in industry. In order to be able to identify such gaps, both the implemented and interpreted architecture first had to be extracted. The implemented architecture was extracted by reverse-engineering, and the interpreted architecture was gathered through interviews with developers working on the system. Several types of gaps were identified while comparing the two architectural views to each other. The second stage of the case study was to gather insights from the developers regarding the causes and effects of the found gaps, establishing how their interpretation and the implementation came to differ and the effects thereof. The study resulted in the discovery of a selection of gaps, such as missing modules or missing communication between modules. Lack of high-level documentation and lost architectural knowledge were two of the identified causes for gaps to arise, resulting in effects such as increased implementation time and higher coupling. The system investigated in this study is called Minihydra and is used as firmware in a selection of products produced by the Swedish company Kvaser.
software architecture , architecture interpretation , software architectural gaps , architecture erosion , software decay , reverse-engineering