Abstract
It is often the case that stakeholders want to strengthen/weaken or otherwise change their requirements for a system-to-be when certain conditions apply at runtime. For example, stakeholders may decide that if requirement R is violated more than N times in a week, it should be relaxed to a less demanding one R−. Such evolution requirements play an important role in the lifetime of a software system in that they define possible changes to requirements, along with the conditions under which these changes apply. In this paper we focus on this family of requirements, how to model them and how to operationalize them at runtime. In addition, we evaluate our proposal with a case study adopted from the literature.
Similar content being viewed by others
Notes
Here, we use the term pattern in its more general sense: “a form or model proposed for imitation” or “something designed or used as a model for making things” (cf. http://www.merriam-webster.com/dictionary/pattern). The reader should not confuse it with design pattern, a more common use for this word in Software Engineering.
Note that, for consistency reasons, even a very simple EvoReq like aborting (which consists of a single operation) is represented as a strategy through the use of the pattern Abort.
Note, however, that is not our intention to prove that the LAS would not have failed if it had been built as an adaptive system using our proposal. Many of the analyses conducted over the failure indicate that the procurement and the development processes were flawed, producing a bad quality system in general. Hence, if adaptation mechanisms had been developed to work with the LAS, there is no guarantee these would have been properly developed and have good quality and would therefore also be prone to failure. Our objectives here are to learn from the problems detected in the LAS in order to identify critical requirements and use those to develop a new system which would, in theory, be designed properly and have good quality in general.
References
Andersson J, de Lemos R, Malek S, Weyns D (2009) Modeling dimensions of self-adaptive software systems. In: Cheng BHC, de Lemos R, Giese H, Inverardi P, Magee J (eds) Software engineering for self-adaptive systems. Lecture notes in computer science, vol 5525. Springer, Berlin, pp 27–47
Antón AI, Potts C (2001) Functional paleontology: system evolution as the user sees it. In: Proceedings of the 23rd international conference on software engineering. IEEE, New York, pp 421–430
Baresi L, Pasquale L (2010) Adaptive goals for self-adaptive service compositions. In: Proceedings of the 2010 IEEE international conference on web services. IEEE, New York, pp 353–360
Bennett KH, Rajlich VT (2000) Software maintenance and evolution: a roadmap. In: Proceedings of the 22nd international conference on software engineering. ACM, New York, pp 73–87
Beynon-Davies P (1995) Information systems ‘failure’: the case of the London Ambulance Service’s Computer Aided Despatch project. Eur J Inf Syst 4(3):171–184
Breitman KK, Leite JCSP, Finkelstein A (1999) The world’s a stage: a survey on requirements engineering using a real-life case study. J Braz Comput Soc 6(1)
Brown G, Cheng BHC, Goldsby HJ, Zhang J (2006) Goal-oriented specification of adaptation requirements engineering in adaptive systems. In: Proceedings of the 2006 international workshop on self-adaptation and self-managing systems. ACM, New York, pp 23–29
Brun Y et al. (2009) Engineering self-adaptive systems through feedback loops. In: Cheng BHC, de Lemos R, Giese H, Inverardi P, Magee J (eds) Software engineering for self-adaptive systems. Lecture notes in computer science, vol 5525. Springer, Berlin, pp 48–70
Cheng BHC et al. (2009) Software engineering for self-adaptive systems: a research roadmap. In: Cheng BHC, de Lemos R, Giese H, Inverardi P, Magee J (eds) Software engineering for self-adaptive systems. Lecture notes in computer science, vol 5525. Springer, Berlin, pp 1–26
Cheng SW, Garlan D, Schmerl B (2009) Evaluating the effectiveness of the rainbow self-adaptive system. In: Proceedings of the ICSE 2009 workshop on software engineering for adaptive and self-managing systems. IEEE, New York, pp 132–141
Dalpiaz F, Chopra AK, Giorgini P, Mylopoulos J (2010) Adaptation in open systems: giving interaction its rightful place. In: Parsons J, Saeki M, Shoval P, Woo C, Wand Y (eds) Conceptual modeling, ER 2010. Lecture notes in computer science, vol 6412. Springer, Berlin, pp 31–45
Dalpiaz F, Giorgini P, Mylopoulos J (2012) Adaptive socio-technical systems: a requirements-based approach. In: Requirements engineering, pp 1–24
Dardenne A, van Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20(1–2):3–50
Dinkelaker T, Mitschke R, Fetzer K, Mezini M (2010) A dynamic software product line approach using aspect models at runtime. In: Proceedings of the 1st international workshop on composition: objects, aspects, components, services and product lines, CEUR, pp 11–18
Ernst NA, Borgida A, Jureta I (2011) Finding incremental solutions for evolving requirements. In: Proceedings of the 19th international requirements engineering conference. IEEE, New York, pp 15–24
Ernst NA, Borgida A, Mylopoulos J (2011) Requirements evolution drives software evolution. In: Proceedings of the 12th international workshop on principles of software evolution and the 7th annual ERCIM workshop on software evolution. ACM, New York, pp 16–20
Ernst NA, Borgida A, Mylopoulos J, Jureta I (2012) Agile requirements evolution via paraconsistent reasoning. In: Proceedings of the 24th international conference on advanced information systems engineering (to appear)
Finkelstein A (1993) Report of the inquiry into the London ambulance service (electronic version). Technical report, South West Thames Regional Health Authority
Finkelstein A, Dowell J (1996) A comedy of errors: the London ambulance service case study. In: Proceedings of the 8th international workshop on software specification and design. IEEE, New York, pp 2–4
Fu L, Peng X, Yu Y, Zhao W (2010) Stateful requirements monitoring for self-repairing of software systems. Technical report, FDSE-TR201101, Fudan University, China. Available online: http://www.se.fudan.sh.cn/paper/techreport/1.pdf
Garcia-Molina H, Salem K (1987) Sagas. SIGMOD Rec 16(3):249–259
Garlan D, Cheng SW, Huang AC, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10):46–54
Griss ML, Favaro J, D’Alessandro M (1998) Integrating feature modeling with the RSEB. In: Proceedings of the 5th international conference on software reuse. IEEE, New York, pp 76–85
Hallsteinsen S, Hinchey M, Park S, Schmid K (2008) Dynamic software product lines. Computer 41(4):93–95
Harker SD, Eason KD, Dobson JE (1993) The change and evolution of requirements as a challenge to the practice of software engineering. In: Proceedings of the 1993 IEEE international symposium on requirements engineering. IEEE, New York, pp 266–272
Hellerstein JL, Diao Y, Parekh S, Tilbury DM (2004) Feedback control of computing systems, 1st edn. Wiley, New York
Hevner AR, March ST, Park J, Ram S (2004) Design science in information systems research. Manag Inf Syst Q 28(1):75–105
Jureta I, Mylopoulos J, Faulkner S (2008) Revisiting the core ontology and problem in requirements engineering. In: Proceedings of the 16th IEEE international requirements engineering conference. IEEE, New York, pp 71–80
Kephart JO, Chess DM (2003) The vision of autonomic computing. Computer 36(1):41–50
Khan MJ, Awais MM, Shamail S (2008) Enabling self-configuration in autonomic systems using case-based reasoning with improved efficiency. In: Proceedings of the 4th international conference on autonomic and autonomous systems. IEEE, New York, pp 112–117
Kramer J, Magee J (2009) A rigorous architectural approach to adaptive software engineering. J Comput Sci Technol 24(2):183–188
Kramer J, Wolf AL (1996) Succeedings of the 8th international workshop on software specification and design. SIGSOFT Softw Eng Notes 21(5):21–35
Lam W, Loomes M (1998) Requirements evolution in the midst of environmental change: a managed approach. In: Proceedings of the 2nd Euromicro conference on software maintenance and reengineering. IEEE, New York, pp 121–127
van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications, 1st edn. Wiley, New York
Lapouchnian A, Mylopoulos J (2009) Modeling domain variability in requirements engineering with contexts. In: Laender A, Castano S, Dayal U, Casati F, de Oliveira J (eds) Conceptual modeling, ER 2009. Lecture notes in computer science, vol 5829. Springer, Berlin, pp 115–130
Lehman MM (1979) On understanding laws, evolution, and conservation in the large-program life cycle. J Syst Softw 1:213–221
Menasce DA, Gomaa H, Malek S, Sousa JaP (2011) SASSY: a framework for self-architecting service-oriented systems. IEEE Softw 28(6):78–85
Nakagawa H, Ohsuga A, Honiden S (2011) gocc: a configuration compiler for self-adaptive systems using goal-oriented requirements description. In: Proceedings of the 6th international symposium on software engineering for adaptive and self-managing systems. ACM, New York, pp 40–49
Peng X, Chen B, Yu Y, Zhao W (2010) Self-tuning of software systems through goal-based feedback loop control. In: Proceedings of the 18th IEEE international requirements engineering conference. IEEE, New York, pp 104–107
Qureshi NA, Perini A (2010) Requirements engineering for adaptive service based applications. In: Proceedings of the 18th IEEE international requirements engineering conference. IEEE, New York, pp 108–111
Ramirez AJ, Cheng BHC (2010) Design patterns for developing dynamically adaptive systems. In: Proceedings of the 2010 ICSE workshop on software engineering for adaptive and self-managing systems. ACM, New York, pp 49–58
Rosenmüller M, Siegmund N, Pukall M, Apel S (2011) Tailoring dynamic software product lines. In: Proceedings of the 10th ACM international conference on generative programming and component engineering. ACM, New York, pp 3–12
Semmak F, Gnaho C, Laleau R (2008) Extended KAOS to support variability for goal oriented requirements reuse. In: Ebersold S, Front A, Lopistéguy P, Nurcan S (eds) Proceedings of the international workshop on model driven information systems engineering: enterprise, user and system models, CEUR, pp 22–33
Shen L, Peng X, Liu J, Zhao W (2011) Towards feature-oriented variability reconfiguration in dynamic software product lines. In: Schmid K (ed) Top productivity through software reuse. Lecture notes in computer science, vol 6727. Springer, Berlin, pp 52–68
Sousa JP, Balan RK, Poladian V, Garlan D, Satyanarayanan M (2009) A software infrastructure for user-guided quality-of-service tradeoffs. In: Cordeiro J, Shishkov B, Ranchordas A, Helfert M (eds) Software and data technologies, communications in computer and information science, vol 47. Springer, Berlin, pp 48–61
Souza VES (2012) An experiment on the development of an adaptive system based on the LAS-CAD. Technical report, University of Trento. Available at http://disi.unitn.it/~vitorsouza/a-cad/
Souza VES, Lapouchnian A, Mylopoulos J (2011) System identification for adaptive software systems: a requirements engineering perspective. In: Jeusfeld M, Delcambre L, Ling TW (eds) Conceptual modeling, ER 2011. Lecture notes in computer science, vol 6998. Springer, Berlin, pp 346–361
Souza VES, Lapouchnian A, Robinson WN, Mylopoulos J (2011) Awareness requirements for adaptive systems. In: Proceedings of the 6th international symposium on software engineering for adaptive and self-managing systems. ACM, New York, pp 60–69
Souza VES, Lapouchnian A, Mylopoulos J (2012) (Requirement) evolution requirements for adaptive systems. In: Proceedings of the 7th international symposium on software engineering for adaptive and self-managing systems. IEEE, New York, pp 155–164
Souza VES, Lapouchnian A, Mylopoulos J (2012) Requirements-driven qualitative adaptation. In: Meersman R, et al. (eds) On the move to meaningful internet systems: OTM 2012 confederated international conferences: CoopIS, DOA-SVI, and ODBASE, proceedings, part I. Lecture notes in computer science, vol 7565. Springer, Berlin, pp 342–361
Wang Y, Mylopoulos J (2009) Self-repair through reconfiguration: a requirements engineering approach. In: Proceedings of the 2009 IEEE/ACM international conference on automated software engineering. IEEE, New York, pp 257–268
Whittle J, Sawyer P, Bencomo N, Cheng BHC, Bruel JM (2009) RELAX: incorporating uncertainty into the specification of self-adaptive systems. In: Proceedings of the 17th IEEE international requirements engineering conference. IEEE, New York, pp 79–88
Yu ESK, Giorgini P, Maiden N, Mylopoulos J (2011) Social modeling for requirements engineering, 1st edn. MIT Press, Cambridge
Zowghi D, Offen R (1997) A logical framework for modeling and reasoning about the evolution of requirements. In: Proceedings of the 3rd IEEE international symposium on requirements engineering IEEE, New York, pp 247–257
Acknowledgements
This work has been supported by the ERC advanced grant 267856 “Lucretius: Foundations for Software Evolution” (unfolding during the period of April 2011–March 2016)—http://www.lucretius.eu.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Souza, V.E.S., Lapouchnian, A., Angelopoulos, K. et al. Requirements-driven software evolution. Comput Sci Res Dev 28, 311–329 (2013). https://doi.org/10.1007/s00450-012-0232-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-012-0232-2