Economics-Driven Architecting for Non Functional Requirements in the Presence of Middleware



The current trend is to build distributed software architectures with middleware, which provides the application developer with primitives for managing the complexity of distribution and for realizing many of the non-functional requirements like scalability, openness, heterogeneity, availability, reliability and fault-tolerance. In this chapter, we discuss the problem of evolving non-functional requirements, their stability implications and economics ramifications on the software architectures induced by middleware. We look at the role of middleware in architecting for non-functional requirements and their evolution trends. We advocate adjusting requirements elicitation and management techniques to elicit not just the current non-functional requirements, but also to assess the way in which they will develop over the lifetime of the architecture and their economics ramifications. These ranges of requirements may then inform the selection of distributed components technologies, and subsequently the selection of application server products. We describe an economics-driven approach, based on real options theory, which can assist in informing the selection on middleware to induce software architectures in relation to the evolving non-functional requirements. We review its application through a case study.


  1. 1.
    Sun MicroSystems Inc (2002) Enterprise javaBeans specification v2.1, Copyright© 2002 Sun Microsystems, Inc.Google Scholar
  2. 2.
    Object Management Group (2000) The common object request broker: architecture and specification, 24th edn. OMG, Framingham, MA, USAGoogle Scholar
  3. 3.
    Di Nitto E, Rosenblum D (1999) Exploiting ADLs to specify architectural styles induced by middleware infrastructures. In: Proceedings of the 21st International conference on software engineering. IEEE Computer Society Press, Los Angeles, pp 13–22CrossRefGoogle Scholar
  4. 4.
    Dawson R, Bones P, Oates B, Brereton P, Azuma M, Jackson M (2003) Empirical methodologies in software engineering In: Eleventh annual International workshop on software technology and engineering practice, IEEE CS Press, pp 52–58Google Scholar
  5. 5.
    Emmerich W (2000) Software engineering and middleware: a road map. In: Finkelstein A (ed) Future of software engineering. Limerick, IrelandGoogle Scholar
  6. 6.
    Dardenne A, van Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20:3–50MATHCrossRefGoogle Scholar
  7. 7.
    Anton A (1996) Goal-based Requirements Analysis. In: Proc. 2nd IEEE Int. Conf. Requirements Engineering. Orlando, USAGoogle Scholar
  8. 8.
    Othman O, O’Ryan C, Schmidt DC (2001) Designing an Adaptive CORBA Load Balancing Service Using TAO. IEEE Distributed Systems Online 2(4)Google Scholar
  9. 9.
    Othman O, O’Ryan C, Schmidt DC (2001) Strategies for CORBA Middleware-Based Load Balancing. IEEE Distributed Systems Online 2(3)Google Scholar
  10. 10.
    Bahsoon R, Emmerich W, Macke J (2005) Using real options to select stable middleware-induced software architectures. IEE Proc Softw Spec issue relating software requirements architectures 152(4):153–167, IEE press, ISSN 1462–5970Google Scholar
  11. 11.
    Erdogmus H, Boehm B, Harriosn W, Reifer DJ, Sullivan KJ (2002) Software engineering economics: background, current practices, and future directions. In: Proceeding of 24th International conference on software engineering. ACM Press, OrlandoGoogle Scholar
  12. 12.
    Erdogmus H (2000) Value of commercial software development under technology risk. Financier 7(1–4):101–114Google Scholar
  13. 13.
    Schwartz S, Trigeorgis L (2000) Real options and investment under uncertainty: classical readings and recent contributions. MIT Press, CambridgeGoogle Scholar
  14. 14.
    Bahsoon R, Emmerich W (2004) Evaluating architectural stability with real options theory. In: Proceedings of the 20th IEEE International conference on software maintenance. IEEE CS Press, ChicagoGoogle Scholar
  15. 15.
    Bahsoon R, Emmerich W (2003) ArchOptions: a real options-based model for predicting the stability of software architecture. In: Proceedings of the Fifth ICSE workshop on economics-driven software engineering research, PortlandGoogle Scholar
  16. 16.
    Boehm B, Clark B, Horowitz E, Madachy R, Shelby R, Westland C (1995) The COCOMO 2.0 software cost estimation model. In: International society of parametric analystsGoogle Scholar
  17. 17.
    Medvidovic N, Dashofy E, Taylor R (2003) On the role of middleware in architecture-based software development. Int J Software Engineer Knowledge Engineer 13(4):367–393CrossRefGoogle Scholar
  18. 18.
    Rapanotti L, Hall J, Jackson M, Nuseibeh B (2004) Architecture driven problem decomposition. In: Proceedings of 12th IEEE International requirements engineering conference (RE’04). IEEE Computer Society Press, KyotoGoogle Scholar
  19. 19.
    Sullivan KJ, Socha J, Marchukov M (1997) Using formal methods to reason about architectural standards. In: Proceedings of the 19th International conference on software engineering, BostonGoogle Scholar
  20. 20.
    Boehm B, Sullivan KJ (2000) Software economics: a roadmap. In: Finkelstein A (ed) The future of software engineering. ACM Press, Lemrick, IrelandGoogle Scholar
  21. 21.
    Baldwin CY, Clark KB (2001) Design rules – the power of modularity. MIT Press, CambridgeGoogle Scholar
  22. 22.
    Sullivan KJ, Chalasani P, Jha S, Sazawal V (1999) Software design as an investment activity: a real options perspective. In: Trigeorgis L (ed) Real options and business strategy: applications to decision-making. Risk Books, LondonGoogle Scholar
  23. 23.
    Sullivan KJ, Griswold W, Cai Y, Hallen B (2001) The structure and value of modularity in software design. In: The Proceedings of the ninth ESEC/FSE, Vienna, pp 99–108Google Scholar
  24. 24.
    Asundi J, Kazman R (2001) A Foundation for the Economic Analysis of Software Architectures. In: Proceedings of the Third Workshop on Economics-Driven Software Engineering ResearchGoogle Scholar
  25. 25.
    Kazman R, Klein M, Barbacci M, Lipson H, Longstaff T, Carrière SJ (1998) The architecture tradeoff analysis method. In: Proceedings of fourth International conference on engineering of complex computer systems (ICECCS ‘98). IEEE CS Press, Monterey, pp 68–78Google Scholar
  26. 26.
    Mylopoulos J, Chung L, Nixon B (1992) Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans Software Eng 18(6):483–497CrossRefGoogle Scholar
  27. 27.
    Black F, Scholes M (1973) The pricing of options and corporate liabilities. J Polit Econ 81(3):637–654CrossRefGoogle Scholar
  28. 28.
    Emmerich W (2002) Distributed component technologies and their software engineering implications. In: Proceedings of the 24th International conference on software engineering. ACM Press, Orlando, pp 537–546Google Scholar
  29. 29.
    Nuseibeh B (2001) Weaving the software development process between requirements and architectures. In: Proceedings of STRAW 01 the First International workshop from software requirements to architectures, TorontoGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  1. 1.School of Computer ScienceUniversity of BirminghamBirminghamUK
  2. 2.Department of Computer ScienceUniversity College LondonLondonUK

Personalised recommendations