چكيده به لاتين
Quality attributes (e.g. security and performadnce) provide a foundation for software quality evalua-tion. For some of these attrivbutes, there are well-known quantitative metics that help us determine to what extent the quality requirmeents are achieved. Due to the increase in modification costs during the development process, it would be too cost-effective if this evaluation takes place in the early de-velopment stages.
Architecture is an artifact of the software development process, which reflects the key decisions made for the systm requirements. Architectural design decisions have major impacts on the quality of the final product. However, in traditional software development processes quality attributes are con-sidered only in the final development stages. The main reason for this issue is the information gap that exists between software engineers and quality exnperts. Moreover, not only quantitative evalua-tion of each quality attribute has its own difficulties, but also there exist complex relations between different quality attributes, e.g. security affects performance, and performance affects modifiability. Ignoring these relations may lead to the failure of the whole development process.
Hereunto, many methods have been proposed for architecture-level quantitative evaluation of software quality attributes, however most of them concentrate on a single attribute without consider-ing its relations with others. Furthermore, many of these methods propose no solution for analyzing uncertainty in analyses, and improving the architecture based on evaluation results.
The purpose of this thesis is to present SQME as a framework for quantitative evaluation of the quality attributes of software architecture. At first, a generic and language-independent definition of this framework is presented. Then, two specialized definitions for the UML language are elaborated. In these definitions, performance, dependability and security are the attributes considered for evalua-tion, and the MARTE, DAM and SecAM profiles are used for adding the necessary information to UML models. Moreover, both definitions propose methods based on evolutionary algorithms and MCDM algorithms for improving architecture models and analyzing the tradeoffs between the quality attributes.
In the first specialized definition, reward models are used for integrated evaluation of quantitative measures, and the Monte-Carlo method is used for analyzing uncertainty in evaluations. Whereas. The second definition suggests the use of evidence theory for this purpose. In addition to the illustra-tive examples and case studies performed on each definition, a software tool is introduced, which is developed to automate the evaluation processed proposed in the SQME framework.