Skip to main content
Log in

Requirements-driven software evolution

  • Special Issue Paper
  • Published:
Computer Science - Research and Development

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Notes

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

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

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

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  12. Dalpiaz F, Giorgini P, Mylopoulos J (2012) Adaptive socio-technical systems: a requirements-based approach. In: Requirements engineering, pp 1–24

    Google Scholar 

  13. Dardenne A, van Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20(1–2):3–50

    Article  MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

  18. Finkelstein A (1993) Report of the inquiry into the London ambulance service (electronic version). Technical report, South West Thames Regional Health Authority

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

    Chapter  Google Scholar 

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

  21. Garcia-Molina H, Salem K (1987) Sagas. SIGMOD Rec 16(3):249–259

    Article  Google Scholar 

  22. Garlan D, Cheng SW, Huang AC, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10):46–54

    Article  Google Scholar 

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

    Google Scholar 

  24. Hallsteinsen S, Hinchey M, Park S, Schmid K (2008) Dynamic software product lines. Computer 41(4):93–95

    Article  Google Scholar 

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

    Google Scholar 

  26. Hellerstein JL, Diao Y, Parekh S, Tilbury DM (2004) Feedback control of computing systems, 1st edn. Wiley, New York

    Book  Google Scholar 

  27. Hevner AR, March ST, Park J, Ram S (2004) Design science in information systems research. Manag Inf Syst Q 28(1):75–105

    Google Scholar 

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

    Google Scholar 

  29. Kephart JO, Chess DM (2003) The vision of autonomic computing. Computer 36(1):41–50

    Article  MathSciNet  Google Scholar 

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

    Chapter  Google Scholar 

  31. Kramer J, Magee J (2009) A rigorous architectural approach to adaptive software engineering. J Comput Sci Technol 24(2):183–188

    Article  Google Scholar 

  32. Kramer J, Wolf AL (1996) Succeedings of the 8th international workshop on software specification and design. SIGSOFT Softw Eng Notes 21(5):21–35

    Article  Google Scholar 

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

    Chapter  Google Scholar 

  34. van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications, 1st edn. Wiley, New York

    Google Scholar 

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

    Chapter  Google Scholar 

  36. Lehman MM (1979) On understanding laws, evolution, and conservation in the large-program life cycle. J Syst Softw 1:213–221

    Article  Google Scholar 

  37. Menasce DA, Gomaa H, Malek S, Sousa JaP (2011) SASSY: a framework for self-architecting service-oriented systems. IEEE Softw 28(6):78–85

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

  46. 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/

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

  53. Yu ESK, Giorgini P, Maiden N, Mylopoulos J (2011) Social modeling for requirements engineering, 1st edn. MIT Press, Cambridge

    Google Scholar 

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

    Chapter  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Vítor E. Silva Souza.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00450-012-0232-2

Keywords

Navigation