Non-functional refinement of computer based systems architecture

Abstract
Architecture based refinement is an importanttechnique for ensuring efficiency, effectiveness andcorrectness in the practical design of complex computerbased systems. With a few exceptions, current methods ofarchitectural refinement focus on functional behaviourand fail to address non-functional requirementsthroughout the refinement process. A best practicesapproach to refinement would address both functionaland non-functional requirements such that the refinementof an abstract into a concrete (implementation)architecture ensures that both sets of requirements aremet.We propose a method that focuses on the non-functionalrequirements while still addressing thefunctional requirements throughout refinement. Themethod has a formal underpinning in abstract data types(based on term rewriting) which are used to represent thearchitectures throughout the refinement process and toplace pre and post conditions on the refinements. Inaddition to this, the method uses non-functionalrequirement calculators to check the non-functionalqualities of the architecture as refinement proceeds.Reflection on the practice of the method suggests that itmay be possible to extend the architectural style idea toprovide reusable refinement schema for the design ofcertain non-functional qualities into architecturalpatterns. The example considers reliability andperformance in the refinement of a client serverarchitectural pattern.The method does not aim to replace or fully automatethe work of the designer. It aims to augment the designprocess and aid the designer in performing their tasks. Itseeks to provide certain guidance for the designer thatwill help them make the right design decisions, andcorrect certain classes of errors.

This publication has 16 references indexed in Scilit: