Evaluating the Modifiability of Software Architectural Designs

Abstract In this chapter, we propose an architectural design evaluation technique called EBEAM (Expert‐Based Evaluation of Architecture for Modifiability) that assists experts in articulating their knowledge of architectural designs and expressing the knowledge in measurable terms. EBEAM supports the evaluation of different architectural design versions for modifiability. In addition, EBEAM supports relative comparison between these design versions and the target design. We develop EBEAM as a generalized technique that is reusable for evaluating other architectural design attributes, apart from modifiability. We discuss EBEAM in detail and report on two case studies that investigate its applicability, and one study that validates the results of the evaluations made using EBEAM.

[1]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[2]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[3]  Kirti Peniwati,et al.  Aggregating individual judgments and priorities with the analytic hierarchy process , 1998, Eur. J. Oper. Res..

[4]  Gursaran,et al.  On the Applicability of Weyuker Property 9 to Object-Oriented Structural Inheritance Complexity Metrics , 2001, IEEE Trans. Software Eng..

[5]  David Lorge Parnas,et al.  The Modular Structure of Complex Systems , 1984, IEEE Transactions on Software Engineering.

[6]  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).

[7]  Ming Li,et al.  A Ranking of Software Engineering Measures Based on Expert Opinion , 2003, IEEE Trans. Software Eng..

[8]  J. Krauskopf Elemental concerns (software design) , 1990, IEEE Potentials.

[9]  Claes Wohlin,et al.  A Quality-Driven Decision-Support Method for Identifying Software Architecture Candidates , 2003, Int. J. Softw. Eng. Knowl. Eng..

[10]  Elaine J. Weyuker,et al.  Evaluating Software Complexity Measures , 2010, IEEE Trans. Software Eng..

[11]  Shari Lawrence Pfleeger,et al.  Towards a Framework for Software Measurement Validation , 1995, IEEE Trans. Software Eng..

[12]  Mikael Lindvall,et al.  An Analysis Framework for Inter-system Interaction Behavior , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[13]  Norman E. Fenton,et al.  Measurement : A Necessary Scientific Basis , 2004 .

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

[15]  Lionel C. Briand,et al.  Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software , 2006, IEEE Transactions on Software Engineering.

[16]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1980, IEEE Trans. Software Eng..

[17]  Günther Ruhe,et al.  Software release planning for evolving systems , 2005, Innovations in Systems and Software Engineering.

[18]  Hakan Erdogmus What's Good Software, Anyway? , 2007, IEEE Softw..

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

[20]  Mary Shaw,et al.  Comparing Architectural Design Styles , 1995, IEEE Softw..

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

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

[23]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[24]  Harpal S. Dhama Quantitative models of cohesion and coupling in software , 1995, J. Syst. Softw..

[25]  Hany H. Ammar,et al.  Information theoretic metrics for software architectures , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[26]  Robert L. Winkler,et al.  Combining Probability Distributions From Experts in Risk Analysis , 1999 .

[27]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[28]  Mikael Lindvall,et al.  The SAVE Tool and Process Applied to Ground Software Development at JHU/APL: An Experience Report on Technology Infusion , 2007 .

[29]  Leonard J. Bass,et al.  A Basis for Analyzing Software Architecture Analysis Methods , 2005, Software Quality Journal.

[30]  Hakan Erdogmus On-Demand Enterprise Services: Where's the Catch? , 2007, IEEE Software.

[31]  Jan Bosch,et al.  Architecture-level modifiability analysis (ALMA) , 2004, J. Syst. Softw..

[32]  Forrest Shull,et al.  Experimenting with software testbeds for evaluating new technologies , 2007, Empirical Software Engineering.

[33]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

[34]  M. Lindvall,et al.  Technology Infusion of SAVE into the Ground Software Development Process for NASA Missions at JHU/APL , 2007, 2007 IEEE Aerospace Conference.

[35]  Diane Kelly,et al.  A study of design characteristics in evolving software using stability as a criterion , 2006, IEEE Transactions on Software Engineering.

[36]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.