Advertisement

Challenges in Composing and Decomposing Assurances for Self-Adaptive Systems

  • Bradley Schmerl
  • Jesper Andersson
  • Thomas Vogel
  • Myra B. Cohen
  • Cecilia M. F. Rubira
  • Yuriy Brun
  • Alessandra Gorla
  • Franco Zambonelli
  • Luciano Baresi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9640)

Abstract

Self-adaptive software systems adapt to changes in the environment, in the system itself, in their requirements, or in their business objectives. Typically, these systems attempt to maintain system goals at run time and often provide assurance that they will meet their goals under dynamic and uncertain circumstances. While significant research has focused on ways to engineer self-adaptive capabilities into both new and legacy software systems, less work has been conducted on how to assure that self-adaptation maintains system goals. For traditional, especially safety-critical software systems, assurance techniques decompose assurances into sub-goals and evidence that can be provided by parts of the system. Existing approaches also exist for composing assurances, in terms of composing multiple goals and composing assurances in systems of systems. While some of these techniques may be applied to self-adaptive systems, we argue that several significant challenges remain in applying them to self-adaptive systems in this chapter. We discuss how existing assurance techniques can be applied to composing and decomposing assurances for self-adaptive systems, highlight the challenges in applying them, summarize existing research to address some of these challenges, and identify gaps and opportunities to be addressed by future research.

References

  1. 1.
    Ali, R., Griggio, A., Franzén, A., Dalpiaz, F., Giorgini, P.: Optimizing monitoring requirements in self-adaptive systems. In: Bider, I., Halpin, T., Krogstie, J., Nurcan, S., Proper, E., Schmidt, R., Soffer, P., Wrycza, S. (eds.) BPMDS/EMMSAD -2012. LNBIP, vol. 113, pp. 362–377. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-31072-0_25 CrossRefGoogle Scholar
  2. 2.
    Barna, C., Shtern, M., Smit, M., Tzerpos, V., Litoiu, M.: Mitigating dos attacks using performance model-driven adaptive algorithms. ACM Trans. Auton. Adapt. Syst. 9(1), 3:1–3:26 (2014)CrossRefGoogle Scholar
  3. 3.
    Bate, I., Kelly, T.: Architectural considerations in the certification of modular systems. In: Anderson, S., Felici, M., Bologna, S. (eds.) SAFECOMP 2002. LNCS, vol. 2434, pp. 321–333. Springer, Heidelberg (2002).  https://doi.org/10.1007/3-540-45732-1_31 CrossRefGoogle Scholar
  4. 4.
    Bloomfield, R., Bishop, P.: Safety and assurance cases: past, present and possible future - an Adelard perspective. In: Dale, C., Anderson, T. (eds.) Making Systems Safer, pp. 51–67. Springer, London (2010).  https://doi.org/10.1007/978-1-84996-086-1_4
  5. 5.
    Bloomfield, R., Peter, B., Jones, C., Froome, P.: ASCAD – Adelard Safety Case Development Manual. Adelard, 3 Coborn Road, London E3 2DA, UK (1998)Google Scholar
  6. 6.
    Brun, Y., Bang, J.Y., Edwards, G., Medvidovic, N.: Self-adapting reliability in distributed software systems. IEEE Trans. Softw. Eng. (TSE) (2015) (in press)Google Scholar
  7. 7.
    Brun, Y., Edwards, G., Bang, J.Y., Medvidovic, N.: Smart redundancy for distributed computation. In: Proceedings of the 31st International Conference on Distributed Computing Systems (ICDCS), Minneapolis, MN, USA, pp. 665–676, June 2011,  https://doi.org/10.1109/ICDCS.2011.25
  8. 8.
    Brun, Y., Medvidovic, N.: Fault and adversary tolerance as an emergent property of distributed systems’ software architectures. In: Proceedings of the 2nd International Workshop on Engineering Fault Tolerant Systems (EFTS), Dubrovnik, Croatia, pp. 38–43, September 2007,  https://doi.org/10.1145/1316550.1316557
  9. 9.
    Brun, Y., Medvidovic, N.: An architectural style for solving computationally intensive problems on large networks. In: Proceedings of Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Minneapolis, MN, USA, May 2007,  https://doi.org/10.1109/SEAMS.2007.4
  10. 10.
    Brun, Y., Medvidovic, N.: Keeping data private while computing in the cloud. In: Proceedings of the 5th International Conference on Cloud Computing (CLOUD), Honolulu, HI, USA, pp. 285–294, June 2012,  https://doi.org/10.1109/CLOUD.2012.126
  11. 11.
    Brun, Y., Medvidovic, N.: Entrusting private computation and data to untrusted networks. IEEE Trans. Dependable Secure Comput. (TDSC), 10(4), 225–238 (2013),  https://doi.org/10.1109/TDSC.2013.13
  12. 12.
    Brun, Y., Reishus, D.: Path finding in the tile assembly model. Theoret. Comput. Sci. 410(15), 1461–1472 (2009),  https://doi.org/10.1016/j.tcs.2008.12.008
  13. 13.
    Casanova, P., Garlan, D., Schmerl, B., Abreu, R.: Diagnosing architectural run-time failures. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, 20–21 May 2013 (2013)Google Scholar
  14. 14.
    Casanova, P., Garlan, D., Schmerl, B., Abreu, R.: Diagnosing unobserved components in self-adaptive systems. In: 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, Hyderabad, India, 2–3 June 2014 (2014)Google Scholar
  15. 15.
    Cheng, B.H.C., Sawyer, P., Bencomo, N., Whittle, J.: A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 468–483. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-04425-0_36 CrossRefGoogle Scholar
  16. 16.
    Cheng, B.H.C., et al.: Software engineering for self-adaptive systems: a research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-02161-9_1 CrossRefGoogle Scholar
  17. 17.
    Cheng, S.-W., Garlan, D., Schmerl, B.: Architecture-based self-adaptation in the presence of multiple objectives. In: Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Shanghai, China, 21–22 May 2006 (2006)Google Scholar
  18. 18.
    Cheng, S.-W., Garlan, D., Schmerl, B.: Evaluating the effectiveness of the rainbow self-adaptive system. In: Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2009), Vancouver, BC, Canada, May 2009Google Scholar
  19. 19.
    Cheng, S.-W., Garlan, D., Schmerl, B., Sousa, J.A.P., Spitznagel, B., Steenkiste, P.: Using architectural style as a basis for self-repair. In: Bosch, J., Gentleman, M., Hofmeister, C., Kuusela, J. (eds.) Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture, 25–31 August 2002, pp. 45–59. Kluwer Academic Publishers (2002)Google Scholar
  20. 20.
    Cohen, D.M., Dalal, S.R., Fredman, M.L., Patton, G.C.: The AETG system: an approach to testing based on combinatorial design. IEEE Trans. Software Eng. 23(7), 437–444 (1997)CrossRefGoogle Scholar
  21. 21.
    Cohen, M.B., Dwyer, M.B., Shi, J.: Constructing interaction test suites for highly-configurable systems in the presence of constraints: a greedy approach. IEEE Trans. Software Eng. 34(5), 633–650 (2008)CrossRefGoogle Scholar
  22. 22.
    Cordy, M., Classen, A., Heymans, P., Legay, A., Schobbens, P.-Y.: Model checking adaptive software with featured transition systems. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 1–29. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-36249-1_1 CrossRefGoogle Scholar
  23. 23.
    Elkhodary, A., Esfahani, N., Malek, S.: FUSION: a framework for engineering self-tuning self-adaptive software systems. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2010, pp. 7–16 (2010)Google Scholar
  24. 24.
    Filieri, A., Ghezzi, C., Tamburrelli, G.: Run-time efficient probabilistic model checking. In: 33rd International Conference on Software Engineering (ICSE), pp. 341–350, May 2011Google Scholar
  25. 25.
    Filieri, A., Tamburrelli, G.: Probabilistic verification at runtime for self-adaptive systems. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 30–59. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-36249-1_2 CrossRefGoogle Scholar
  26. 26.
    Franco, J., Correia, F., Barbosa, R., Zenha-Rela, M., Schmerl, B., Garlan, D.: Improving self-adaptation through software architecture-based stochastic modeling. J. Syst. Softw. 42(1), 75–99 (2016)Google Scholar
  27. 27.
    Fredericks, E.M., DeVries, B., Cheng, B.H.C.: Towards run-time adaptation of test cases for self-adaptive systems in the face of uncertainty. In: Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, pp. 17–26. ACM, New York (2014)Google Scholar
  28. 28.
    Garlan, D., Cheng, S.-W., Huang, A.-C., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self adaptation with reusable infrastructure. IEEE Comput. 37(10), October 2004Google Scholar
  29. 29.
    Garvin, B.J., Cohen, M.B., Dwyer, M.B.: Failure avoidance in configurable systems through feature locality. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 266–296. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-36249-1_10 CrossRefGoogle Scholar
  30. 30.
    Goal Structuring Notation (GSN) community standard version 1, November 2011, http://goalstructingnotation.info
  31. 31.
    Hawkins, R., Clegg, K., Alexander, R., Kelly, T.: Using a software safety argument pattern catalogue: two case studies. In: Flammini, F., Bologna, S., Vittorini, V. (eds.) SAFECOMP 2011. LNCS, vol. 6894, pp. 185–198. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-24270-0_14 CrossRefGoogle Scholar
  32. 32.
    Hellerstein, J.L., Diao, Y., Parekh, S., Tilbury, D.M.: Feedback Control of Computing Systems. Wiley, Chichester (2004)CrossRefGoogle Scholar
  33. 33.
    High, K.M., Kelly, T.P., Mcdermid, J.A.: Safety case construction and reuse using patterns. In: 16th International Conference on Computer Safety and Reliability, SAFECOMP 1997, pp. 55–69. Springer, London (1997).  https://doi.org/10.1007/978-1-4471-0997-6_5
  34. 34.
    Huber, N., Hoorn, A., Koziolek, A., Brosig, F., Kounev, S.: Modeling run-time adaptation at the system architecture level in dynamic service-oriented environments. SOCA 8(1), 73–89 (2014)CrossRefGoogle Scholar
  35. 35.
    Jennings, N.R.: An agent-based approach for building complex software systems. Commun. ACM 44(4), 35–41 (2001)CrossRefGoogle Scholar
  36. 36.
    Kelly, P.: Managing complex safety cases. In: Redmill, F., Anderson, T. (eds.) Current Issues in Safety-Critical Systems, pp. 99–115. Springer, London (2003),  https://doi.org/10.1007/978-1-4471-0653-1_6
  37. 37.
    Kelly, T., Weaver, R.: The goal structuring notation - a safety argument notation. In: Proceedings of Dependable Systems and Networks 2004 Workshop on Assurance Cases (2004)Google Scholar
  38. 38.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  39. 39.
    Litoiu, M.: A performance analysis method for autonomic computing systems. ACM Trans. Auton. Adapt. Syst. 2(1), March 2007Google Scholar
  40. 40.
    Püschel, G., Götz, S., Wilke, C., Aßmann, U.: Towards systematic model-based testing of self-adaptive software. In: ADAPTIVE 2013, The Fifth International Conference on Adaptive and Self-Adaptive Systems and Applications, pp. 65–70 (2013)Google Scholar
  41. 41.
    Puviani, M., Cabri, G., Zambonelli, F.: A taxonomy of architectural patterns for self-adaptive systems. In: International C* Conference on Computer Science and Software Engineering, C3S2E13, Porto, Portugal, pp. 77–85, July 2013Google Scholar
  42. 42.
    Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2) (2009)Google Scholar
  43. 43.
    Schmerl, B., Cámara, J., Gennari, J., Garlan, D., Casanova, P., Moreno, G.A., Glazier, T.J., Barnes, J.M.: Architecture-based self-protection: composing and reasoning about denial-of-service mitigations. In: HotSoS 2014: 2014 Symposium and Bootcamp on the Science of Security, Raleigh, NC, USA, 8–9 April 2014 (2014)Google Scholar
  44. 44.
    Silva Souza, V.E., Lapouchnian, A., Robinson, W.N., Mylopoulos, J.: Awareness requirements for adaptive systems. In: Proceeding of the 6th International Symposium on Software Engineering for Adaptive and Self-managing Systems (SEAMS 2011), pp. 60–69. ACM, New York (2011)Google Scholar
  45. 45.
    Tamura, G., et al.: Towards practical runtime verification and validation of self-adaptive software systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 108–132. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_5 CrossRefGoogle Scholar
  46. 46.
    Van Lamsweerde, A.: Goal-oriented requirements engineering: a guided tour. In: Proceedings of the Fifth IEEE International Symposium on Requirements Engineering, RE 2001, pp. 249–262. IEEE Computer Society, Washington, DC (2001)Google Scholar
  47. 47.
    Voss, S., Schätz, B., Khalil, M., Carlan, C.: Towards modular certification using integrated model-based safety cases. In: Proceedings of VeriSure: Verification and Assurance (2013)Google Scholar
  48. 48.
    Watanabe, T., Yonezawa, A.: Reflection in an object-oriented concurrent language. In: ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 306–315 (1988)Google Scholar
  49. 49.
    Weyns, D., Iftikhar, M.U., de la Iglesia, D.G., Ahmad, T.: A survey of formal methods in self-adaptive systems. In: Proceedings of the Fifth International C* Conference on Computer Science and Software Engineering, C3S2E 2012, pp. 67–79. ACM, New York (2012)Google Scholar
  50. 50.
    Weyns, D., et al.: On patterns for decentralized control in self-adaptive systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 76–107. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_4 CrossRefGoogle Scholar
  51. 51.
    Ye, F., Kelly, T.: Contract-based justification for cots component within safety critical applications. In: Cant, T. (ed.) Ninth Australian Workshop on Safety-Related Programmable Systems (SCS 2004). CRPIT, vol. 47, pp. 13–22. ACS, Brisbane (2004)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Bradley Schmerl
    • 1
  • Jesper Andersson
    • 2
  • Thomas Vogel
    • 3
  • Myra B. Cohen
    • 4
  • Cecilia M. F. Rubira
    • 5
  • Yuriy Brun
    • 6
  • Alessandra Gorla
    • 7
  • Franco Zambonelli
    • 8
  • Luciano Baresi
    • 9
  1. 1.Carnegie Mellon UniversityPittsburghUSA
  2. 2.Linnaeus UniversityVäxjöSweden
  3. 3.Hasso Plattner Institute, University of PotsdamPotsdamGermany
  4. 4.University of NebraskaLincolnUSA
  5. 5.University of CampinasCampinasBrazil
  6. 6.University of MassachusettsAmherstUSA
  7. 7.IMDEA Software InstituteMadridSpain
  8. 8.University of Modena and Reggio EmiliaModenaItaly
  9. 9.Politecnico di MilanoMilanItaly

Personalised recommendations