Abstract
Collective autonomic systems are adaptive, open-ended, highly parallel, interactive and distributed software systems. Their key features are so-called self-* properties, such as self-awareness, self-adaptation, self-expression, self-healing and self-management. We propose a software development life cycle that helps developers to engineer adaptive behavior and to address the issues posed by the diversity of self-* properties. The life cycle is characterized by three feedback loops, i.e. based on verification at design time, based on monitoring and awareness in the runtime, and the feedback provided by runtime data to the design phases. We illustrate how the life cycle can be instantiated using specific languages, methods and tools developed within the ASCENS project. In addition, a pattern catalog for the development of collective autonomic systems is presented to ease the engineering process.
This work has been sponsored by the EU project ASCENS IP 257414 (FP7).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abeywickrama, D.B., Zambonelli, F.: Model Checking Goal-Oriented Requirements for Self-Adaptive Systems. In: Proceedings of the 19th IEEE International Conference and Workshops on Engineering of Computer-Based Systems, Apr. 2012, pp. 33–42 (2012)
Abeywickrama, D., Bicocchi, N., Zambonelli, F.: Sota: Towards a general model for self-adaptive systems. In: IEEE 21st International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE 2012), June 2012, pp. 48–53 (2012)
de Lemos, R.: Engineering for Self-Adaptive Systems: A second Research Roadmap. In: de Lemos, R., Giese, H., Müller, H., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems. No. 10431 in Dagstuhl Seminar Proceedings, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany, Dagstuhl, Germany (2011)
Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling dimensions of self-adaptive software systems. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009)
Babaoglu, O., Canright, G., Deutsch, A., Caro, G.A.D., Ducatelle, F., Gambardella, L.M., Ganguly, N., Jelasity, M., Montemanni, R., Montresor, A., Urnes, T.: Design patterns from biology for distributed computing. ACM Trans. Auton. Adapt. Syst. 1(1), 26–66 (2006)
Basu, A., Bensalem, S., Bozga, M., Caillaud, B., Delahaye, B., Legay, A.: Statistical abstraction and model-checking of large heterogeneous systems. In: Hatcliff, J., Zucca, E. (eds.) FORTE 2010 and FMOODS 2010. LNCS, vol. 6117, pp. 32–46. Springer, Heidelberg (2010)
Basu, A., Bensalem, S., Bozga, M., Combaz, J., Jaber, M., Nguyen, T.H., Sifakis, J.: Rigorous component-based design using the BIP framework. IEEE Software, Special Edition – Software Components beyond Programming – from Routines to Services 28(3), 41–48 (2011)
Basu, A., Bozga, M., Sifakis, J.: Modeling Heterogeneous Real-time Components in BIP. In: SEFM, pp. 3–12. IEEE Computer Society Press, Los Alamitos (2006)
Bensalem, S., Bozga, M., Delahaye, B., Jegourel, C., Legay, A., Nouri, A.: Statistical Model Checking QoS Properties of Systems with SBIP. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 327–341. Springer, Heidelberg (2012)
Bensalem, S., Bozga, M., Nguyen, T.H., Sifakis, J.: D-Finder: A Tool for Compositional Deadlock Detection and Verification. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 614–619. Springer, Heidelberg (2009)
Bensalem, S., Griesmayer, A., Legay, A., Nguyen, T.H., Peled, D.: Efficient Deadlock Detection for Concurrent Systems. In: Singh, S., Jobstmann, B., Kishinevsky, M., Brandt, J. (eds.) MEMOCODE, pp. 119–129. IEEE Computer Society Press, Los Alamitos (2011)
Binder, R.: Testing Object-Oriented Systems: Models, Patterns and Tools. Addison-Wesley Professional, Reading (2000)
Bröckers, A., Lott, C.M., Rombach, H.D., Verlage, M.: MVP-L Language Report Version 2. Tech. Rep. Technical Report Nr. 265/95, University of Kaiserslautern (1995)
Brun, Y., Di Marzo Serugendo, G., Gacek, C., Giese, H., Kienle, H.M., Litoiu, M., Müller, H., Pezzè, M., Shaw, M.: Engineering self-adaptive systems through feedback loops. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009)
Brun, Y., Di Marzo Serugendo, G., Gacek, C., Giese, H., Kienle, H.M., Litoiu, M., Müller, H., Pezzè, M., Shaw, M.: Engineering self-adaptive systems through feedback loops. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009)
Bruni, R., Corradini, A., Gadducci, F., Hölzl, M., Lafuente, A.L., Vandin, A., Wirsing, M.: Reconciling White-Box and Black-Box Perspectives on Behavioral Self-adaptation. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 163–184. Springer, Heidelberg (2015)
Bruni, R., Corradini, A., Gadducci, F., Lluch Lafuente, A., Vandin, A.: A Conceptual Framework for Adaptation. In: de Lara, J., Zisman, A. (eds.) Fundamental Approaches to Software Engineering. LNCS, vol. 7212, pp. 240–254. Springer, Heidelberg (2012)
Bulej, L., Bureš, T., Gerostathopoulos, I., Horký, V., Keznikl, J., Marek, L., Tschaikowski, M., Tribastone, M., Tøuma, P.: Supporting Performance Awareness in Autonomous Ensembles. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 291–322. Springer, Heidelberg (2015)
Bulej, L., Bures, T., Horky, V., Keznikl, J., Tuma, P.: Performance Awareness in Component Systems: Vision Paper. In: Proceedings of COMPSAC (2012)
Bulej, L., Bures, T., Keznikl, J., Koubkova, A., Podzimek, A., Tuma, P.: Capturing Performance Assumptions using Stochastic Performance Logic. In: Proc. 3rd Intl. Conf. on Performance Engineering (ICPE’12), Boston, MA, USA (2012)
Bulej, L., Bureš, T., Keznikl, J., Koubková, A., Podzimek, A., Tůma, P.: Capturing performance assumptions using stochastic performance logic. In: Proc. ICPE 2012, pp. 311–322. ACM Press, New York (2012)
Bures, T., Gerostathopoulos, I., Hnetynka, P., Keznikl, J., Kit, M., Plasil, F.: DEECO: An Ensemble-Based Component System. In: Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering (CBSE ’13), pp. 81–90. ACM Press, New York (2013)
Bureš, T., Gerostathopoulos, I., Hnetynka, P., Keznikl, J., Kit, M., Plasil, F.: The Invariant Refinement Method. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 405–428. Springer, Heidelberg (2015)
Bures, T., Nicola, R.D., Gerostathopoulos, I., Hoch, N., Kit, M., Koch, N., Monreale, G.V., Montanari, U., Pugliese, R., Serbedzija, N., Wirsing, M., Zambonelli, F.: A life cycle for the development of autonomic systems: The e-mobility showcase. 2013 IEEE 7th International Conference on Self-Adaptation and Self-Organizing Systems Workshops 0, 71–76 (2013)
Buschmann, F., Henney, K., Schmidt, D.C.: A Pattern Language for Distributed Computing. Pattern-Oriented Software Architecture, vol. 4. Wiley, Chichester (2007)
Cabri, G., Puviani, M., Zambonelli, F.: Towards a Taxonomy of Adaptive Agent-Based Collaboration Patterns for Autonomic Service Ensembles. In: Proceedings of the 2011 International Conference on Collaboration Technologies and Systems, May 2011, pp. 508–515. IEEE Computer Society Press, Los Alamitos (2011)
Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Di Marzo Serugendo, G., Dustdar, S., Finkelstein, A., Gacek, C., Geihs, K., Grassi, V., Karsai, G., Kienle, H.M., Kramer, J., Litoiu, M., Malek, S., Mirandola, R., Müller, H.A., Park, S., Shaw, M., Tichy, M., Tivoli, M., Weyns, D., Whittle, J.: Software engineering for self-adaptive systems: A research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009)
Combaz, J., Bensalem, S., Tiezzi, F., Margheri, A., Pugliese, R., Kofron, J.: Correctness of Service Components and Service Component Ensembles. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 107–159. Springer, Heidelberg (2015)
Combaz, J., Lafuente, A.L., Montanari, U., Pugliese, R., Sammartino, M., Tiezzi, F., Vandin, A., von Essen, C.: Verification Results Applied to the Case Studies - ASCENS Joint Deliverable JD3.1 (2013), http://www.ascens-ist.eu/deliverables/JD31.pdf
IBM Corporation: An Architectural Blueprint for Autonomic Computing. Tech. rep., IBM (2005), http://researchr.org/publication/autonomic-architecture-2005
De Nicola, R., Ferrari, G.-L., Loreti, M., Pugliese, R.: A Language-Based Approach to Autonomic Computing. In: Beckert, B., Damiani, F., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2011. LNCS, vol. 7542, pp. 25–48. Springer, Heidelberg (2013)
De Nicola, R., Loreti, M., Pugliese, R., Tiezzi, F.: SCEL: A Language for Autonomic Computing. Tech. rep., IMT Lucca (January 2013)
Erl, T.: SOA Design Patterns, 1st edn. Prentice-Hall, Upper Saddle River (2009)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman, Amsterdam (2002)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman, Amsterdam (1995)
Gay, D., Levis, P., Culler, D.: Software design patterns for TinyOS. Trans. on Embedded Computing Sys. 6(4), 22 (2007)
Gomaa, H., Hashimoto, K.: Dynamic self-adaptation for distributed service-oriented transactions. In: International Workshop on Software Engineering for Adaptive and Self-Managing Systems, Zurich, Switzerland, pp. 11–20. IEEE, Los Alamitos (2012)
Hanmer, R.: Patterns for Fault Tolerant Software. John Wiley & Sons, Chichester (2007)
Hoch, N., Monreale, G.V., Montanari, U., Sammartino, M., Siwe, A.T.: From Local to Global Knowledge and Back. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 185–220. Springer, Heidelberg (2015)
Hölzl, M.: APEX: The ASCENS Pattern Explorer. web site, http://www.ascens-ist.eu/pattern
Hölzl, M.: The Poem Language (Version 2). Tech. Rep. 7, ASCENS (July 2013), http://www.poem-lang.de/documentation/TR7.pdf
Hölzl, M., Gabor, T.: Reasoning and Learning for Awareness and Adaptation. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 249–290. Springer, Heidelberg (2015)
Hölzl, M., Koch, N.: D8.3: Third Report on WP8—Best Practices for SDEs (first version) (November 2013)
Hölzl, M.M., Wirsing, M.: Towards a system model for ensembles. In: Agha, G., Danvy, O., Meseguer, J. (eds.) Formal Modeling: Actors, Open Systems, Biological Systems. LNCS, vol. 7000, pp. 241–261. Springer, Heidelberg (2011)
Inverardi, P., Mori, M.: A Software Lifecycle Process to Support Consistent Evolutions. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 239–264. Springer, Heidelberg (2013)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003), doi:10.1109/MC.2003.1160055
Keznikl, J., Bures, T., Plasil, F., Gerostathopoulos, I., Hnetynka, P., Hoch, N.: Design of Ensemble-Based Component Systems by Invariant Refinement. In: Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering (CBSE ’13), pp. 91–100. ACM Press, New York (2013)
Keznikl, J., Bures, T., Plasil, F., Kit, M.: Towards Dependable Emergent Ensembles of Components: The DEECo Component Model. In: WICSA/ECSA, pp. 249–252. IEEE Computer Society Press, Los Alamitos (2012)
Klarl, A., Hennicker, R.: Design and Implementation of Dynamically Evolving Ensembles with the HELENA Framework. In: Proceedings of the 23rd Australasian Software Engineering Conference, pp. 15–24. IEEE Computer Society Press, Los Alamitos (2014)
Marek, L., Villazón, A., Zheng, Y., Ansaloni, D., Binder, W., Qi, Z.: DiSL: a domain-specific language for bytecode instrumentation. In: Proceedings of the 11th annual international conference on Aspect-oriented Software Development (AOSD ’12), pp. 239–250. ACM Press, New York (2012)
Martin, D., Sommerville, I.: Patterns of Cooperative Interaction: Linking Ethnomethodology and Design. ACM Trans. Comput.-Hum. Interact. 11(1), 59–89 (2004)
Morandini, M.: the use of the goal-oriented paradigm for system design and law compliance reasoning. In: iStar 2010–4 th International i* Workshop, Hammamet, Tunisia, p. 71 (2010)
Mylopoulos, J., Chung, L., Yu, E.S.K.: From Object-Oriented to Goal-Oriented Requirements Analysis. Communications of the ACM 42(1), 31–37 (1999)
De Nicola, R., Latella, D., Lafuente, A.L., Loreti, M., Margheri, A., Massink, M., Morichetta, A., Pugliese, R., Tiezzi, F., Vandin, A.: The SCEL Language: Design, Implementation, Verification. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 3–71. Springer, Heidelberg (2015)
Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992), doi:10.1007/3-540-55602-8_217
Puviani, M.: Catalogue of architectural adaptation patterns (2012), http://mars.ing.unimo.it/wiki/papers/TR42.pdf
Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Transactions on Autonomous and Adaptive Systems 4(2), 1–42 (2009)
Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Patterns for Concurrent and Networked Objects. Pattern-Oriented Software Architecture, vol. 2. Wiley, Chichester (2000)
Vassev, E., Hinchey, M.: Engineering Requirements for Autonomy Features. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998, pp. 379–403. Springer, Heidelberg (2015)
Weyns, D., Malek, S., Andersson, J.: Forms: Unifying reference model for formal specification of distributed self-adaptive systems. ACM Transactions on Autonomous and Adaptive Systems 7(1), 8 (2012)
Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.): Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998. Springer, Heidelberg (2015)
Wirsing, M., Hölzl, M.M., Tribastone, M., Zambonelli, F.: ASCENS: Engineering Autonomic Service-Component Ensembles. In: Beckert, B., Damiani, F., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2011. LNCS, vol. 7542, pp. 1–24. Springer, Heidelberg (2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Hölzl, M., Koch, N., Puviani, M., Wirsing, M., Zambonelli, F. (2015). The Ensemble Development Life Cycle and Best Practices for Collective Autonomic Systems. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds) Software Engineering for Collective Autonomic Systems. Lecture Notes in Computer Science, vol 8998. Springer, Cham. https://doi.org/10.1007/978-3-319-16310-9_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-16310-9_9
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-16309-3
Online ISBN: 978-3-319-16310-9
eBook Packages: Computer ScienceComputer Science (R0)