Relating Software Requirements and Architectures

pp 353-371


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

  • Rami BahsoonAffiliated withSchool of Computer Science, University of Birmingham Email author 
  • , Wolfgang EmmerichAffiliated withDepartment of Computer Science, University College London

* Final gross prices may vary according to local VAT.

Get Access


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.