Evolving Critical Systems

Summary form only given. Increasingly software can be considered to be critical, due to the business or other functionality which it supports. Upgrades or changes to such software are expensive and risky, primarily because the software has not been designed and built for ease of change. Expertise, tools and methodologies which support the design and implementation of software systems that evolve without risk (of failure or loss of quality) are essential. We address a research agenda for building software in computer based systems that (a) is highly reliable and (b) retains this reliability as it evolves, either over time or at run-time and illustrate this with a complex example from the domain of space exploration.

[1]  T.C. Lethbridge,et al.  Guide to the Software Engineering Body of Knowledge (SWEBOK) and the Software Engineering Education Knowledge (SEEK) - a preliminary mapping , 2001, 10th International Workshop on Software Technology and Engineering Practice.

[2]  Luciano Baresi,et al.  Toward Open-World Software: Issue and Challenges , 2006, Computer.

[3]  Meir M. Lehman,et al.  Metrics of software evolution as effort predictors - a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[4]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[5]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[6]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[7]  Václav Rajlich,et al.  Incremental change in object-oriented programming , 2004, IEEE Software.

[8]  Mike Hinchey,et al.  From Physical Models to Well-Founded Control , 2009, 2009 Sixth IEEE Conference and Workshops on Engineering of Autonomic and Autonomous Systems.

[9]  Tom Mens,et al.  Towards a taxonomy of software change: Research Articles , 2005 .

[10]  Alexander Chatzigeorgiou,et al.  Design Pattern Detection Using Similarity Scoring , 2006, IEEE Transactions on Software Engineering.

[11]  Norman F. Schneidewind,et al.  Reliability and risk analysis for software that must be safe , 1996, Proceedings of the 3rd International Software Metrics Symposium.

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

[13]  Paul A. Bailes,et al.  Automating software evolution , 2004, Proceedings. 7th International Workshop on Principles of Software Evolution, 2004..

[14]  Herb Sutter,et al.  The Free Lunch Is Over A Fundamental Turn Toward Concurrency in Software , 2013 .

[15]  M.G. Hinchey,et al.  Autonomous and autonomic systems: a paradigm for future space exploration missions , 2006, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[16]  Michael R. Lyu Software Reliability Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[17]  Michael Diaz,et al.  How Software Process Improvement Helped Motorola , 1997, IEEE Softw..

[18]  Nancy G Leveson,et al.  Software safety: why, what, and how , 1986, CSUR.

[19]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[20]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

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

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

[23]  James J. Horning Software fundamentals: collected papers by David L. Parnas , 2001, SOEN.

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

[25]  Dewayne E. Perry,et al.  Software Evolution and Feedback: Theory and Practice , 2006 .

[26]  B. Randell,et al.  Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968, Brussels, Scientific Affairs Division, NATO , 1969 .

[27]  Tom Mens,et al.  Future trends in software evolution metrics , 2001, IWPSE '01.

[28]  Gerardo Canfora,et al.  New Frontiers of Reverse Engineering , 2007, Future of Software Engineering (FOSE '07).

[29]  Norman F. Schneidewind,et al.  Measuring and evaluating maintenance process using reliability, risk, and test metrics , 1997, 1997 Proceedings International Conference on Software Maintenance.

[30]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

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

[32]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[33]  Brian Randell,et al.  Software engineering : report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968 , 1969 .

[34]  Capers Jones,et al.  Embedded Software: Facts, Figures, and Future , 2009, Computer.

[35]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[36]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[37]  Roger S. Pressman,et al.  Software Engineering: A Practitionerʼs Approach, 7/e , 2009 .

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

[39]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[40]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[41]  Albert-László Barabási,et al.  Understanding the Spreading Patterns of Mobile Phone Viruses , 2009, Science.

[42]  Norman F. Schneidewind,et al.  Why Predicting Outliers in Software is a Good Thing to Do! , 2008, 13th IEEE International Conference on Engineering of Complex Computer Systems (iceccs 2008).

[43]  Dennis Heimbigner,et al.  Proscription versus Prescription in Process-Centered Environments , 1990, 'Support for the Software Process'.,Proceedings of the 6th International Software Process Workshop.

[44]  T. Longstaff,et al.  Quality Attributes , 1995 .

[45]  S. Havlin,et al.  Breakdown of the internet under intentional attack. , 2000, Physical review letters.

[46]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

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

[48]  Tom Mens,et al.  Challenges in software evolution , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[49]  C.M. Pancake Debugger visualization techniques for parallel architectures , 1992, Digest of Papers COMPCON Spring 1992.

[50]  Martin S. Feather,et al.  Requirements monitoring in dynamic environments , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[51]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[52]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

[53]  Michael G. Hinchey,et al.  Model-Based Verification of Embedded Software , 2009, Computer.