Evaluating software architectures

Abstract As software systems become increasingly complex, the need to investigate and evaluate them at high levels of abstraction becomes more important. When systems are very complex, evaluating the system from an architectural level is necessary in order to understand the structure and interrelationships among the components of the system. There are several existing approaches available for software architecture evaluation. Some of these techniques, pre-implementation software architectural evaluations, are performed before the system is implemented. Others, implementation-oriented software architectural evaluations, are performed after a version of the system has been implemented. This chapter briefly describes the concepts of software architecture and software architectural evaluations, describes a new process for software architectural evaluation, provides results from two case studies where this process was applied, and presents areas for future work.

[1]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[2]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[3]  Hany H. Ammar,et al.  A Methodology for Architecture-Level Reliability Risk Analysis , 2002, IEEE Trans. Software Eng..

[4]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[5]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[6]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[7]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[8]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[9]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[10]  S. Myers Determinants of corporate borrowing , 1977 .

[11]  Stephen Travis Pope,et al.  A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System , 1998 .

[12]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[13]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[14]  Mehdi Jazayeri On Architectural Stability and Evolution , 2002, Ada-Europe.

[15]  Hans de Bruijn,et al.  Scenario-Based Generation and Evaluation of Software Architectures , 2001, GCSE.

[16]  Kevin J. Sullivan Software design: the options approach , 1996, ISAW '96.

[17]  Barbara G. Ryder,et al.  A model of Ada programs for static deadlock detection in polynomial times , 1991, PADD '91.

[18]  Rick Kazman,et al.  A Foundation for the Economic Analysis of Software Architectures , 2001 .

[19]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[20]  Giuliano Antoniol,et al.  Using metrics to identify design patterns in object-oriented software , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[21]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[22]  Rami Bahsoon,et al.  ArchOptions: A Real Options-Based Model for Predicting the Stability of Software Architectures , 2003 .

[23]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[24]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[25]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[26]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[27]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[28]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[29]  Antti Valmari A stubborn attack on state explosion , 1992, Formal Methods Syst. Des..

[30]  Mikael Lindvall,et al.  Does the code match the design? A process for architecture evaluation , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[31]  Connie U. Smith,et al.  Performance evaluation of software architectures , 1998, WOSP '98.

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

[33]  Connie U. Smith,et al.  Performance Engineering of Software Systems , 1990, SIGMETRICS Perform. Evaluation Rev..

[34]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

[35]  Mikael Lindvall,et al.  Avoiding architectural degeneration: an evaluation process for software architecture , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[36]  Jan Bosch,et al.  Architecture level prediction of software maintenance , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[37]  Mikael Lindvall,et al.  An Empirically-Based Process for Software Architecture Evaluation , 2004, Empirical Software Engineering.

[38]  Mark Klein,et al.  Quantifying the costs and benefits of architectural decisions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[39]  Paul Clements Active Reviews for Intermediate Designs , 2000 .

[40]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.

[41]  George S. Avrunin,et al.  Applying static analysis to software architectures , 1997, ESEC '97/FSE-5.

[42]  Alexander L. Wolf,et al.  Chaining: A Software Architecture Dependence Analysis Technique , 1997 .

[43]  Mark Klein,et al.  Attribute-Based Architectural Styles , 1999 .

[44]  Robert G. Crispen,et al.  Structural model: architecture for software designers , 1994, TRI-Ada '94.

[45]  Jan Bosch,et al.  Experiences with ALMA: Architecture-Level Modifiability Analysis , 2002, J. Syst. Softw..

[46]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

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

[48]  Elaine J. Weyuker,et al.  Investigating metrics for architectural assessment , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[49]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[50]  Paul Clements,et al.  Recommended Best Industrial Practice for Software Architecture Evaluation. , 1997 .

[51]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[52]  Lori A. Clarke,et al.  Data flow analysis for verifying properties of concurrent programs , 1994, SIGSOFT '94.

[53]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[54]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[55]  Somesh Jha,et al.  Software Design as an Investment Activity: A Real Options Perspective , 1998 .

[56]  David Lorge Parnas,et al.  Active design reviews: principles and practices , 1985, ICSE '85.

[57]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[58]  Pierre Wolper,et al.  Using partial orders for the efficient verification of deadlock freedom and safety properties , 1991, Formal Methods Syst. Des..

[59]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[60]  Sanjay Bhansali,et al.  Software design by reusing architectures , 1992, Proceedings of the Seventh Knowledge-Based Software Engineering Conference.

[61]  R. W. Schwanke,et al.  An Intelligent Tool For Reengineering Software Modularity , 1991, ICSE 1991.

[62]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[63]  Ken Frazer,et al.  Building secure software: how to avoid security problems the right way , 2002, SOEN.

[64]  Erol Gelenbe System Performance Evaluation: Methodologies and Applications , 2000 .

[65]  Stewart C. Myers,et al.  Finance Theory and Financial Strategy , 1984 .

[66]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.

[67]  David R. Barstow,et al.  Proceedings of the 25th International Conference on Software Engineering , 1978, ICSE.

[68]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[69]  F. Black,et al.  The Pricing of Options and Corporate Liabilities , 1973, Journal of Political Economy.