Abstract
Software is constantly evolving. Evolution becomes necessary to respond to changes that may occur in the requirements and/or in the environment in which it is embedded. A consequence of changes is that several activities (such as analysis, verification, code generation, deployment) need to be redone, over and over. This paper focuses on verification. Incrementality comes into play because often changes are local to restricted parts. In order to save time, it would be beneficial if instead of redoing activities from scratch after each change, the results of previous processing may be reused and composed with the results of processing restricted portions of the changed software. Incrementality becomes even more necessary when changes occur at runtime and the software itself is responsible for reacting in a self-managed manner. In this setting, the processing that needs to be performed after each change is subject to severe time constraints. The paper is a position statement on incrementality in the context of self-adaptive systems. It starts by motivating the need for incrementality and then reviews three main approaches to incremental verification that have been proposed earlier, compares their potential, and outlines promising research directions.
This research has been partially funded by the European Commission, Programme IDEAS-ERC, Project 227977-SMScom.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alves, A., Arkin, A., Askary, S., Bloch, B., Curbera, F., Goland, Y., Kartha, N., Sterling, König, D., Mehta, V., Thatte, S., van der Rijn, D., Yendluri, P., Yiu, A.: Web services business process execution language version 2.0. OASIS Committee Draft (May 2006)
Baier, C., Haverkort, B., Hermanns, H., Katoen, J.-P.: Model-checking algorithms for continuous-time markov chains. IEEE Transactions on Software Engineering 29, 524–541 (2003)
Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press (2008)
Baresi, L., Ghezzi, C.: The disappearing boundary between development-time and run-time. In: FoSER 2010, New York, USA (2010)
Belady, L., Lehman, M.: A model of large program development. IBM Systems Journal (1976)
Bruni, R., Corradini, A., Gadducci, F., Lluch Lafuente, A., Vandin, A.: A Conceptual Framework for Adaptation. In: de Lara, J., Zisman, A. (eds.) FASE 2012. LNCS, vol. 7212, pp. 240–254. Springer, Heidelberg (2012)
Calinescu, R., Ghezzi, C., Kwiatkowska, M., Mirandola, R.: Self-adaptive software needs quantitative verification at runtime. Communications of the ACM (accepted for publication)
Conway, C.L., Namjoshi, K.S., Dams, D.R., Edwards, S.A.: Incremental Algorithms for Inter-procedural Analysis of Safety Properties. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 449–461. Springer, Heidelberg (2005)
Daws, C.: Symbolic and Parametric Model Checking of Discrete-Time Markov Chains. In: Liu, Z., Araki, K. (eds.) ICTAC 2004. LNCS, vol. 3407, pp. 280–294. Springer, Heidelberg (2005)
Di Nitto, E., Ghezzi, C., Metzger, A., Papazoglou, M., Pohl, K.: A journey to highly dynamic, self-adaptive service-based applications. In: ASE (2008)
Distefano, S., Filieri, A., Ghezzi, C., Mirandola, R.: A compositional method for reliability analysis of workflows affected by multiple failure modes. In: Proceedings of the 14th International ACM Sigsoft Symposium on Component Based Software Engineering, CBSE 2011, pp. 149–158. ACM, New York (2011)
Ershov, A.: On the partial computation principle. Information Processing Letters (1977)
Filieri, A., Ghezzi, C., Mandrioli, D.: Sidecar: Syntax-driven incremental compositional verification (unpublished internal report, 2012)
Filieri, A., Ghezzi, C., Tamburrelli, G.: Run-time efficient probabilistic model checking. In: Proceedings of the 33rd International Conference on Software Engineering (2011)
Ghezzi, C., Mandrioli, D.: Incremental parsing. ACM Transactions on Programming Languages and Systems (1979)
Ghezzi, C., Mandrioli, D.: Augmenting parsers to support incrementality. Journal of the ACM (1980)
Ghezzi, C., Tamburrelli, G.: Reasoning on non-functional requirements for integrated services. In: RE 2009. Proceedings of the International Conference on Requirements Engineering (2009)
Hahn, E.M., Hermanns, H., Zhang, L.: Probabilistic Reachability for Parametric Markov Models. In: Păsăreanu, C.S. (ed.) Model Checking Software. LNCS, vol. 5578, pp. 88–106. Springer, Heidelberg (2009)
Henzinger, T.A., Jhala, R., Majumdar, R., Sanvido, M.A.A.: Extreme Model Checking. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 332–358. Springer, Heidelberg (2004)
Jackson, M., Zave, P.: Deriving specifications from requirements: An example. In: ICSE 1995, p. 1005 (1995)
Jalili, F.: A general incremental evaluator for attribute grammars. Science of Computer Programming (1985)
Jones, C.: Tentative steps toward a development method for interfering programs. ACM Transactions on Programming Languages and Systems (1983)
Katoen, J.-P., Khattri, M., Zapreev, I.S.: A Markov reward model checker. In: QEST, pp. 243–244. IEEE Computer Society, Los Alamos (2005)
Krishnamurthi, S., Fisler, K.: Foundations of incremental aspect model-checking. ACM Trans. Softw. Eng. Methodol. 16(2) (2007)
Kwiatkowska, M., Norman, G., Parker, D.: Prism 2.0: a tool for probabilistic model checking. In: Proceedings. First International Conference on the Quantitative Evaluation of Systems, QEST 2004, pp. 322–323 (2004)
Kwiatkowska, M., Norman, G., Parker, D., Qu, H.: Assume-Guarantee Verification for Probabilistic Systems. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 23–37. Springer, Heidelberg (2010)
Lehman, M.: Life cycles, and laws of software evolution. Proceedings of the IEEE (1980)
Parnas, D.: On the criteria to be used in decomposing systems into modules. Communications of the ACM (1972)
Rushby, J.: An Overview of Formal Verification for the Time-Triggered Architecture. In: Damm, W., Olderog, E.-R. (eds.) FTRTFT 2002. LNCS, vol. 2469, pp. 83–105. Springer, Heidelberg (2002)
Zave, P., Jackson, M.: Four dark corners of requirements engineering. ACM Trans. Softw. Eng. Methodology (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ghezzi, C. (2012). Evolution, Adaptation, and the Quest for Incrementality. In: Calinescu, R., Garlan, D. (eds) Large-Scale Complex IT Systems. Development, Operation and Management. Monterey Workshop 2012. Lecture Notes in Computer Science, vol 7539. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-34059-8_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-34059-8_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-34058-1
Online ISBN: 978-3-642-34059-8
eBook Packages: Computer ScienceComputer Science (R0)