{"title":"Non-functional refinement of computer based systems architecture","authors":"M. Denford, J. Leaney, T. O'Neill","doi":"10.1109/ECBS.2004.1316696","DOIUrl":null,"url":null,"abstract":"Architecture based refinement is an important technique for ensuring efficiency, effectiveness and correctness in the practical design of complex computer based systems. With a few exceptions, current methods of architectural refinement focus on functional behaviour and fail to address nonfunctional requirements throughout the refinement process. A best practices approach to refinement would address both functional and nonfunctional requirements such that the refinement of an abstract into a concrete (implementation) architecture ensures that both sets of requirements are met. We propose a method that focuses on the nonfunctional requirements while still addressing the functional requirements throughout refinement. The method has a formal underpinning in abstract data types (based on term rewriting) which are used to represent the architectures throughout the refinement process and to place pre and post conditions on the refinements. In addition to this, the method uses nonfunctional requirement calculators to check the nonfunctional qualities of the architecture as refinement proceeds. Reflection on the practice of the method suggests that it may be possible to extend the architectural style idea to provide reusable refinement schema for the design of certain nonfunctional qualities into architectural patterns. The example considers reliability and performance in the refinement of a client server architectural pattern. The method does not aim to replace or fully automate the work of the designer. It aims to augment the design process and aid the designer in performing their tasks. It seeks to provide certain guidance for the designer that will help them make the right design decisions, and correct certain classes of errors.","PeriodicalId":137219,"journal":{"name":"Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004.","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"17","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ECBS.2004.1316696","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 17
Abstract
Architecture based refinement is an important technique for ensuring efficiency, effectiveness and correctness in the practical design of complex computer based systems. With a few exceptions, current methods of architectural refinement focus on functional behaviour and fail to address nonfunctional requirements throughout the refinement process. A best practices approach to refinement would address both functional and nonfunctional requirements such that the refinement of an abstract into a concrete (implementation) architecture ensures that both sets of requirements are met. We propose a method that focuses on the nonfunctional requirements while still addressing the functional requirements throughout refinement. The method has a formal underpinning in abstract data types (based on term rewriting) which are used to represent the architectures throughout the refinement process and to place pre and post conditions on the refinements. In addition to this, the method uses nonfunctional requirement calculators to check the nonfunctional qualities of the architecture as refinement proceeds. Reflection on the practice of the method suggests that it may be possible to extend the architectural style idea to provide reusable refinement schema for the design of certain nonfunctional qualities into architectural patterns. The example considers reliability and performance in the refinement of a client server architectural pattern. The method does not aim to replace or fully automate the work of the designer. It aims to augment the design process and aid the designer in performing their tasks. It seeks to provide certain guidance for the designer that will help them make the right design decisions, and correct certain classes of errors.