Of software and change

Change has been recognized as the distinguishing feature that makes software different from any other human‐produced artifacts. Initial reflections on the urgent and unavoidable need to master change date back to the 1970s. However, despite the continuous progress that characterized software technology since, in practice, software change is still often handled as an afterthought, in an ad hoc and unprincipled manner. Agile development methods have been proposed and are now widely adopted to accommodate change during development. Recent extensions to also include operation—known as DevOps—are increasingly and successfully adopted by industry. Still, principled and rigorous foundations that can be taught, practiced, and replicated systematically are lacking.

[1]  Rajeev Alur,et al.  Model checking of hierarchical state machines , 1998, TOPL.

[2]  Sarfraz Khurshid,et al.  Directed incremental symbolic execution , 2011, PLDI '11.

[3]  Theo D'Hondt,et al.  Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates , 2007, IEEE Transactions on Software Engineering.

[4]  Carlo Ghezzi,et al.  Syntax-Driven Program Verification of Matching Logic Properties , 2015, 2015 IEEE/ACM 3rd FME Workshop on Formal Methods in Software Engineering.

[5]  Michael Jackson,et al.  Four dark corners of requirements engineering , 1997, TSEM.

[6]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

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

[8]  Dalal Alrajeh,et al.  Supporting incremental behaviour model elaboration , 2012, Computer Science - Research and Development.

[9]  Carlo Ghezzi,et al.  Incremental Syntactic-Semantic Reliability Analysis of Evolving Structured Workflows , 2014, ISoLA.

[10]  Leonardo Mariani,et al.  Run-Time Verification , 2004, Model-Based Testing of Reactive Systems.

[11]  Sooyong Park,et al.  Dynamic Software Product Lines , 2008, Computer.

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

[13]  Kim G. Larsen,et al.  A modal process logic , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[14]  Howard Barringer,et al.  Assumption generation for software component verification , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[15]  Luciano Baresi,et al.  Efficient Dynamic Updates of Distributed Components Through Version Consistency , 2017, IEEE Transactions on Software Engineering.

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

[17]  Thomas A. Henzinger,et al.  Extreme Model Checking , 2003, Verification: Theory and Practice.

[18]  Carlo Ghezzi,et al.  Syntactic-semantic incrementality for agile verification , 2015, Sci. Comput. Program..

[19]  Carlo Ghezzi,et al.  Managing non-functional uncertainty via model-driven adaptivity , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[20]  Pamela Zave,et al.  Deriving Specifications from Requirements: an Example , 1995, 1995 17th International Conference on Software Engineering.

[21]  Carlo Ghezzi,et al.  Model evolution by run-time parameter adaptation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[22]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[23]  T. Kanade Model-Based Testing of Reactive Systems , 2005 .

[24]  Carlo Ghezzi,et al.  Self-adaptive software needs quantitative verification at runtime , 2012, CACM.

[25]  Marsha Chechik,et al.  Multi-valued symbolic model-checking , 2003, TSEM.

[26]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[27]  Carlo Ghezzi,et al.  Reasoning on Non-Functional Requirements for Integrated Services , 2009, 2009 17th IEEE International Requirements Engineering Conference.

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

[29]  Hongyang Qu,et al.  Assume-Guarantee Verification for Probabilistic Systems , 2010, TACAS.

[30]  Carlo Ghezzi Dependability of Adaptable and Evolvable Distributed Systems , 2016, SFM.

[31]  Mahesh Viswanathan,et al.  Incremental state-space exploration for programs with dynamically allocated data , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[32]  Gregg Rothermel,et al.  Regression model checking , 2009, 2009 IEEE International Conference on Software Maintenance.

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

[34]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[35]  Stephen A. Edwards,et al.  Incremental Algorithms for Inter-procedural Analysis of Safety Properties , 2005, CAV.

[36]  Andrew Hinton,et al.  PRISM: A Tool for Automatic Verification of Probabilistic Systems , 2006, TACAS.

[37]  Claudio Menghi Verifying incomplete and evolving specifications , 2014, ICSE Companion.

[38]  Carlo Ghezzi,et al.  Towards Agile Verification , 2013, Perspectives on the Future of Software Engineering.

[39]  Carlo Ghezzi,et al.  Predicting Performance Properties for Open Systems with KAMI , 2009, QoSA.

[40]  Jim Steel,et al.  Engineering Modeling Languages: Turning Domain Knowledge into Tools , 2016 .

[41]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[42]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.

[43]  Sagar Chaki,et al.  Dynamic Component Substitutability Analysis , 2005, FM.

[44]  Carlo Ghezzi,et al.  Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time , 2016, IEEE Transactions on Software Engineering.

[45]  Bertrand Meyer,et al.  Agile! , 2014, Springer International Publishing.

[46]  Joost-Pieter Katoen,et al.  A Markov reward model checker , 2005, Second International Conference on the Quantitative Evaluation of Systems (QEST'05).

[47]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[48]  Carlo Ghezzi,et al.  Dealing with Incompleteness in Automata-Based Model Checking , 2016, FM.

[49]  Patrice Godefroid,et al.  Model Checking Partial State Spaces with 3-Valued Temporal Logics , 1999, CAV.

[50]  Carlo Ghezzi,et al.  Run-time efficient probabilistic model checking , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[51]  Corina S. Pasareanu,et al.  Learning Assumptions for Compositional Verification , 2003, TACAS.