Skip to main content
Top

2005 | Book

Engineering and Managing Software Requirements

Editors: Aybüke Aurum, Claes Wohlin

Publisher: Springer Berlin Heidelberg

insite
SEARCH

About this book

Requirements engineering is the process by which the requirements for software systems are gathered, analyzed, documented, and managed throughout their complete lifecycle. Traditionally it has been concerned with technical goals for, functions of, and constraints on software systems. Aurum and Wohlin, however, argue that it is no longer appropriate for software systems professionals to focus only on functional and non-functional aspects of the intended system and to somehow assume that organizational context and needs are outside their remit. Instead, they call for a broader perspective in order to gain a better understanding of the interdependencies between enterprise stakeholders, processes, and software systems, which would in turn give rise to more appropriate techniques and higher-quality systems.

Following an introductory chapter that provides an exploration of key issues in requirements engineering, the book is organized in three parts. Part 1 presents surveys of state-of-the art requirements engineering process research along with critical assessments of existing models, frameworks and techniques. Part 2 addresses key areas in requirements engineering, such as market-driven requirements engineering, goal modeling, requirements ambiguity, and others. Part 3 concludes the book with articles that present empirical evidence and experiences from practices in industrial projects.

Its broader perspective gives this book its distinct appeal and makes it of interest to both researchers and practitioners, not only in software engineering but also in other disciplines such as business process engineering and management science.

Table of Contents

Frontmatter
1. Requirements Engineering: Setting the Context
Abstract
This chapter presents a brief overview of requirements engineering and provides an introduction to some of the critical aspects of this field. This includes offering and understanding of the different levels of requirements involved in requirements engineering, namely organizational, product and project level requirements, and illustrating the role of different stakeholders in requirements engineering. The chapter also aims to demonstrate how the three parts of this book are interrelated.
Aybüke Aurum, Claes Wohlin

State-of-the-Art Surveys of Requirements Engineering Process Research

2. Requirements Elicitation: A Survey of Techniques, Approaches, and Tools
Abstract
Requirements elicitation is the process of seeking, uncovering, acquiring, and elaborating requirements for computer based systems. It is generally understood that requirements are elicited rather than just captured or collected. This implies there are discovery, emergence, and development elements in the elicitation process. Requirements elicitation is a complex process involving many activities with a variety of available techniques, approaches, and tools for performing them. The relative strengths and weaknesses of these determine when each is appropriate depending on the context and situation. The objectives of this chapter are to present a comprehensive survey of important aspects of the techniques, approaches, and tools for requirements elicitation, and examine the current issues, trends, and challenges faced by researchers and practitioners in this field.
Didar Zowghi, Chad Coulin
3. Specification of Requirements Models
Abstract
The main aim of this chapter is to present and discuss a set of modeling and specification techniques, in what concerns their ontology and support in the requirements representation of computer-based systems. A systematic classification of meta-models, also called models of computation, is presented. This topic is highly relevant since it supports the definition of sound specification methodologies in relation to the semantic definition of the modeling views to adopt for a given system. The usage and applicability of Unified Modeling Language (UML) diagrams is also related to their corresponding meta-models. A set of desirable characteristics for the specification methodologies is presented and justified to allow system designers and requirements engineers to more consciously define or choose a particular specification methodology. A heuristic-based approach to support the transformation of user into system requirements is suggested, with some graphical examples in UML notation.
Ricardo J. Machado, Isabel Ramos, João M. Fernandes
4. Requirements Prioritization
Abstract
This chapter provides an overview of techniques for prioritization of requirements for software products. Prioritization is a crucial step towards making good decisions regarding product planning for single and multiple releases. Various aspects of functionality are considered, such as importance, risk, cost, etc. Prioritization decisions are made by stakeholders, including users, managers, developers, or their representatives. Methods are for combining individual prioritizations based on overall objectives and constraints. A range of different techniques and aspects are applied to an example to illustrate their use. Finally, limitations and shortcomings of current methods are pointed out, and open research questions in the area of requirements prioritization are discussed.
Patrik Berander, Anneliese Andrews
5. Requirements Interdependencies: State of the Art and Future Challenges
Abstract
It is well acknowledged in practice as well as in research that requirements are related to each other and that these relationships affect software development work in various ways. This chapter addresses requirements interdependencies, starting from a traceability perspective. The focus of the chapter is on giving an overview of requirements interdependency research and on synthesizing this into a model of fundamental interdependency types and a research agenda for the area. Furthermore, a description of how knowledge about requirements interdependencies can facilitate various activities within software engineering is provided. The main challenges for the future are to understand the nature of requirements interdependencies and to develop approaches that enable to identify, describe and effectively deal with them in the software development process.
Åsa G. Dahlstedt, Anne Persson
6. Impact Analysis
Abstract
Software changes are necessary and inevitable in software development, but may lead to software deterioration if not properly controlled. Impact analysis is the activity of identifying what needs to be modified in order to make a change, or to determine the consequences on the system if the change is implemented. Most research on impact analysis is presented and discussed in literature related to software maintenance. In this chapter, we take a different approach and discuss impact analysis from a requirements engineering perspective. We relate software change to impact analysis, outline the history of impact analysis and present common strategies for performing impact analysis. We also mention the application of impact analysis to non-functional requirements and discuss tool support for impact analysis. Finally, we outline what we see as the future of this essential change management tool.
Per Jönsson, Mikael Lindvall
7. Requirements Negotiation
Abstract
Negotiation is regarded as crucial in many disciplines, and negotiation methods and tools are increasingly studied by requirements engineering researchers and practitioners. The objectives of this chapter are to motivate the need for negotiation in requirements engineering, to introduce fundamental concepts and terminology, and to provide an overview about negotiation research. We structure the existing research (a) by presenting a general negotiation process highlighting typical negotiation stages; (b) by introducing a framework covering important dimensions of requirements negotiation comprising the conflict resolution strategy, the collaboration situation of the stakeholders, and the degree of negotiation tool support; and (c) by discussing and classifying existing negotiation tools using the general process and framework.
Paul Grünbacher, Norbert Seyff
8. Quality Assurance in Requirements Engineering
Abstract
This chapter presents a survey of the state of the art for quality assurance for requirements. The meaning of quality in the requirements context is discussed, as is the influence of the quality assurance during requirements on other parts of the development. Different quality assurance approaches are categorized as either constructive (e.g., standards, guidelines, elicitation techniques) or analytical (e.g., inspections) and discussed with respect to their impact on the requirements quality. Based on the approaches, future challenges are discussed. The main future challenges lie in investigating the return on investment of quality assurance in the requirements context and to provide more empirical results which approach that effectively prevent or detect which problems.
Christian Denger, Thomas Olsson

The Next Practice in Requirements Engineering

9. Modeling Goals and Reasoning with Them
Abstract
The concept of goal has been used in many domains such as management sciences and strategic planning, artificial intelligence and human computer interaction. Recently, goal-driven approaches have been developed and tried out to support requirements engineering activities such as requirements elicitation, specification, validation, modification, structuring and negotiation. This chapter first review various research efforts undertaken in this line of research and presents the state-of-the-art in using goals to engineer requirements. It then presents a particular goal model, the goal/strategy map, and shows that maps can help with facing the challenge of new emerging multi-purposes systems, i.e. systems imposing variability in requirements elaboration and customization in the requirements engineering process.
Colette Rolland, Camille Salinesi
10. Managing Large Repositories of Natural Language Requirements
Abstract
An increasing number of market and technology driven software development companies face the challenge of managing an enormous amount of requirements written in natural language. As requirements arrive at high pace, the requirements repository easily deteriorates, impeding customer feedback and well-founded decisions for future product releases. In this chapter we introduce a linguistic engineering approach in support of large-scale requirements management. We present three case studies, encompassing different requirements management processes, where our approach has been evaluated. We also discuss the role of natural language requirements and present a survey of research aimed at giving support in the engineering and management of natural language requirements.
Johan Natt och Dag, Vincenzo Gervasi
11. Understanding Ambiguity in Requirements Engineering
Abstract
This chapter illustrates that ambiguity is a serious problem of natural language requirements documents, which is not limited to simple language problems such as multiple referents of an “it”. The results of two empirical studies are presented, which indicate that on one hand ambiguity problems are not solved by formalization during further software development activities, and, on the other hand, it is difficult to detect all ambiguities, even if the reader is aware of all the facets of ambiguity. A combination of the results of both studies indicated that most ambiguities that slip through formalization can be detected by a previous inspection using a tailored reading technique. Based on these results, recommendations are made on how to live with the inevitable ambiguity in the RE process.
Erik Kamsties
12. Decision Support in Requirements Engineering
Abstract
Decisions are increasingly understood as the crystallization points of the software development process. Despite the abundance of the requirements engineering (RE) processes, little attention has been given to providing appropriate support for making RE decisions. In this chapter we analyze current research related to RE decision making. We study how and when decisions are made in RE and the underlying methodology. Our focus is not to provide solution approaches for particular decision problems in RE, but to discuss strategies for improving research and practice in the RE decision making process. We have performed an extensive analysis of related research. Our findings show the difficulties in RE decision making and the deficits of current research. We position decision support at the appropriate approach to handle incompleteness and uncertainty of information as is mostly the case in RE. Based on this, we propose an agenda for future research.
An Ngo-The, Günther Ruhe
13. Market-Driven Requirements Engineering for Software Products
Abstract
An increasing part of software development is devoted to products that are offered to an open market with many customers. Market-driven development imposes special challenges for the requirements engineering process. This chapter provides an overview of the special characteristics of market-driven requirements engineering and describes the most important challenges of the area. Key elements of market-driven requirements engineering processes are presented together with a definition of process quality. Requirements state models and requirements repositories are also described and examples of typical solutions to progress tracking and data management are provided. The difficult problem of release planning is also discussed and an industrial example of a release planning process is given.
Björn Regnell, Sjaak Brinkkemper
14. Requirements Engineering for Agile Methods
Abstract
Collecting, understanding, and managing requirements is a critical aspect in all development methods. This is true for Agile Methods as well. In particular, several agile practices deal with requirements in order to implement them correctly and satisfy the needs of the customer. These practices focus on a continuous interaction with the customer to address the requirements evolution over time, prioritize them, and deliver the most valuable functionalities first. This chapter introduces Agile Methods as the implementation of the principles of the lean production in software development. Therefore, Agile Methods focus on continuous process improvement through the identification and the removal of waste, whatever does not add value for the customer.
Alberto Sillitti, Giancarlo Succi
15. Requirements Engineering for Web-Based Information Systems
Abstract
This chapter overviews the existing methods of requirements analysis as prescribed by some of the best-known web-development methods. It also discusses the pre-eminent importance of stakeholder analysis, identification of stakeholder views and concerns, and the processes governing elicitation of web systems requirements. The chapter finally derives a model of concern-driven requirements evolution from several case studies undertaken in the area of web-enabled employee service systems.
Jacob L. Cybulski, Pradip K. Sarkar

Studies and Industrial Experience

16. Requirements Engineering: A Case of Developing and Managing Quality Software Systems in the Public Sector
Abstract
This chapter describes the managerial processes and governance frameworks that are used to develop software applications and software-intensive systems at the Australian Bureau of Statistics (ABS). The chapter focuses on the software requirements development activities against the backdrop of a dynamic operating environment and technically challenging Information and Communication Technology (ICT) infrastructure. Recognition of the importance of software requirements engineering at a strategic level is evident, supported by senior management and with ongoing user involvement and consultation An enterprise architecture provides a framework for the integration of requirements engineering with business drivers and subsequent development practices. The software and ICT outcomes are benchmarked at or near best practice and are accompanied by above average ABS corporate performance. The ABS practices show congruence with theoretical frameworks and international standards.
Nigel Martin, Shirley Gregor
17. “Good Quality” Requirements in Unified Process
Abstract
As supported by many empirical evidences since early 1970s, “good quality” requirements are the leading factor for a successful software development project that delivers a “good quality” product with originally specified features and functionalities, on time, and within the originally estimated budget. The challenge gets tougher and more critical when the competition in the market is severe, the number of customers on the world is rather limited and static, and the customer demands are high. As functioning in such a market, with the main goal to maintain the leading position of the previous versions of its Stressometer®, ABB has adopted a RUP®-based software development process in the new generation Stressometer systems development projects. Stressometer Unified Process (SUP) integrates the RUP essentials with some features of agile processes such as heavy involvement of various stakeholders, preparation of test cases before coding, and continuous testing during development. This chapter describes the essential quality characteristics of requirements —both individual and aggregates such as embodied in a use-case model or in a specification, analyses the relations among them, evaluates RUP regarding the means it provides or lacks for developing “good quality” requirements, and discusses how ABB Stressometer projects have tackled these shortcomings via SUP.
Nur Yilmaztürk
18. Requirements Experience in Practice: Studies of Six Companies
Abstract
To understand how to apply different requirements engineering practices and where difficulties may arise when implementing a set of requirements engineering practices, it is often useful to consider how others have done and the troubles they have encountered. This chapter describes six industry cases of applied requirements engineering, with a focus on areas where further improvements are desired by or recommended to the companies. Many of these improvement areas are also identified by other, independent, requirements engineering state of practice surveys, and thus indicate areas that warrant special attention when constructing a requirements engineering process for an organization.
Tony Gorschek, Mikael Svahnberg
19. An Analysis of Empirical Requirements Engineering Survey Data
Abstract
The gap between research and practice in requirements engineering is immense. To understand practice and the reasons for this gap, empirical evidence about requirements engineering practice is needed. In the last ten years a number of empirical studies have been conducted to gather such data. This chapter gives an overview focusing on broad surveys. The aim of this overview is to understand the following three issues: (1) what kind of questions can and should we ask to understand practice, (2) what evidence do we have about practice, (3) what further evidence do we need about practice. To further illustrate the issues, we provide findings of new studies conducted by the authors in Germany and Australia. Altogether this chapter aims at establishing a basis for further empirical research on requirements engineering.
Barbara Paech, Tom Koenig, Lars Borner, Aybüke Aurum
20. Requirements Engineering: Solutions and Trends
Abstract
This last chapter of the book describes solutions and trends in the discipline of RE. Starting from a wrap-up of what was presented throughout this book, it suggests a framework of requirements engineering and indicates what current solutions are available in this framework. Beyond providing a short overview of the state of the practice, this chapter also summarizes current trends in RE. Four trends are evaluated, namely the growing usage of commercial off-the-shelf components and systems and how RE activities need to be adjusted; the evolving focus on product lifecycle management and the need to collaborate amongst very heterogeneous communities; the wish to learn and to share experiences on effective ways to implement RE in an organization and the growing interest in requirements engineers’ skill sets. We finally provide an outlook into where requirements engineering is heading for.
Christof Ebert, Roel J. Wieringa
Backmatter
Metadata
Title
Engineering and Managing Software Requirements
Editors
Aybüke Aurum
Claes Wohlin
Copyright Year
2005
Publisher
Springer Berlin Heidelberg
Electronic ISBN
978-3-540-28244-0
Print ISBN
978-3-540-25043-2
DOI
https://doi.org/10.1007/3-540-28244-0

Premium Partner