A goal model elaboration for localizing changes in software evolution

Software evolution is an essential activity that adapts existing software to changes in requirements. Localizing the impact of changes is one of the most efficient strategies for successful evolution. We exploit requirements descriptions in order to extract loosely coupled components and localize changes for evolution. We define a process of elaboration for the goal model that extracts a set of control loops from the requirements descriptions as components that constitute extensible systems. We regard control loops to be independent components that prevent the impact of a change from spreading outside them. To support the elaboration, we introduce two patterns: one to extract control loops from the goal model and another to detect possible conflicts between control loops. We experimentally evaluated our approach in two types of software development and the results demonstrate that our elaboration technique helps us to analyze the impact of changes in the source code and prevent the complexity of the code from increasing.

[1]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[2]  Matthias Jarke,et al.  Toward Reference Models of Requirements Traceability , 2001, IEEE Trans. Software Eng..

[3]  Akihiko Ohsuga,et al.  gocc: a configuration compiler for self-adaptive systems using goal-oriented requirements description , 2011, SEAMS '11.

[4]  Yijun Yu,et al.  Are your sites down? Requirements-driven self-tuning for the survivability of Web systems , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[5]  Nelly Bencomo,et al.  Requirements-Aware Systems: A Research Agenda for RE for Self-adaptive Systems , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[6]  Axel van Lamsweerde,et al.  From System Goals to Software Architecture , 2003, SFM.

[7]  Bogdan Dit,et al.  Integrated impact analysis for managing software changes , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[8]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

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

[10]  Meir M. Lehman,et al.  Rules and Tools for Software Evolution Planning and Management , 2001, Ann. Softw. Eng..

[11]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[12]  Gregg Rothermel,et al.  An empirical comparison of dynamic impact analysis algorithms , 2004, Proceedings. 26th International Conference on Software Engineering.

[13]  Ahmed E. Hassan,et al.  Predicting faults using the complexity of code changes , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[14]  Bashar Nuseibeh,et al.  Specifying Monitoring and Switching Problems in Context , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[15]  Nelly Bencomo,et al.  A Goal-Based Modeling Approach to Develop Requirements of an Adaptive System with Environmental Uncertainty , 2009, MoDELS.

[16]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[17]  Jane Cleland-Huang,et al.  Goal-centric traceability for managing non-functional requirements , 2005, ICSE.

[18]  Neil A. Ernst,et al.  Finding incremental solutions for evolving requirements , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[19]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[20]  Axel van Lamsweerde,et al.  Deriving tabular event-based specifications from goal-oriented requirements models , 2004, Requirements Engineering.

[21]  G. Mussbacher,et al.  Visualizing Aspect-Oriented Goal Models with AoGRL , 2007, Second International Workshop on Requirements Engineering Visualization (REV 2007).

[22]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

[23]  Emmanuel Letier Reasoning about Agents in Goal-Oriented Requirements Engineering , 2002 .

[24]  Michalis Faloutsos,et al.  Graph-based analysis and prediction for software evolution , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[25]  Václav Rajlich,et al.  Evolution and Reuse of Orthogonal Architecture , 1996, IEEE Trans. Software Eng..

[26]  Frank Buschmann,et al.  A system of patterns , 1995 .

[27]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[28]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[29]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[30]  Yijun Yu,et al.  From Goals to High-Variability Software Design , 2008, ISMIS.

[31]  John Mylopoulos,et al.  Self-Repair through Reconfiguration: A Requirements Engineering Approach , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[32]  Grace A. Lewis,et al.  Modernizing Legacy Systems - Software Technologies, Engineering Processes, and Business Practices , 2003, SEI series in software engineering.

[33]  Axel van Lamsweerde,et al.  Managing Conflicts in Goal-Driven Requirements Engineering , 1998, IEEE Trans. Software Eng..

[34]  Axel van Lamsweerde,et al.  Scenarios, goals, and state machines: a win-win partnership for model synthesis , 2006, SIGSOFT '06/FSE-14.

[35]  Mary Shaw,et al.  Beyond objects: a software design paradigm based on process control , 1995, SOEN.

[36]  Alain Abran,et al.  Software Maintenance Management: Evaluation and Continuous Improvement , 2008 .

[37]  Ian Sommerville,et al.  Software Engineering, 8. Auflage , 2007, it : Informatik.