Non-functional refinement of computer based systems architecture

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.

[1]  Bernhard Rumpe,et al.  Refinement of Pipe-and-Filter Architectures , 1999, World Congress on Formal Methods.

[2]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[3]  Allen Newell,et al.  Computer Structures: Readings and Examples, , 1971 .

[4]  David Garlan,et al.  A case study in architectural modeling: the AEGIS system , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[5]  Gabor Karsai,et al.  Domain model translation using graph transformations , 2003, 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2003. Proceedings..

[6]  Thomas Bolusset,et al.  Formal Refinement of Software Architectures Based on Rewriting Logic , 2002 .

[7]  Allen Newell,et al.  Computer Structures: Principles and Examples , 1983 .

[8]  George R. Ribeiro-Justo,et al.  A framework for building non-functional software architectures , 2001, SAC.

[9]  H. R. Simpson,et al.  Protocols for process interaction , 2003 .

[10]  Paul Ward,et al.  Structured Development for Real-Time Systems , 1986 .

[11]  George Bate The Official Handbook of Mascot. Version 3.1. Issue 1 , 1987 .

[12]  Richard C. Holt,et al.  Software architecture transformations , 2000, Proceedings 2000 International Conference on Software Maintenance.

[13]  Alexander Christoph,et al.  Graph Rewrite Systems for Software Design Transformations , 2002, NetObjectDays.

[14]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[15]  홍기종,et al.  FOUR QUARTETS論 (I) , 1969 .

[16]  K. Suzanne Barber,et al.  Enabling iterative software architecture derivation using early non-functional property evaluation , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[17]  Terry A. Kuykendall,et al.  Systems Architecting–Creating & Building Complex Systems , 2001 .

[18]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..

[19]  Derek J. Hatley,et al.  Strategies for Real-Time System Specification , 1987 .

[20]  Jürgen Huschens,et al.  IBM Insurance Application Architecture (IAA) - An overview of the Insurance Business Architecture , 2006, Handbook on Architectures of Information Systems.

[21]  Hakan Erdogmus Representing architectural evolution , 1998, CASCON.

[22]  John Leaney,et al.  Architecture-based design of computer based systems , 2003, 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2003. Proceedings..

[23]  Eberhardt Rechtin Systems Architecting: Creating & Building Complex Systems , 1990 .

[24]  C. S. E. Phillips Networks for real-time programming , 1967, Comput. J..

[25]  K. Jackson,et al.  Process Synchronisation in MASCOT , 1979, Comput. J..

[26]  Kathleen S Barber,et al.  Developing a traceable domain reference architecture to support clinical trials at the National Cancer Institute. An experience report , 2001, Proceedings. Eighth Annual IEEE International Conference and Workshop On the Engineering of Computer-Based Systems-ECBS 2001.

[27]  Jeannette M. Wing,et al.  Programming at the processor-memory-switch level , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[28]  Derek K. Hitchins,et al.  Putting Systems to Work , 1993 .

[29]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..