Abstract
Increasingly, software must dynamically adapt its behavior in response to changes in the supporting computing, communication infrastructure, and in the surrounding physical environment. Assurance that the adaptive software correctly satisfies its requirements is crucial if the software is to be used in high assurance systems, such as command and control or critical infrastructure protection systems. Adaptive software development for these systems must be grounded upon formalism and rigorous software engineering methodology to gain assurance. In this paper, we briefly describe AMOebA-RT, a run-time monitoring and verification technique that provides assurance that dynamically adaptive software satisfies its requirements.
This work has been supported in part by NSF grants EIA-0000433, CNS-0551622, CCF-0541131, IIP-0700329, CCF-0750787, Department of the Navy, Office of Naval Research under Grant No. N00014-01-1-0744, Siemens Corporate Research, and a Quality Fund Program grant from Michigan State University.
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
McKinley, P.K., Sadjadi, S.M., Kasten, E.P., Cheng, B.H.C.: Composing adaptive software. IEEE Computer 37(7), 56–64 (2004)
Métayer, D.L.: Software architecture styles as graph grammars. In: Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering, pp. 15–23. ACM Press, New York (1996)
Taentzer, G., Goedicke, M., Meyer, T.: Dynamic change management by distributed graph transformation: Towards configurable distributed systems. In: Selected papers from the 6th International Workshop on Theory and Application of Graph Transformations, pp. 179–193. Springer, Heidelberg (2000)
Hirsch, D., Inverardi, P., Montanari, U.: Graph grammars and constraint solving for software architecture styles. In: Proceedings of the third international workshop on Software architecture, pp. 69–72. ACM Press, New York (1998)
Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: Proceedings of the 20th International Conference on Software Engineering, pp. 177–186. IEEE Computer Society, Los Alamitos (1998)
Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E.: A component- and message-based architectural style for GUI software. In: Proceedings of the 17th International Conference on Software Engineering, pp. 295–304. ACM Press, New York (1995)
Kramer, J., Magee, J.: Analysing dynamic change in software architectures: a case study. In: Proc. of 4th IEEE International Conference on Configurable Distributed Systems, Annapolis (1998)
Zhang, J., Cheng, B.H.C.: Using temporal logic to specify adaptive program semantics. Journal of Systems and Software (JSS), Architecting Dependable Systems 79(10), 1361–1369 (2006)
Zhang, J., Cheng, B.H.C.: Model-based development of dynamically adaptive software. In: Proceedings of IEEE International Conference on Software Engineering (ICSE 2006), Shanghai,China (2006)
Zhang, J., Cheng, B.H.C.: Modular model checking of dynamically adaptive programs. Technical Report MSU-CSE-06-18, Computer Science and Engineering, Michigan State University, East Lansing, Michigan (2006), http://www.cse.msu.edu/~zhangji9/Zhang06Modular.pdf
Havelund, K., Rosu, G.: Monitoring Java programs with Java PathExplorer. In: Proceedings of the 1st Workshop on Runtime Verification, Paris, France (2001)
Lee, I., Kannan, S., Kim, M., Sokolsky, O., Viswanathan, M.: Runtime assurance based on formal specifications. In: Proc. Parallel and Distributed Processing Techniques and Applications, pp. 279–287 (1999)
Drusinsky, D.: The temporal rover and the atg rover. In: Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification, London, UK, pp. 323–330. Springer, Heidelberg (2000)
Feather, M.S., Fickas, S., Van Lamsweerde, A., Ponsard, C.: Reconciling system requirements and runtime behavior. In: Proceedings of the 9th International Workshop on Software Specification and Design, p. 50. IEEE Computer Society, Los Alamitos (1998)
The AspectJ Team: The AspectJ(TM) programming guide (2007), http://eclipse.org/aspectj
Appavoo, J., Hui, K., Soules, C.A.N., et al.: Enabling autonomic behavior in systems software with hot swapping. IBM Systems Journal 42(1), 60 (2003)
Chen, W.K., Hiltunen, M.A., Schlichting, R.D.: Constructing adaptive software in distributed systems. In: Proc. of the 21st International Conference on Distributed Computing Systems, Mesa, AZ (2001)
Kulkarni, S.S., Biyani, K.N., Arumugam, U.: Composing distributed fault-tolerance components. In: Proceedings of the International Conference on Dependable Systems and Networks (DSN), Supplemental Volume, Workshop on Principles of Dependable Systems, pp. W127–W136 (2003)
Zhang, J., Yang, Z., Cheng, B.H.C., McKinley, P.K.: Adding safeness to dynamic adaptation techniques. In: Proceedings of IEEE ICSE 2004 Workshop on Architecting Dependable Systems, Edinburgh, Scotland, UK (2004)
Maes, P.: Concepts and experiments in computational reflection. In: Conference proceedings on Object-oriented programming systems, languages and applications, pp. 147–155. ACM Press, New York (1987)
Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Program monitoring with ltl in eagle. In: 18th International Parallel and Distributed Processing Symposium, Parallel and Distributed Systems: Testing and Debugging - PADTAD 2004, IEEE Computer Society Press, Los Alamitos (2004)
Bowman, H., Thompson, S.J.: A tableaux method for Interval Temporal Logic with projection. In: de Swart, H. (ed.) TABLEAUX 1998. LNCS (LNAI), vol. 1397, pp. 108–123. Springer, Heidelberg (1998)
Vardi, M., Wolper, P.: An automata-theoretic approach to automatic program verification. In: Proceedings of the 1st Symposium on Logic in Computer Science, Cambridge, England, pp. 322–331 (1986)
Lichtenstein, O., Pnueli, A.: Checking that finite state concurrent programs satisfy their linear specification. In: Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 97–107. ACM Press, New York (1985)
Zhang, J., Lee, J., McKinley, P.K.: Optimizing the Java pipe I/O stream library for performance. In: Pugh, B., Tseng, C.-W. (eds.) LCPC 2002. LNCS, vol. 2481, Springer, Heidelberg (2005)
Goldsby, H., Cheng, B.H.C., Konrad, S., Kamdoum, S.: A visualization framework for the modeling and formal analysis of high assurance systems. In: Proceedings of the ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems, Genova, Italy (2006)
Goldsby, H.J., Knoester, D.B., Cheng, B.H.C., McKinley, P.K., Ofria, C.A.: Digitally evolving models for dynamically adaptive systems. In: Proceedings of the IEEE ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Minneapolis, Minnesota (2007)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Goldsby, H.J., Cheng, B.H.C., Zhang, J. (2008). AMOEBA-RT: Run-Time Verification of Adaptive Software. In: Giese, H. (eds) Models in Software Engineering. MODELS 2007. Lecture Notes in Computer Science, vol 5002. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69073-3_23
Download citation
DOI: https://doi.org/10.1007/978-3-540-69073-3_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69069-6
Online ISBN: 978-3-540-69073-3
eBook Packages: Computer ScienceComputer Science (R0)