Skip to main content

The Ensemble Development Life Cycle and Best Practices for Collective Autonomic Systems

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8998))

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).

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. 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)

    Article  Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. 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)

    Google Scholar 

  12. Binder, R.: Testing Object-Oriented Systems: Models, Patterns and Tools. Addison-Wesley Professional, Reading (2000)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. 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)

    Google Scholar 

  19. Bulej, L., Bures, T., Horky, V., Keznikl, J., Tuma, P.: Performance Awareness in Component Systems: Vision Paper. In: Proceedings of COMPSAC (2012)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. Buschmann, F., Henney, K., Schmidt, D.C.: A Pattern Language for Distributed Computing. Pattern-Oriented Software Architecture, vol. 4. Wiley, Chichester (2007)

    Google Scholar 

  26. 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)

    Chapter  Google Scholar 

  27. 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)

    Chapter  Google Scholar 

  28. 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)

    Google Scholar 

  29. 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

    Google Scholar 

  30. IBM Corporation: An Architectural Blueprint for Autonomic Computing. Tech. rep., IBM (2005), http://researchr.org/publication/autonomic-architecture-2005

  31. 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)

    Chapter  Google Scholar 

  32. De Nicola, R., Loreti, M., Pugliese, R., Tiezzi, F.: SCEL: A Language for Autonomic Computing. Tech. rep., IMT Lucca (January 2013)

    Google Scholar 

  33. Erl, T.: SOA Design Patterns, 1st edn. Prentice-Hall, Upper Saddle River (2009)

    Google Scholar 

  34. Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman, Amsterdam (2002)

    Google Scholar 

  35. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman, Amsterdam (1995)

    Google Scholar 

  36. Gay, D., Levis, P., Culler, D.: Software design patterns for TinyOS. Trans. on Embedded Computing Sys. 6(4), 22 (2007)

    Article  Google Scholar 

  37. 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)

    Google Scholar 

  38. Hanmer, R.: Patterns for Fault Tolerant Software. John Wiley & Sons, Chichester (2007)

    Google Scholar 

  39. 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)

    Google Scholar 

  40. Hölzl, M.: APEX: The ASCENS Pattern Explorer. web site, http://www.ascens-ist.eu/pattern

  41. Hölzl, M.: The Poem Language (Version 2). Tech. Rep. 7, ASCENS (July 2013), http://www.poem-lang.de/documentation/TR7.pdf

  42. 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)

    Google Scholar 

  43. Hölzl, M., Koch, N.: D8.3: Third Report on WP8—Best Practices for SDEs (first version) (November 2013)

    Google Scholar 

  44. 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)

    Chapter  Google Scholar 

  45. 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)

    Chapter  Google Scholar 

  46. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003), doi:10.1109/MC.2003.1160055

    Article  MathSciNet  Google Scholar 

  47. 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)

    Chapter  Google Scholar 

  48. 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)

    Google Scholar 

  49. 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)

    Google Scholar 

  50. 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)

    Chapter  Google Scholar 

  51. Martin, D., Sommerville, I.: Patterns of Cooperative Interaction: Linking Ethnomethodology and Design. ACM Trans. Comput.-Hum. Interact. 11(1), 59–89 (2004)

    Article  Google Scholar 

  52. 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)

    Google Scholar 

  53. 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)

    Article  Google Scholar 

  54. 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)

    Google Scholar 

  55. 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

    Google Scholar 

  56. Puviani, M.: Catalogue of architectural adaptation patterns (2012), http://mars.ing.unimo.it/wiki/papers/TR42.pdf

  57. Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Transactions on Autonomous and Adaptive Systems 4(2), 1–42 (2009)

    Article  Google Scholar 

  58. Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Patterns for Concurrent and Networked Objects. Pattern-Oriented Software Architecture, vol. 2. Wiley, Chichester (2000)

    Google Scholar 

  59. 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)

    Google Scholar 

  60. 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)

    Article  Google Scholar 

  61. Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.): Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998. Springer, Heidelberg (2015)

    Google Scholar 

  62. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics