Requirements Engineering & Management
Requirements engineering & management (RE&M) is where user wishes are transformed into concepts of operational systems. This is challenging, and it is one of the most creative and most interdisciplinary tasks of software engineering.
The field has made much progress in the past years. Interesting new techniques have arisen, new tool generations are entering the scene, and the many relations to other domains are being explored deeper and deeper.
The following information and links introduce aspects of requirements engineering & management that can be useful for practicioners, and that might inspire new thinking and solutions for present issues in the field.
RE&M Challenges | Specification Modules | RE Maturity | Consistency Management of RE Specifications | RE&M for SW Product Lines | RM Tools | Resources | Literature
The Challenges of Requirements Engineering & Management
Requirements engineering & management is challenging for a number of reasons. Having understood these challenges is an important prerequisite for designing effective RE&M solutions:
- The system must be designed without doing the actual design, yet.
- Unexplored fields must be mastered rapidly.
- A multitude of participants with very different backgrounds and languages must work together.
- Enormous amounts of information must be surveyed and managed.
- Hidden complexities must be detected.
- And frequent changes must be managed without slowing down overall progress.
Specification Modules for Information Systems
Software specifications of business information systems usually consist of a collection of documents that contains several hundreds of pages total volume. They may include business process definitions, use cases, data models, dialog design, and various other parts. In order to structure this documentation, sd&m has established so-called "Specification Modules". Specification modules are a collection of tailorable document templates with associated recommended good practice. They have grown out of past project experience and facilitate efficient requirements analysis and specification. They also help ensuring high quality of work products.
A publication by Johannes Siedersleben and others provides an overview of the specification modules. Further uses of the specification modules to define patterns of specifications for different kinds of software systems have been suggested by Andreas Birk.
Christiane Stutz, Johannes Siedersleben, Doerthe Kretschmer, and Wolfgang Krug. Analysis beyond UML. In Proceedings of the 10th IEEE Joint Int. Conf. on Requirements Engineering, Essen, Germany, pages 215–218, IEEE CS Press, Los Alamitos, CA, 2002.
Andreas Birk. Patterns für effektive Anforderungsstrukturierung in IT-Projekten. In Proceedings of the 3rd Requirements Engineering Conference (REConf2004), Munich, 2004.
Requirements Engineering Maturity
ISO/IEC 15504, an international standard on software process assessment, defines a number of software engineering processes and a scale for measuring their capability. One of the defined processes is software requirements analysis (SRA). A basic premise of the measurement scale is that higher process capability is associated with better project performance (i.e., predictive validity).
An empirical study by Khaled El Emam and Andreas Birk has evaluated the predictive validity of SRA process capability. Assessments using ISO/IEC 15504 were conducted on 56 projects world-wide over a period of two years. Performance measures on each project were also collected using questionnaires, such as the ability to meet budget commitments and staff productivity.
The results provide strong evidence of predictive validity for the SRA process capability measure used in ISO/IEC 15504, but only for organizations with more than 50 IT Staff. Specifically, a strong relationship was found between the implementation of requirements analysis practices as defined in ISO/IEC 15504 and the productivity of software projects.
For smaller organizations, evidence of predictive validity was rather weak. This can be interpreted in a number of different ways: that the measure of capability is not suitable for small organizations or that the SRA process capability has less effect on project performance for small organizations.
Khaled El Emam and Andreas Birk. Validating the ISO/IEC 15504 measure of software requirements analysis process capability. IEEE Transactions on Software Engineering, 26(6):541–566, June 2000.
Consistency Management of Requirements Specifications
Industrial requirements specifications suffer from consistency problems, particularly in multi-angular or temporal relationships between different specification results. Current consistency management tools generate too many repairs, lack support for temporal relationships, and are poorly integrated into the development process.
A project by Jan Scheffczyk and others, in cooperation with sd&m, has proposed a consistency management approach for improving quality of industrial specifications: The approach formalizes (temporal) consistency rules and generates a few useful repairs for inconsistencies.
The project homepage presents a comprehensive documentation of this consistency management approach and ongoing project activities.
Requirements Engineering for Software Product Lines
Software product lines (SPL) are a powerful concept for ensuring quality, economic efficiency, and manageability of families of software systems. SPL are relevant to large industrial enterprises that want to manage the development of their software-intensive systems well. SPL is a challenging technology, which is not always easy to implement and maintain. It imposes special challenges on requirements engineering and management.
Over a period of two years and a half, a workgroup of the German Computer Society (Gesellschaft für Informatik, GI) has investigated and compared the SPL practices of five participating organizations. Special focus has been placed on requirements engineering and management for SPL. This website contains a special section on software product lines.
Requirements Management Tools
Tools alone can never solve a problem. You always need people, method, and organization in the first place. If everything else is all right, then the right tool can make life much easier for your.
Tools for requirements engineering & management have matured much during the past years. They also become more and more integrated with other tools in the software engineering environments. The following links provide excellent support in finding out about which tools can do a good job for you.
The Requirements Tools Survey of the Atlantic Systems Guild is a very comprehensive list of brief tool descriptions and links for further information.
The INCOSE Requirements Management Tools Survey (best viewed with MS Internet Explorer) compares very many RM tools using a large set of relevant criteria. Note that tool evaluations are provided by the vendors.
RE&M Resources
Volere is a comprehensive method and framework for requirements engineering & management. It is the sister site of the Atlantic Systems Guild's requirements resources.
Alistair Cockburn presents much valuable information on use cases, one of the fundamental requirements engineering techniques.
Construx offers a collection of hands-on requirements engineering and management resources.
Process Impact's web pages by Karl E. Wiegers present various requirements management resources.
Ian Alexander's homepage contains a collection of papers, links, and templates on requirements and scenarios.
The HOOD Group and the SOPHIST GROUP are two consulting companies that specialize on requirements management. Both offer useful information in the web.
RE&M Literature
Karl Wiegers, Robertson and Robertson, Al Davis, Sommerville and Sawyer, Leffingwell and Widrig, Gause and Weinberg, Rupp et al., Schienmann, Thayer and Dorfman
Alan M. Davis. Software Requirements: Objects, Functions, and States. Prentice Hall, Englewood Cliffs, NJ, 1993.
Donald C. Gause and Gerald M. Weinberg. Exploring Requirements: Quality before Design. Dorset House, New York, NY, 1989.
Suzanne Robertson and James Robertson. Mastering the Requirements Process. Addison-Wesley, Harlow, United Kingdom, 1999.
Karl E. Wiegers. Software Requirements (2nd Ed.). Microsoft Press, Redmont, WA, 2005.
Ian Sommerville and Pete Sawyer. Requirements Engineering: A Good Practice Guide. Wiley, Chichester, United Kingdom, 1997.
Richard H. Thayer and Merlin Dorfman (Eds.). Software Requiremenets Engineering. IEEE CS Press, Los Alamitos, CA, 2000.
Alistair Cockburn. Writing Effective Use Cases. Addison-Wesley, Boston, MA, 2001.
Steve Adolph, Paul Bramble, Alistair Cockburn, and Andy Pols. Patterns for Effective Use Cases. Addison-Wesley, Boston, MA, 2003.
Dean Leffingwell and Don Widrig. Managing Software Requirements: A Use Case Approach (2nd Ed.). Addison-Wesley, Boston, MA, 2003.
Kurt Bittner and Ian Spence. Use Case Modeling. Addison-Wesley, Boston, MA, 2003.
Chris Rupp and SOPHIST GROUP. Requirements-Engineering und -Management (2nd Ed.). Hanser, Munich, 2002.
Bruno Schienmann. Kontinuierliches Anforderungsmanagement: Prozesse, Techniken, Werkzeuge. Addison-Wesley, Munich, 2002.