Abstract
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.
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
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)
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–124
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)
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)
Bachmann, F., Bass, L., Klein, M., et al.: Designing software architectures to achieve quality attribute requirements. IEE Proceedings - Software 152(4), 153–165 (2005)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley Professional (2003)
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)
Bass, L., Ivers, J., Klein, M.H., et al.: Reasoning frameworks. Tech. rep. (2005). http://www.sei.cmu.edu/library/abstracts/reports/05tr007.cfm
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)
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)
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)
DiVA: Diva-dynamic variability in complex, adaptive systems. http://sites.google.com/site/divawebsite
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)
Floch, J., Hallsteinsen, S., Stav, E., et al.: Using architecture models for runtime adaptability. IEEE Software 23(2), 62–70 (2006)
Frakes, W., Terry, C.: Software reuse: Metrics and models. ACM Computing Surveys 28(2), 415–435 (1996)
Hallsteinsen, S., Hinchey, M., Park, S., et al.: Dynamic software product lines. IEEE Computer 41(4), 93–95 (2008)
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). http://dx.doi.org/10.1023/A:1026586415054
Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)
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)
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)
Pohl, K., Böckle, G., Van Der Linden, F.: Software product line engineering: foundations, principles, and techniques. Springer-Verlag New York Inc. (2005)
Prieto-Diaz, R.: Status report: software reusability. IEEE Software 10(3), 61–66 (1993)
Runeson, P., Höst, M., Rainer, A., et al.: Case Study Research in Software Engineering: Guidelines and Examples, 1st edn. Wiley Publishing (2012)
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)
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)
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)
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)
Wirfs-Brock, R., McKean, A.: Object design: roles, responsibilities, and collaborations. Addison-Wesley Professional (2003)
Wohlin, C., Runeson, P., Höst, M., et al.: Experimentation in Software Engineering, 1st edn. Springer, Heidelberg (2012)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Abbas, N., Andersson, J. (2015). Architectural Reasoning Support for Product-Lines of Self-adaptive Software Systems - A Case Study. In: Weyns, D., Mirandola, R., Crnkovic, I. (eds) Software Architecture. ECSA 2015. Lecture Notes in Computer Science(), vol 9278. Springer, Cham. https://doi.org/10.1007/978-3-319-23727-5_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-23727-5_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-23726-8
Online ISBN: 978-3-319-23727-5
eBook Packages: Computer ScienceComputer Science (R0)