Architectural Reasoning Support for Product-Lines of Self-adaptive Software Systems - A Case Study

  • Nadeem AbbasEmail author
  • Jesper Andersson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9278)


Software architecture serves as a foundation for the design and development of software systems. Designing an architecture requires extensive analysis and reasoning. The study presented herein focuses on the architectural analysis and reasoning in support of engineering self-adaptive software systems with systematic reuse. Designing self-adaptive software systems with systematic reuse introduces variability along three dimensions; adding more complexity to the architectural analysis and reasoning process. To this end, the study presents an extended Architectural Reasoning Framework with dedicated reasoning support for self-adaptive systems and reuse. To evaluate the proposed framework, we conducted an initial feasibility case study, which concludes that the proposed framework assists the domain architects to increase reusability, reduce fault density, and eliminate differences in skills and experiences among architects, which were our research goals and are decisive factors for a system’s overall quality.


Test Assignment Reference Approach Product Line Engineering Reasoning Framework Function Point Analysis 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abbas, N.: Towards autonomic software product lines. In: Proceedings of the 15th International Software Product Line Conference, SPLC 2011, vol. 2, pp. 44:1–44:8. ACM, New York (2011)Google Scholar
  2. 2.
    Abbas, N., Andersson, J.: Architectural reasoning for dynamic software product lines. In: Proceedings of the 17th International Software Product Line Conference Co-located Workshops, pp. 117–124Google Scholar
  3. 3.
    Abbas, N., Andersson, J., Weyns, D.: Modeling variability in product lines using domain quality attribute scenarios. In: Proceedings of the WICSA/ECSA 2012 Companion Volume, pp. 135–142. ACM, New York (2012)Google Scholar
  4. 4.
    Albrecht, A., Gaffney, J.E.: Software function, source lines of code, and development effort prediction: A software science validation. IEEE Transactions on Software Engineering SE–9(6), 639–648 (1983)CrossRefGoogle Scholar
  5. 5.
    Bachmann, F., Bass, L., Klein, M., et al.: Designing software architectures to achieve quality attribute requirements. IEE Proceedings - Software 152(4), 153–165 (2005)CrossRefGoogle Scholar
  6. 6.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley Professional (2003)Google Scholar
  7. 7.
    Bass, L., Ivers, J., Klein, M., et al.: Encapsulating quality attribute knowledge. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, WICSA 2005, pp. 193–194. IEEE Computer Society, Washington, DC (2005)Google Scholar
  8. 8.
    Bass, L., Ivers, J., Klein, M.H., et al.: Reasoning frameworks. Tech. rep. (2005).
  9. 9.
    Cetina, C., Haugen, O., Zhang, X., Fleurey, F., Pelechano, V.: Strategies for variability transformation at run-time. In: Proceedings of the 13th International Software Product Line Conference, SPLC 2009, pp. 61–70. Carnegie Mellon University, Pittsburgh (2009)Google Scholar
  10. 10.
    de Lemos, R., et al.: Software engineering for self-adaptive systems: a second research roadmap. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 7475, pp. 1–32. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  11. 11.
    Diaz-Pace, A., Kim, H.-W., Bass, L.J., Bianco, P., Bachmann, F.: Integrating quality-attribute reasoning frameworks in the ArchE design assistant. In: Becker, S., Plasil, F., Reussner, R. (eds.) QoSA 2008. LNCS, vol. 5281, pp. 171–188. Springer, Heidelberg (2008) Google Scholar
  12. 12.
    DiVA: Diva-dynamic variability in complex, adaptive systems.
  13. 13.
    Fenton, N.E., Neil, M.: Software metrics: roadmap. In: Proceedings of the Conference on The Future of Software Engineering, pp. 357–370. ACM, New York (2000)Google Scholar
  14. 14.
    Floch, J., Hallsteinsen, S., Stav, E., et al.: Using architecture models for runtime adaptability. IEEE Software 23(2), 62–70 (2006)CrossRefGoogle Scholar
  15. 15.
    Frakes, W., Terry, C.: Software reuse: Metrics and models. ACM Computing Surveys 28(2), 415–435 (1996)CrossRefGoogle Scholar
  16. 16.
    Hallsteinsen, S., Hinchey, M., Park, S., et al.: Dynamic software product lines. IEEE Computer 41(4), 93–95 (2008)CrossRefGoogle Scholar
  17. 17.
    Höst, M., Regnell, B., Wohlin, C.: Using students as subjects-a comparative study of students and professionals in lead-time impact assessment. Empirical Software Engineering 5(3), 201–214 (2000). CrossRefzbMATHGoogle Scholar
  18. 18.
    Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  19. 19.
    Liu, J., Mao, X.: Towards realisation of evolvable runtime variability in internet-based service systems via dynamical software update. In: Proceedings of the 6th Asia-Pacific Symposium on Internetware, Internetware 2014, pp. 97–106. ACM, New York (2014)Google Scholar
  20. 20.
    Peeters, P., van Asperen, J., Jacobs, M., et al.: The application of Function Point Analysis (FPA) in the early phases of the application life cycle A Practical Manual: Theory and case study, 2.0 edn. Netherlands Software Metrics Association (NESMA) (2005)Google Scholar
  21. 21.
    Pohl, K., Böckle, G., Van Der Linden, F.: Software product line engineering: foundations, principles, and techniques. Springer-Verlag New York Inc. (2005)Google Scholar
  22. 22.
    Prieto-Diaz, R.: Status report: software reusability. IEEE Software 10(3), 61–66 (1993)CrossRefGoogle Scholar
  23. 23.
    Runeson, P., Höst, M., Rainer, A., et al.: Case Study Research in Software Engineering: Guidelines and Examples, 1st edn. Wiley Publishing (2012)Google Scholar
  24. 24.
    Weyns, D., Iftikhar, M., Malek, S., et al.: Claims and supporting evidence for self-adaptive systems: a literature study. In: 2012 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systemsm, pp. 89–98 (2012)Google Scholar
  25. 25.
    Weyns, D., Iftikhar, M.U., Söderlund, J.: Do external feedback loops improve the design of self-adaptive systems? a controlled experiment. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, pp. 3–12. IEEE Press, Piscataway (2013)Google Scholar
  26. 26.
    Weyns, D., Schmerl, B., Grassi, V., Malek, S., Mirandola, R., Prehofer, C., Wuttke, J., Andersson, J., Giese, H., Göschka, K.M.: 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. LNCS, vol. 7475, pp. 76–107. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  27. 27.
    Whittle, J., Sawyer, P., Bencomo, N., et al.: RELAX: a language to address uncertainty in self-adaptive systems requirement. Requirements Engineering 15(2), 177–196 (2010)CrossRefGoogle Scholar
  28. 28.
    Wirfs-Brock, R., McKean, A.: Object design: roles, responsibilities, and collaborations. Addison-Wesley Professional (2003)Google Scholar
  29. 29.
    Wohlin, C., Runeson, P., Höst, M., et al.: Experimentation in Software Engineering, 1st edn. Springer, Heidelberg (2012) CrossRefzbMATHGoogle Scholar
  30. 30.
    Zimmermann, O., Gschwind, T., Küster, J.M., Leymann, F., Schuster, N.: Reusable architectural decision models for enterprise application development. In: Overhage, S., Ren, X.-M., Reussner, R., Stafford, J.A. (eds.) QoSA 2007. LNCS, vol. 4880, pp. 15–32. Springer, Heidelberg (2008) CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.AdaptWise Department of Computer ScienceLinnaeus UniversityVäxjöSweden

Personalised recommendations