Non-Functional Requirements in Software Engineering presents a systematic and pragmatic approach to `building quality into' software systems. Systems must exhibit software quality attributes, such as accuracy, performance, security and modifiability. However, such non-functional requirements (NFRs) are difficult to address in many projects, even though there are many techniques to meet functional requirements in order to provide desired functionality. This is particularly true since the NFRs for each system typically interact with each other, have a broad impact on the system and may be subjective. To enable developers to systematically deal with a system's diverse NFRs, this book presents the NFR Framework. Structured graphical facilities are offered for stating NFRs and managing them by refining and inter-relating NFRs, justifying decisions, and determining their impact. Since NFRs might not be absolutely achieved, they may simply be satisfied sufficiently (`satisficed'). To reflect this, NFRs are represented as `softgoals', whose interdependencies, such as tradeoffs and synergy, are captured in graphs. The impact of decisions is qualitatively propagated through the graph to determine how well a chosen target system satisfices its NFRs. Throughout development, developers direct the process, using their expertise while being aided by catalogues of knowledge about NFRs, development techniques and tradeoffs, which can all be explored, reused and customized. Non-Functional Requirements in Software Engineering demonstrates the applicability of the NFR Framework to a variety of NFRs, domains, system characteristics and application areas. This will help readers apply the Framework to NFRs and domains of particular interest to them. Detailed treatments of particular NFRs - accuracy, security and performance requirements - along with treatments of NFRs for information systems are presented as specializations of the NFRFramework. Case studies of NFRs for a variety of information systems include credit card and administrative systems. The use of the Framework for particular application areas is illustrated for software architecture as well as enterprise modelling. Feedback from domain experts in industry and government provides an initial evaluation of the Framework and some case studies. Drawing on research results from several theses and refereed papers, this book's presentation, terminology and graphical notation have been integrated and illustrated with many figures. Non-Functional Requirements in Software Engineering is an excellent resource for software engineering practitioners, researchers and students.
Running a dedicated instance of a software application can be burdensome to a customer if it involves a large amount of memory and processing overhead or a licensing fee or if the customer is a small company. Multitenancy (MT) architectures (MTAs) allow for multiple customers (i.e., tenants) to be consolidated into the same operational system, hence reducing the overhead via amortization over several customers. Lately, MTAs are drawing increasing attention because MT is regarded as an essential attribute of cloud computing and its new software delivery model, Software as a Service. In a moment of debate about the coexistence between architecture and agility, we introduce in this chapter a multitenancy, multitarget architecture (MT2A). MT2As are an evolution of traditional MTAs that reduce the various overhead by providing multiple services instead of a single service. In MT2As, there are new components added to the corresponding MTAs to manage the (now possibly) multiple services. MT2A is intended to support traditional agile development, as well as rapid deployment, by enabling the reuse of common components of the architecture. In this chapter, we also present an implementation of the architecture through an MT2 system called Globalgest.
No image available
No image available
No image available
No image available
No image available
No image available
No image available