{"title":"功能天使与质量魔鬼:将质量场景整合到软件密集型系统架构的功能场景中","authors":"A. Tomer","doi":"10.15344/2456-4451/2019/144","DOIUrl":null,"url":null,"abstract":"Software architecture design is intended to propose a software-intensive architectural solution for a required system. As such, the architecture needs to address all the required functionality while satisfying all the required quality attributes, which are usually referred to as the non-functional requirements. Therefore, a major concern of the software architecture is its behavior, besides its structure. Softwareintensive system specifications tend to be functional in nature, focusing on its behavior, i.e. what is expected to be done by the system, whereas quality attributes, which usually describe other properties of the system (e.g. performance, availability, safety, etc.) are, in many cases, described in general terms, and sometimes even being overlooked. The immediate result is that the software architecture, both behavioral and structural, fails to address quality issues whose absence is discovered only in late stages of system verification, validation or operation. This paper introduces a two-phase process by which a software-intensive architecture is constructed, satisfying both functional and non-functional requirements. In the first phase an initial architecture is constructed, comprising its physical, functional, combined and behavioral views. In the second phase a systematic approach is introduced to discover overlooked quality attributes of a system which might be violated during its operational (functional) scenarios. In this approach, quality attributes play the role of \"devil's advocates\", challenging the functionality by suggesting what can go wrong while the system performs its functional scenarios. Such challenges yield two results: (1) new \"quality scenarios\", which describe how the system should behave in order to prohibit a fault from causing a failure, and (2) modifications to the entire architecture needed to support the newly-derived functionality. 1In common parlance, the term devil's advocate describes someone who, given a certain point of view, takes a position he or she does not necessarily agree with (or simply an alternative position from the accepted norm), for the sake of debate or to explore the thought further [Wikipedia]. Special Issue: Software Architecture","PeriodicalId":31240,"journal":{"name":"International Journal of Software Engineering and Computer Systems","volume":"76 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2019-04-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Functional Angels and Quality Devils: Incorporating Quality Scenarios into Functional Scenarios for Software-intensive System Architecture\",\"authors\":\"A. Tomer\",\"doi\":\"10.15344/2456-4451/2019/144\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Software architecture design is intended to propose a software-intensive architectural solution for a required system. As such, the architecture needs to address all the required functionality while satisfying all the required quality attributes, which are usually referred to as the non-functional requirements. Therefore, a major concern of the software architecture is its behavior, besides its structure. Softwareintensive system specifications tend to be functional in nature, focusing on its behavior, i.e. what is expected to be done by the system, whereas quality attributes, which usually describe other properties of the system (e.g. performance, availability, safety, etc.) are, in many cases, described in general terms, and sometimes even being overlooked. The immediate result is that the software architecture, both behavioral and structural, fails to address quality issues whose absence is discovered only in late stages of system verification, validation or operation. This paper introduces a two-phase process by which a software-intensive architecture is constructed, satisfying both functional and non-functional requirements. In the first phase an initial architecture is constructed, comprising its physical, functional, combined and behavioral views. In the second phase a systematic approach is introduced to discover overlooked quality attributes of a system which might be violated during its operational (functional) scenarios. In this approach, quality attributes play the role of \\\"devil's advocates\\\", challenging the functionality by suggesting what can go wrong while the system performs its functional scenarios. Such challenges yield two results: (1) new \\\"quality scenarios\\\", which describe how the system should behave in order to prohibit a fault from causing a failure, and (2) modifications to the entire architecture needed to support the newly-derived functionality. 1In common parlance, the term devil's advocate describes someone who, given a certain point of view, takes a position he or she does not necessarily agree with (or simply an alternative position from the accepted norm), for the sake of debate or to explore the thought further [Wikipedia]. Special Issue: Software Architecture\",\"PeriodicalId\":31240,\"journal\":{\"name\":\"International Journal of Software Engineering and Computer Systems\",\"volume\":\"76 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-04-04\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Journal of Software Engineering and Computer Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.15344/2456-4451/2019/144\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Journal of Software Engineering and Computer Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.15344/2456-4451/2019/144","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Functional Angels and Quality Devils: Incorporating Quality Scenarios into Functional Scenarios for Software-intensive System Architecture
Software architecture design is intended to propose a software-intensive architectural solution for a required system. As such, the architecture needs to address all the required functionality while satisfying all the required quality attributes, which are usually referred to as the non-functional requirements. Therefore, a major concern of the software architecture is its behavior, besides its structure. Softwareintensive system specifications tend to be functional in nature, focusing on its behavior, i.e. what is expected to be done by the system, whereas quality attributes, which usually describe other properties of the system (e.g. performance, availability, safety, etc.) are, in many cases, described in general terms, and sometimes even being overlooked. The immediate result is that the software architecture, both behavioral and structural, fails to address quality issues whose absence is discovered only in late stages of system verification, validation or operation. This paper introduces a two-phase process by which a software-intensive architecture is constructed, satisfying both functional and non-functional requirements. In the first phase an initial architecture is constructed, comprising its physical, functional, combined and behavioral views. In the second phase a systematic approach is introduced to discover overlooked quality attributes of a system which might be violated during its operational (functional) scenarios. In this approach, quality attributes play the role of "devil's advocates", challenging the functionality by suggesting what can go wrong while the system performs its functional scenarios. Such challenges yield two results: (1) new "quality scenarios", which describe how the system should behave in order to prohibit a fault from causing a failure, and (2) modifications to the entire architecture needed to support the newly-derived functionality. 1In common parlance, the term devil's advocate describes someone who, given a certain point of view, takes a position he or she does not necessarily agree with (or simply an alternative position from the accepted norm), for the sake of debate or to explore the thought further [Wikipedia]. Special Issue: Software Architecture