Abstract
As software systems are becoming increasingly complex, they need to dynamically and continually adapt their behavior to changing conditions in the long-term running. There will be large numbers of adaptations in these systems when evolving and the adaptations may be unknowable until system operation. To specify these adaptations, this paper proposes the mode-supported Linear Temporal Logic (mLTL) that is an effective way to describe global specifications of adaptive software. The global specifications are defined for adaptive software as requirements from the perspective of global adapting process. The model checking problem of mLTL is also resolved using Linear Temporal Logic (LTL) and Labelled Transition System Analyser (LTSA). Finally, we provide a prototype implementation for modelling and analyzing adaptive programs, and experimental evaluation shows feasibility and scalability of our approach.
Similar content being viewed by others
References
Allen R, Douence R, Garlan D (1998) Specifying and analyzing dynamic software architectures. In: Proceedings of the 1st International Conference on Fundamental Approaches to Software Engineering, Springer Verlag, p 21
Alur R, Yannakakis M (2001) Model checking of hierarchical state machines. ACM Trans Program Lang Syst 23(3):273–303
Avizienis A, Laprie JC, Randell B, Landwehr C (2004) Basic concepts and taxonomy of dependable and secure computing. IEEE Trans Dependable Secur Comput 1(1):11–33
Baier C, Katoen JP (2008) Principles of model checking. MIT Press, Cambridge
Baresi L, Heckel R, Thöne S, Varro D, Varró D, Milano PD (2004) Style-based refinement of dynamic software architectures. In: Proceeding of 4th Working IEEE/IFIP Conference on Software Architecture, IEEE, pp 155–164
Barringer H, Goldberg A, Havelund K, Sen K (2004) Program monitoring with ltl in eagle. In: Proceedings of 18th IEEE International Parallel and Distributed Processing Symposium, IEEE Computer Society, Washington, DC, p 264
Bauer A, Leucker M, Schallhart C (2010) Comparing ltl semantics for runtime verification. J Logic Comput 20(3):651–674
Benedetti M, Cimatti A (2003) Bounded model checking for past ltl. In: Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems, TACAS’03, Springer, Berlin/Heidelberg, pp 18–33
Bertrand D, Déplanche AM, Faucou S, Roux OH (2008) A study of the aadl mode change protocol. In: Proceedings of the 13th IEEE International Conference on Engineering of Complex Computer Systems, IEEE Computer Society, Washington, DC, pp 288–293
Biyani KN, Kulkarni SS (2008) Assurance of dynamic adaptation in distributed systems. J Parallel Distrib Comput 68(8):1097–1112
Bodden E (2004) A lightweight ltl runtime verification tool for java. In: the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, OOPSLA ’04, ACM, New York, pp 306–307
Bradbury JS, Cordy JR, Dingel J, Wermelinger M (2004) A survey of self-management in dynamic software architecture specifications. In: Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems, ACM, New York, pp 28–33
Broy M, Leuxner C, Sitou W, Spanfelner B, Winter S (2009) Formalizing the notion of adaptive system behavior. In: Proceedings of the (2009) ACM symposium on Applied Computing. ACM, New York, pp 1029–1033
Bruni R, Corradini A, Gadducci F, Lluch Lafuente A, Vandin A (2012) A conceptual framework for adaptation. In: Lara J, Zisman A (eds) Fundamental Approaches to Software Engineering, Lecture Notes in Computer Science, vol 7212. Springer, Berlin/Heidelberg, pp 240–254
Canal C, Pimentel E, Troya JM (1999) Specification and refinement of dynamic software architectures. In: Proceedings of the TC2 First Working IFIP Conference on Software Architecture. Kluwer B.V., Deventer, pp 107–126
Chan W, Anderson RJ, Beame P, Burns S, Modugno F, Notkin D, Reese JD (1998) Model checking large software specifications. IEEE Trans Softw Eng 24(7):498–520
Clarke EM, Heinle W (2000) Modular translation of statecharts to smv. Carnegie-Mellon University School of Computer Science, Tech. rep., Pittsburgh
Georgas JC, van der Hoek A, Taylor RN (2005) Architectural runtime configuration management in support of dependable self-adaptive software. ACM SIGSOFT Softw Eng Notes 30:1–6
Goldsby HJ, Cheng BH, Zhang J (2008a) Models in software engineering. In: Chap AMOEBA-RT: Run-Time Verification of Adaptive Software. Springer, Berlin/Heidelberg, pp 212–224
Goldsby HJ, Sawyer P, Bencomo N, Cheng BHC, Hughes D (2008b) Goal-based modeling of dynamically adaptive system requirements. In: Proceedings of the 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems, IEEE Computer Society, ECBS ’08, Washington, DC, pp 36–45
Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8(3):231–274
Kramer J, Magee J (1998) Analysing dynamic change in software architectures: a case study. In: Proceedings of the 4th International Conference on Configurable Distributed Systems, IEEE Computer Society, Washington, DC, p 91
Kramer J, Magee J (2007) Self-managed systems: an architectural challenge. In: Future of software engineering. IEEE Computer Society, Washington, DC, pp 259–268
Lapouchnian A, Yu Y, Liaskos S, Mylopoulos J (2006) Requirements-driven design of autonomic application software. In: Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, CASCON ’06, IBM Corp., Riverton
Le Métayer D (1998) Describing software architecture styles using graph grammars. IEEE Trans Softw Eng 24(7):521–533
Lichtenstein O, Pnueli A (1985) Checking that finite state concurrent programs satisfy their linear specification. In: Proceedings of the 12th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, ACM, New Yrok, pp 97–107
Magee J, Kramer J (1996) Dynamic structure in software architectures. In: Proceedings of the 4th ACM SIGSOFT Symposium on Foundations of Software Engineering. ACM, New York, pp 3–14
Magee J, Kramer J (2006) Concurrency: state models & Java programs. Wiley, New York
Malek S, Edwards G, Brun Y, Tajalli H, Garcia J, Krka I, Medvidovic N, Mikic-Rakic M, Sukhatme GS (2010) An architecture-driven software mobility framework. J Syst Softw 83(6):972–989
Maraninchi F, Rémond Y (1998) Mode-automata: about modes and states for reactive systems. In: Proceedings of the 7th European Symposium on Programming. Springer, New York, pp 185–199
Maraninchi F, Rémond Y (2003) Mode-automata: a new domain-specific construct for the development of safe critical systems. Sci Comput Program 46(3):219–254
Martin L, Christian S (2009) A brief account of runtime verification. J Logic Algebr Program 78(5):293–303
McKinley PK, Sadjadi SM, Kasten EP, Cheng BHC (2004) Composing adaptive software. Computer 37(7):56–64
Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93
Mikk E, Lakhnech Y, Siegel M, Holzmann GJ (1998) Implementing statecharts in promela/spin. In: Proceedings of the Second IEEE Workshop on Industrial Strength Formal Specification Techniques, IEEE Computer Society, WIFT ’98, Washington, DC, pp 90
Morandini M, Penserini L, Perini A (2008) Modelling self-adaptivity: a goal-oriented approach. In: Proceedings of the 2008 Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems, IEEE Computer Society, SASO ’08, Washington, DC, pp 469–470
Morin B, Barais O, Nain G, Jezequel JM (2009) Taming dynamically adaptive systems using models and aspects. In: Proceedings of the 31st International Conference on Software Engineering, IEEE Computer Society, Washington, DC, pp 122–132
Northrop L, Feiler P, Gabriel R, Goodenough J, Linger R, Kazman R, Schmidt D, Sullivan K, Wallnau K (2006) Ultra-large-scale systems-the software challenge of the future. Software Engineering Institute, Carnegie Mellon University, Tech. rep., Pittsburgh
Oquendo F (2004) \(\pi \)-adl: an architecture description language based on the higher-order typed \(\pi \)-calculus for specifying dynamic and mobile software architectures. ACM SIGSOFT Softw Eng Notes 29(3):1–14
Sadjadi SM, McKinley PK, Kasten EP (2003) Architecture and operation of an adaptable communication substrate. In: Proceedings of the 9th IEEE Workshop on Future Trends of Distributed Computing Systems, IEEE Computer Society, p 46
Salehie M, Tahvildari L (2009) Self-adaptive software: Landscape and research challenges. ACM Trans Auton Adap Syst 4(2):1–42
Taentzer G, Goedicke M, Meyer T (1998) Dynamic change management by distributed graph transformation: Towards configurable distributed systems. In: Proceedings of 6th International Workshop on Theory and Application of Graph Transformations, Springer, Berlin, pp 179–193
Thums A, Schellhorn G, Ortmeier F, Reif W (2004) Interactive verification of statecharts. In: Ehrig H, Damm W, Desel J, Groe-Rhode M, Reif W, Schnieder E, Westkmper E (eds) Integration of Software Specification Techniques for Applications in Engineering, Lecture Notes in Computer Science, vol 3147. Springer, Berlin/Heidelberg, pp 355–373
Vardi MY, Wolper P (1986) An automata-theoretic approach to automatic program verification. In: Proceedings of 1st IEEE Symposium on Logic in Computer Science, IEEE Computer Society, Cambridge, pp 332–344
Varró D (2002) A formal semantics of uml statecharts by model transition systems. In: Corradini A, Ehrig H, Kreowski H, Rozenberg G (eds) Graph Transformation, Lecture Notes in Computer Science, vol 2505. Springer, Berlin / Heidelberg, pp 378–392
Yu Y, Lapouchnian A, Liaskos S, Mylopoulos J, Leite J (2008) From goals to high-variability software design. In: An A, Matwin S, Ras Z, Slezak D (eds) Foundations of Intelligent Systems, Lecture Notes in Computer Science, vol 4994. Springer, Berlin/Heidelberg, pp 1–16
Zhang J, Cheng BH (2006a) Model-based development of dynamically adaptive software. In: Proceedings of the 28th International Conference on Software Engineering, ACM, New York, pp 371–380
Zhang J, Cheng BH (2006b) Using temporal logic to specify adaptive program semantics. J Syst Softw 79(10):1361–1369
Zhang J, Goldsby HJ, Cheng BHC (2009) Modular verification of dynamically adaptive systems. In: Proceedings of the 8th ACM International Conference on Aspect-oriented Software Development, ACM, New York, pp 161–172
Acknowledgments
This work has been supported in part by the National Natural Science Foundation of China (NSFC) under the Grant No.61003017 and the Project of National Laboratory of Software Development Environment under the Grant No.SKLSDE-2010ZX-05.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Zhao, Y., Li, Z., Shen, H. et al. Development of global specification for dynamically adaptive software. Computing 95, 785–816 (2013). https://doi.org/10.1007/s00607-013-0295-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-013-0295-3