Evaluating Software Architecture Based on Their Implemented Patterns and Tactics
Creators: name: Bani Milhem, Hind Ahmad Ismail
Publisher: name: Université d'Ottawa / University of Ottawa
Year: 2020
Subjects: Software Architecture
Software Architecture Evaluation
Patterns
Tactics
Patterns/Tactics Extraction
Software Architecture Modeling

description: Context: Software architecture plays a critical role in achieving system quality attributes. Therefore, evaluating a system’s architecture with regard to desired quality requirements is very important. Architecture evaluation is an approach for assessing whether a software architecture can support the system needs, especially its quality attributes. Software architecture evaluation methods have been developed based on various characteristics and criteria such as the previous experience and domain knowledge of architects or developers, mathematical methods, features and scenarios, and testing. However, these methods may not be sufficient to reliably analyze certain quality attributes (i.e. performance, availability, and reliability). These methods also put little consideration on the architectural patterns and tactics used in the implementation, and the importance values of the desired quality attributes. Objectives: This thesis proposes an architecture evaluation approach that considers satisfaction values of the quality attributes (Non-Functional Requirements) by the implemented patterns and tactics. The main objectives of this thesis are to provide: • A way to connect a software implementation to quality attributes to support a software architecture evaluation based on its implemented architectural patterns and tactics. The evaluation considers the importance values of the quality attributes. • Software architectures model in terms of their implemented architectural patterns and tactics taking into consideration the overlaps between the architectural patterns and tactics, and the importance values of the quality attributes. Such a model would provide a rationale about the satisfaction levels of given quality attributes and their trade-offs. Method: In this thesis, I extract the implemented architectural patterns and tactics from a software architecture’s source code and document them to connect the software architecture to quality requirements. I use a tool called Archie to extract the implemented architectural patterns/tactics from software. I then document and model the patterns/tactics implemented by a software architecture and their impact on quality attributes using the Goal-oriented Requirements Language (GRL). Furthermore, I evaluate the GRL model of a software architecture by applying GRL/jUCMNav evaluation strategies to get the satisfaction values of the quality attributes. I validate the applicability and feasibility of our approach by applying it to different case studies from different contexts (big data systems, the healthcare system of systems, and build-automation systems). I compare the inferred quality attributes such as reliability, availability, performance, etc. to benchmark comparison results from the literature, and existing evaluation approaches. Results: The satisfaction levels of the quality requirements by a set of architectural patterns and tactics of a software architecture, integrated with other criteria such as the importance values of the quality requirements, provide architects with a tool for evaluating different software architectures and documenting their rationale for assessing a software architecture. The three case studies show that our approach can be used to evaluate multiple software architectures and therefore, to identify strengths and weaknesses in different alternatives (i.e. alternative architectures, frameworks) and choose among them during the early design stages (i.e. cyber fusion center case study). Furthermore, it can be used to analyze, understand, and evaluate an existing implementation before future maintenance (i.e. HSH-SoS architecture case study). Additionally, our approach can be used to compare several implementations, based on specific quality attributes (i.e. Gradle and Maven case study). Finally, the modeling artifact should also enable faster evaluation with less efforts compared to the manual inspection of the source code and documentation of a software architecture.