Software architecture refers to the high level of structures of a software system, comprising of software elements, the process of creating such elements, the properties and relations between the elements. According to the article by Wang & Yang (2012), software architecture is a critical aspect of the software design and development process, as a good architecture ensures higher quality attributes of the system. Poor software architecture paves way for cost and time inefficiencies in the design, development and implementation process. With the advancement in technology, a number of software architecture styles have been created. Each architecture is designed to solve certain software problems and requirements, and as such, it is important to select and adopt the appropriate architecture for enhanced quality attributes (Tofan, Galster, Avgeriou, & Schuitema, 2014).
Opinions
According to Wang & Yang (2012), the selection method of a software architecture style should be divided into two parts: the evaluation process and the selection criteria. The evaluation criteria describe the factors that are taken into consideration in the measurement and horizontal comparison of each software architecture style. Quality attributes provide the best basis for determining the evaluation criteria. After the measurement is done, the most appropriate software architecture is selected (selection process). Following the steps outlined in the Analytic Hierarchy Process provides the best method for the selection process.
Delegate your assignment to our experts and they will do the rest.
Quality attributes include the functional and the non-functional requirements, the domain of the system, and the priorities of the architects. Adoption of appropriate software architecture is thus a decision-making process that involves considering multiple criteria. The limitation of resources makes it difficult to consider all the criteria, and therefore, the most critical criteria are prioritized. The quality attributes can be categorized on the basis of their effect, nature, and context. The most appropriate selection system, in line with AHP, involves the analysis target system category, prioritizing of the quality attributes, and making the final decision.
Data
11 articles were used in the study. All the architecture styles from the articles were evaluated for quality attributes based on their scope of application and support. The QAs evaluated were maintainability, portability, simplicity, flexibility, testability, availability, performance, reusability, scalability, cost, lifetime, usability, concurrency, reliability, and security (Wang & Yang, 2012).
Conclusion
Selection and adoption of software architecture is an integral part of the software design and development process because the performance of the software is dependent on the quality attributes. Evaluation of the quality attributes provides an effective basis for measurement, selection, and adoption of the architecture. The evaluation is an easy process and can be utilized even by people with limited experience or expertise in software architecture selection.
References
Clements, P., Kazman, R., & Klein, M. (2003). Evaluating software architectures . Beijing: Tsinghua University Press.
Tofan, D., Galster, M., Avgeriou, P., & Schuitema, W. (2014). Past and future of software architectural decisions–A systematic mapping study. Information and Software Technology , 56 (8), 850-872.
Wang, Q., & Yang, Z. (2012). A method of selecting appropriate software architecture styles: quality Attributes and analytic hierarchy process. Retrieved on 25 th September 2018 from https://gupea.ub.gu.se/bitstream/2077/30045/1/gupea_2077_30045_1.pdf