Software Architecture Evolution

Abstract : Many software systems eventually undergo changes to their basic architectural structure. Such changes may be prompted by new feature requests, new quality attribute requirements, changing technology, or other reasons. Whatever the causes, architecture evolution is commonplace in real-world software projects. Today's software architects, however, have few techniques to help them plan such evolution. In particular, they have little assistance in planning alternatives, making trade-offs among these different alternatives, or applying best practices for particular domains. To address this, we have developed an approach for assisting architects in planning and reasoning about software architecture evolution. Our approach is based on modeling and analyzing potential evolution paths that represent different ways of evolving the system. We represent an evolution path as a sequence of transitional architectural states leading from the initial architecture to the target architecture along with evolution operators that characterize the transitions among these states. We support analysis of evolution paths through the definition and application of constraints that express rules governing the evolution of the system and evaluation functions that assess path quality. Finally, a set of these modeling elements may be grouped together into an evolution style that encapsulates a body of knowledge relevant to a particular domain of architecture evolution. We evaluate this approach in three ways. First, we evaluate its applicability to real-world architecture evolution projects. This is accomplished through case studies of two very different software organizations. Second, we undertake a formal evaluation of the computational complexity of verifying evolution constraints. Finally, we evaluate the implementability of the approach based on our experiences developing prototype tools for software architecture evolution.

[1]  H Prakke,et al.  [Quality criteria for qualitative research]. , 1999, Pflege.

[2]  M. Lombard,et al.  Content Analysis in Mass Communication: Assessment and Reporting of Intercoder Reliability , 2002 .

[3]  Pentti Tarvainen Adaptability Evaluation of Software Architectures; A Case Study , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[4]  Roy H. Campbell,et al.  Monitoring compliance of a software system with its high-level design models , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[5]  P. Brink On reliability and validity in qualitative research. , 1987, Western journal of nursing research.

[6]  Irit Mero-Jaffe,et al.  ‘Is that what I Said?’ Interview Transcript Approval by Participants: An Aspect of Ethics in Qualitative Research , 2011 .

[7]  Tarun Jaiswal,et al.  Fundamentals of Software Engineering , 2017, Lecture Notes in Computer Science.

[8]  N. Denzin,et al.  Introduction: The Discipline and Practice of Qualitative Research. , 2005 .

[9]  Jeffrey M. Barnes NASA's Advanced Multimission Operations System: A Case Study in Formalizing Software Architecture Evolution , 2011 .

[10]  Thomas A. Henzinger,et al.  A really temporal logic , 1994, JACM.

[11]  Robert Winter,et al.  Essential Layers, Artifacts, and Dependencies of Enterprise Architecture , 2006, 2006 10th IEEE International Enterprise Distributed Object Computing Conference Workshops (EDOCW'06).

[12]  G. Cowan,et al.  Gender and survival vs. death in slasher films: A content analysis , 1990 .

[13]  Klaus Krippendorff,et al.  Content Analysis: An Introduction to Its Methodology , 1980 .

[14]  Frederic Maris,et al.  TLP-GP: Solving Temporally-Expressive Planning Problems , 2008, 2008 15th International Symposium on Temporal Representation and Reasoning.

[15]  Jeffrey C. Carver,et al.  Characterizing software architecture changes: A systematic review , 2010, Inf. Softw. Technol..

[16]  Jacob Cohen A Coefficient of Agreement for Nominal Scales , 1960 .

[17]  Richard C. Holt,et al.  Using graph rewriting to specify software architectural transformations , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[18]  Barry W. Boehm,et al.  Anchoring the Software Process , 1996, IEEE Softw..

[19]  F. Mosteller,et al.  Inference in an Authorship Problem , 1963 .

[20]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[21]  Subbarao Kambhampati,et al.  When is Temporal Planning Really Temporal? , 2007, IJCAI.

[22]  Meir M. Lehman,et al.  Metrics and Laws of Software Evolution , 2000 .

[23]  Melvin Fitting,et al.  Modal Logics Between Propositional and First-order , 2002, J. Log. Comput..

[24]  Stephen Cresswell,et al.  Compilation of LTL Goal Formulas into PDDL , 2004, ECAI.

[25]  Sagar Chaki,et al.  Verification of Evolving Software , 2004 .

[26]  Robert T. Monroe Capturing Software Architecture Design Expertise with Armani , 2000 .

[27]  Philippe Schnoebelen,et al.  Model Checking a Path , 2003, CONCUR.

[28]  Murat Erder,et al.  Transitional architectures for enterprise evolution , 2006, IT Professional.

[29]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

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

[31]  Walter R. Bischofberger,et al.  Sotograph - A Pragmatic Approach to Source Code Architecture Conformance Checking , 2004, EWSA.

[32]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[33]  Lawrence Chung,et al.  Developing adaptable software architectures using design patterns: an NFR approach , 2003, Comput. Stand. Interfaces.

[34]  G. Andrews,et al.  Mja Guidelines for Assessing Qualitative Research Quality in Qualitative Research Criteria for Authors and Assessors in the Submission and Assessment of Qualitative Research Articles for the Medical Journal of Australia , 2022 .

[35]  Roel Popping,et al.  On Agreement Indices for Nominal Data , 1988 .

[36]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[37]  P. Bell Content Analysis of Visual Images , 2004 .

[38]  Margaret D. LeCompte,et al.  LeCompte, Margaret D., and Judith Preissle Goetz, "Problems of Reliability and Validity in Ethnographic Research," Review of Educational Research, 52(Spring, 1982), 31-60.* , 1982 .

[39]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

[40]  J. D. Roode,et al.  Glaserian and Straussian grounded theory: similar or completely different? , 2009, SAICSIT '09.

[41]  Joel E. Richardson,et al.  Supporting Lists in a Data Model (A Timely Approach) , 1992, VLDB.

[42]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[43]  James U. McNeal,et al.  Children’s visual memory of packaging , 2003 .

[44]  Edward G. Carmines,et al.  Reliability and Validity Assessment , 1979 .

[45]  Tarek K. Abdel-Hamid,et al.  The Dynamics of Software Project Staffing: A System Dynamics Based Simulation Approach , 1989, IEEE Trans. Software Eng..

[46]  Bradley R. Schmerl,et al.  Using Architectural Style as a Basis for System Self-repair , 2002, WICSA.

[47]  Margarete Sandelowski,et al.  Focus on qualitative methods. Notes on Transcription , 1994 .

[48]  Eelco Visser,et al.  Model-Driven Software Evolution: A Research Agenda , 2007 .

[49]  Bradley R. Schmerl,et al.  Ævol: A tool for defining and planning architecture evolution , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[50]  Hans van Vliet,et al.  Towards a broader view on software architecture analysis of flexibility , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[51]  Tracy Hall,et al.  Motivators of Software Process Improvement: an analysis of practitioners' views , 2002, Journal of Systems and Software.

[52]  William B. Green Multimission ground data system support of NASA'S planetary program , 1995 .

[53]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

[54]  Marwan Abi-Antoun,et al.  Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations , 2009, OOPSLA '09.

[55]  K. Krippendorff Bivariate Agreement Coefficients for Reliability of Data , 1970 .

[56]  Stéphane Demri,et al.  Model checking memoryful linear-time logics over one-counter automata , 2010, Theor. Comput. Sci..

[57]  Ned Chapin,et al.  Types of software evolution and software maintenance , 2001, J. Softw. Maintenance Res. Pract..

[58]  Ivica Crnkovic,et al.  Analyzing Software Evolvability of an Industrial Automation Control System: A Case Study , 2008, 2008 The Third International Conference on Software Engineering Advances.

[59]  R. Flesch A new readability yardstick. , 1948, The Journal of applied psychology.

[60]  B. Everitt,et al.  Statistical methods for rates and proportions , 1973 .

[61]  Mourad Oussalah,et al.  Evolution Shelf: Reusing Evolution Expertise within Component-Based Software Architectures , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[62]  Andrew Coles,et al.  Temporal Planning with Preferences and Time-Dependent Continuous Costs , 2012, ICAPS.

[63]  Ivar Jacobson,et al.  A New Software Engineering , 2014, ACM Queue.

[64]  Alfonso Gerevini,et al.  Preferences and soft constraints in PDDL3 , 2006 .

[65]  Ivan Serina,et al.  An Approach to Temporal Planning and Scheduling in Domains with Predictable Exogenous Events , 2011, J. Artif. Intell. Res..

[66]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[67]  Gerrit Muller,et al.  Architecting for Improved Evolvability , 2010 .

[68]  Igor Potapov,et al.  Temporal logic with predicate abstraction , 2004 .

[69]  Ipek Ozkaya,et al.  Architecture knowledge management during system evolution: observations from practitioners , 2010, SHARK '10.

[70]  Muhammad Ali Babar,et al.  Establishing and maintaining trust in software outsourcing relationships: An empirical investigation , 2007, J. Syst. Softw..

[71]  M Sandelowski Notes on transcription. , 1994, Research in nursing & health.

[72]  Deen Freelon ReCal: Intercoder Reliability Calculation as a Web Service , 2010 .

[73]  Lawrence H. Putnam,et al.  A General Empirical Solution to the Macro Software Sizing and Estimating Problem , 1978, IEEE Transactions on Software Engineering.

[74]  Norbert Groeben,et al.  On the Integration of Quantitative and Qualitative Methodological Paradigms (Based on the Example of Content Analysis) , 1994 .

[75]  Maria Fox,et al.  PDDL+ : Modelling Continuous Time-dependent Effects , 1999 .

[76]  Tom Mens Model Transformation: A Survey of the State of the Art , 2013 .

[77]  Everett M. Rogers,et al.  A History of Communication Study: A Biographical Approach , 1994 .

[78]  Philipp Mayring Qualitative Inhaltsanalyse : Grundlagen und Techniken , 2003 .

[79]  R. Kazman,et al.  Quality-Attribute Based Economic Valuation of Architectural Patterns , 2007, 2007 First International Workshop on the Economics of Software and Computation.

[80]  Swapna S. Gokhale,et al.  Architecture-Based Software Reliability Analysis: Overview and Limitations , 2007, IEEE Transactions on Dependable and Secure Computing.

[81]  Flávio Oquendo,et al.  ArchWare: Architecting Evolvable Software , 2004, EWSA.

[82]  Heiko Koziolek,et al.  Sustainability evaluation of software architectures: a systematic review , 2011, QoSA-ISARCS '11.

[83]  Holly Zell Engineers Diagnosing Voyager 2 Data System , 2013 .

[84]  Margrit Schreier,et al.  Qualitative Content Analysis in Practice , 2012 .

[85]  Dick B. Simmons,et al.  Software Project Planning Associate (SPPA): a knowledge-based approach for dynamic software project planning and tracking , 2000, Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000.

[86]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[87]  Philip Newcomb,et al.  Architecture-Driven Modernization (ADM) , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[88]  Abdul Rauf,et al.  Software Maintenance Prediction Using Weighted Scenarios: An Architecture Perspective , 2010, 2010 International Conference on Information Science and Applications.

[89]  Thomas A. Henzinger,et al.  Half-order modal logic: how to prove real-time properties , 1990, PODC '90.

[90]  M. de Rijke,et al.  Model checking hybrid logics (with an application to semistructured data) , 2006, J. Appl. Log..

[91]  Nazim H. Madhavji,et al.  ESDM - A Method for Developing Evolutionary Scenarios for Analysing the Impact of Historical Changes on Architectural Elements , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[92]  Yuanfang Cai,et al.  Simon: modeling and analysis of design space structures , 2005, ASE '05.

[93]  Alexandra Jaffe Trascription in practice: nonstandard orthography , 2015 .

[94]  S. Elo,et al.  Qualitative Content Analysis , 2014 .

[95]  Guido Sciavicco,et al.  Reasoning with Time Intervals: A Logical and Computational Perspective , 2012 .

[96]  Didar Zowghi,et al.  A Maturity Model for the Implementation of Software Process Improvement: an Empirical Study , 2022 .

[97]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

[98]  Craig A. Knoblock,et al.  PDDL-the planning domain definition language , 1998 .

[99]  Olivier Barais,et al.  Software Architecture Evolution , 2008, Software Evolution.

[100]  Stephen Lacy,et al.  Analyzing Media Messages , 2019 .

[101]  Andrzej Zalewski,et al.  Capturing Architecture Evolution with Maps of Architectural Decisions 2.0 , 2011, ECSA.

[102]  David Lorge Parnas,et al.  Information Distribution Aspects of Design Methodology , 1971, IFIP Congress.

[103]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[104]  Shirley Gregor,et al.  The Nature of Theory in Information Systems , 2006, MIS Q..

[105]  Michael Ball,et al.  Analyzing Visual Data , 1992 .

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

[107]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[108]  Dwayne Phillips,et al.  The Software Project Manager's Handbook: Principles That Work at Work , 2004 .

[109]  Mark C. Paulk,et al.  Key Practices of the Capability Maturity Model , 1991 .

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

[111]  M. Wolf,et al.  Social validity: the case for subjective measurement or how applied behavior analysis is finding its heart. , 1978, Journal of applied behavior analysis.

[112]  M. Wakefield,et al.  Portrayal of tanning, clothing fashion and shade use in Australian women's magazines, 1987-2005. , 2007, Health education research.

[113]  W. A. Scott,et al.  Reliability of Content Analysis ; The Case of Nominal Scale Cording , 1955 .

[114]  J. Fleiss,et al.  Statistical methods for rates and proportions , 1973 .

[115]  Patrick Blackburn,et al.  Internalizing labelled deduction , 2000, J. Log. Comput..

[116]  David Garlan,et al.  A compositional formalization of connector wrappers , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[117]  R. Weber Basic Content Analysis , 1986 .

[118]  Jürgen Ritsert,et al.  Inhaltsanalyse und Ideologiekritik : ein Versuch über kritische Sozialforschung , 1972 .

[119]  Colin Seymour-Ure,et al.  Content Analysis in Communication Research. , 1972 .

[120]  Kimberly A. Neuendorf,et al.  The Content Analysis Guidebook , 2001 .

[121]  Siegfried Kracauer,et al.  The Challenge of Qualitative Content Analysis , 1952 .

[122]  Bradley R. Schmerl,et al.  Evolution styles: Foundations and tool support for software architecture evolution , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[123]  Barry W. Boehm,et al.  Software development cost estimation approaches — A survey , 2000, Ann. Softw. Eng..

[124]  Jeff B. Berner,et al.  Calling Home in 2003: JPL Roadmap to Standardized TT&C Customer Support , 2000 .

[125]  Valentin Goranko,et al.  Temporal Logic with Reference Pointers , 1994, ICTL.

[126]  Annie I. Antón,et al.  Functional Paleontology: The Evolution of User-Visible System Services , 2003, IEEE Trans. Software Eng..

[127]  Laura Needels DSMS information systems architecture (DISA) overview , 2006 .

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

[129]  Johnny Saldaña,et al.  The Coding Manual for Qualitative Researchers , 2009 .

[130]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[131]  Mary Bucholtz,et al.  The politics of transcription , 2000 .

[132]  Mourad Oussalah,et al.  A unified approach for software architecture evolution at different abstraction levels , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[133]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[134]  Daniel G. Oliver,et al.  Constraints and Opportunities with Interview Transcription: Towards Reflection in Qualitative Research , 2005, Social forces; a scientific medium of social study and interpretation.

[135]  Wang Hui Hybrid Languages and Temporal Logic , 2009 .

[136]  Alex Cervantes,et al.  Exploring the use of a test automation framework , 2009, 2009 IEEE Aerospace conference.

[137]  Martin J. Shepperd,et al.  Estimating Software Project Effort Using Analogies , 1997, IEEE Trans. Software Eng..

[138]  Willow Roberts,et al.  Transcription Techniques for the Spoken Word , 2005 .

[139]  Igor Potapov,et al.  Temporal logic with predicate /spl lambda/-abstraction , 2005, 12th International Symposium on Temporal Representation and Reasoning (TIME'05).

[140]  Douglas Crockford,et al.  The application/json Media Type for JavaScript Object Notation (JSON) , 2006, RFC.

[141]  Marwan Abi-Antoun Static extraction and conformance analysis of hierarchical runtime architectural structure , 2009, OOPSLA 2009.

[142]  Armin P. Schulz,et al.  Design for changeability (DfC): Principles to enable changes in systems throughout their entire lifecycle , 2005, Syst. Eng..