Exploring architectural analysis credibility from a developer perspective
Mathias Ekstedt, Pontus Johnson · 2002
Software engineering has during its short life as an academic discipline experienced a continuous shift of its domain of interest towards higher-level abstractions. During the last decade, the term software architecture has been the reference term for the most abstracted engineering model of a software system. A model is, however, of limited use if it cannot be used as a base for reasoning. Therefore, a number of methods have been proposed for architectural analysis. There are currently architecture-based methods for prediction of such diverse issues as performance, usability, reliability, modifiability and maintainability, security, and more. The relationship between an architectural specification and the implemented system is, however, a complicated relationship; it can be described as a number of transformations between different specification languages. These languages include architecture description languages, modeling languages, programming languages, machine languages, etc. This article claims that there is a risk that a distortion between two specifications is involuntarily introduced in software development projects in at least one of these transformations that is grave enough to corrupt the results of architectural analyses.