Software Requirements Engineering |
|
|
|
|
| Richard H. Thayer (Editor), M. Dorfman (Editor), Sidney C. Bailin (Editor) |
| April 1997, IEEE Computer Society, Paperback, 500 pages, ISBN 0818677384
|
|
|
|
 |
|
This new edition describes current best practices in requirements engineering
with a focus primarily on software systems but also on systems that may contain
other elements such as hardware or people. The text consists of original
papers, written by experts in the field, plus revisions of papers from the
first edition. The book begins with an introduction to current issues and the basic
terminology of the software requirements engineering process. The text covers
the five phases of software requirements engineering that need to be performed
to reduce the chance of software failure: elicitation, analysis, specification,
verification, and management.
Software Requirements Engineering, Second Edition:
- Looks at the science and
discipline that concern establishing documenting software requirements
- Describes the process through
which developers' and users' discover, review, articulate, and understand the
users' needs and the constraints on software and development activity
- Shows how to analyze the users'
needs to arrive at a definition of their software requirements
- Examines software requirements
and the need to clearly document and precisely record each requirement
- Looks at verification to ensure
that the software requirements specifications are in compliance with the system
requirements and conforms to document standards
- Details software requirements
management including planning and controlling of all these activities
|
 |
|
Introduction to Tutorial: Software Requirements
Engineering
Chapter 1. Introductions, Issues, and Terminology
- Requirements Engineering
- Merlin Dorfman
- What is a Requirement?
- Richard Harwell, Erik Aslaksen, Ivy Hooks, Roy Mengot, and Ken Ptack
- Proceedings of the Third Annual International Symposium,
- National Council on Systems Engineering, 1993
- Pinpointing Requirements
- Laura Scharer
- Datamation, April 1981
- Requirements Engineering: The Emerging Wisdom
- Jawed Siddiqi and M. Chandra Shekaran
- IEEE Software, March 1996
Chapter 2. System and Software System Engineering
- System Engineering Overview
- Kevin Forsberg and Harold Mooz
- The Concept of Operations: The Bridge from Operational Requirements to
Technical Specifications
- Richard E. Fairley and Richard H. Thayer
- Software System Engineering: An Engineering Process
- Richard H. Thayer
- IEEE Guide for Information Technology Systems Definition Concept
of Operations (ConOps) Document
- IEEE Std 1362, 1998 IEEE, New York, 1998
Chapter 3. Software Requirements Analysis and
Specifications
- Techniques for Requirements Elicitation
- .Joseph A. Goguen and Charlotte Linde
- Proceedings of the International Symposium on Requirements Engineering, 1993
- Getting Started: Using Use Cases to Capture Requirements
- James Rumbaugh
- Journal of Object Oriented Programming, September 1994
- Software Requirements: A Tutorial
- Stuart R. Faulk
- Requirements Engineering with Viewpoints
- Gerald Kotonya and Ian Sommerville
- Software Engineering Journal, January 1996
- Identifying and Measuring Quality in a Software Requirements Specification
- Alan Davis, Scott Overmyer, Kathleen Jordan, Joseph Caruso, Fatma Dandashi,
Anhtuan Dinh,
- Gary Kincaid, Glen Ledeboer, Patricia Reynolds, Pradip Srimani, Anh Ta, and
Mary Theofanos
- First International Software Metrics Symposium, 1993
- IEEE Recommended Practice for Software Requirements Specifications
- IEEE Std 830-1998, IEEE, New York, 1998
- IEEE Guide for Developing System Requirements Specifications
- IEEE Std 1233, 1998 IEEE, New York, 1998
Chapter 4. Software Requirements Methodologies and
Tools
- A Comparison of Techniques for the Specification of External System
Behavior
- Alan M. Davis
- Communications of the ACM, September 1988
- Structured Analysis
- Cyril P. Svoboda
- System and Software Requirements Engineering, R.H. Thayer and M.
Dorfman, eds., 1990
- Entity-Relationship Approach to Data Modeling
- John P. Reilly
- Object-Oriented Requirements Analysis
- Sidney C. Bailin
- A Comparison of Object-Oriented and Structured Development Methods
- Patrick H. Loy
- Proceedings of the Pacific Northwest Software Quality Conference, 1989
- A Review of Formal Methods
- Robert Vienneau
- extracted from "A Review of Formal Methods," Kaman Sciences
Corporation, May 26, 1993
- Formal Methods in Information Systems Engineering
- Hossein Saiedian
- A Classification of CASE Technology
- Alfonso Fuggetta
- Computer, December 1993
- Traceability
- James D. Palmer
Chapter 5. Requirements and Quality Management
- Software RequirementsA Management Perspective
- Raymond T. Yeh and Peter A. Ng
- System and Software Requirements Engineering, R.H. Thayer and M.
Dorfman, eds., 1990
- Verifying and Validating Software Requirements Specifications
- Dolores R. Wallace and Laura M. Ippolito
- derived from D.R. Wallace, L.M. Ippolito, and B.B. Cuthill,
- Reference Information for the Software Verification and Validation Process,
- NIST Special Publication 500-234,
- National Institute of Standards and Technology, April 1996
Chapter 6. Software System Engineering Process Models
- A Strategy for Comparing Alternative Software Development Life Cycle Models
- Alan M. Davis, Edward H. Bersoff, and Edward R. Comer
- IEEE Transactions on Software Engineering, October 1988
- A Spiral Model of Software Development and Enhancement
- Barry W. Boehm
- Tutorial: Software Engineering Project Management, R.H. Thayer, ed.,
1988
- The Impact of Prototyping on Software System Engineering
- Hassan Gomaa
- System and Software Requirements Engineering, R.H. Thayer and M.
Dorfman, eds., 1990
Appendix
- Software Requirements Engineering Glossary
- Richard H. Thayer and Mildred C. Thayer
Authors' Biographies
|
|
 |
|
Much
has changed in the field of requirements engineering since the first
edition of this tutorial was published 6 years ago. Some of the more
important changes since 1990 are as follows:
- The increased recognition of the importance of requirements engineering and
the risks of doing it incorrectly or insufficiently (the inability to produce
complete, correct, and unambiguous software requirements) is still considered
the major cause of software failure today
- An increase in the number of conferences and workshops devoted exclusively
to requirements engineering, for example, the International Symposium on
Requirements Engineering, held in odd-numbered years, and the International
Conference on Requirements Engineering, held in even-numbered years
- An increased number of books and journals devoted to requirements engineering,
for example, Requirements Engineering Journal (Springer-Verlag London,
Ltd.), Davis, A.M., Software Requirements: Analysis and Specification
(Prentice-Hall International, Englewood Cliffs, N.J.)
- The inclusion, in the Capability Maturity Model for Software (published
in 1993 by the Software Engineering Institute), of requirements engineering as
a "Key Process Area" in defining a mature software development
process
- The increased development of commercially available tools that support
requirements engineering functions
- The emergence of subspecialties of requirements engineering, for example,
requirements elicitation, requirements verification, and requirements
traceability
- More extensive use of the concept of operations (ConOps) document, which
was first invented and described in the literature more than 15 years ago
- More extensive practice of the validation and verification of requirements.
As with the ConOps document, this is not a new idea, but is now much more
accepted
This tutorial describes the current state of the practice of requirements
engineering, primarily for software systems but also for systems that may
contain other elements such as hardware and people. Every attempt has been made
to select good, current tutorial papers for this tutorial. A paper published in
the 1980s or even the 1970s is not by definition "old" or out of date.
Some very fine papers, published 1~15 years ago, are still current and are the
best available description of the subject under consideration. Papers selected
for inclusion in this tutorial were carefully checked against the following
criteria, to determine if they:
- Accurately described the state of the practice for the given topic; if a
small portion of a paper was perhaps outdated, this was explained in the
chapter introduction
- Covered the state of the practice for the given topic thoroughly and evenly
- Defined the basic terms
- Avoided presenting new, unproved concepts, with no reasonable prediction as
to their future
- Did not try to sell one tool or concept over all others
- Are easy to read, for example, contained no gratuitous (unnecessary) mathematics
- Are organized in a hierarchical manner (top-level concepts discussed first,
second-level concepts discussed next, and so forth)
- Provided a list of additional references
- Were written by an expert in the area (to assure all of the above)
Our criteria are, of course, idealized. Even these "rules" were violated if there was a good reason. On the basis of these criteria, we
have selected papers in the following six chapters:
Chapter 1: Introductions, Issues, and
Terminology
Chapter 2: System and Software System
Engineering
Chapter 3: Software Requirements Analysis and
Specifications
Chapter 4: Software Requirements Methodologies
and Tools
Chapter 5: Requirements and Quality Management
Chapter 6: Software System Engineering Process
Models
Where there were good existing papers, either from the first edition
of this tutorial or elsewhere, we have used them. A large number of the papers
from the first edition are still current and topical. We have also sought out
new papers and revisions of papers from the first edition from noted authors in
the field.
This tutorial is one of a set of tutorials on "software
system engineering" published or to be published by the IEEE Computer Society
Press:
- R.H. Thayer (ed.), Software Engineering Project Management,
IEEE Computer Society Press, Los Alamitos, CA, 1997
- M. Dorfman and R.H. Thayer (eds.), Software Engineering,
IEEE Computer Society Press, Los Alamitos, CA, 1997
- R.H. Thayer and A.D. McGettrick (eds.), Software EngineeringA European
Perspective,
IEEE Computer Society Press, Los Alamitos, CA, 1993
Duplication of papers across tutorials has been kept to a minimum.
In a few cases, particularly important papers are duplicated in order that each
tutorial can stand alone.
We would like to acknowledge the support provided by the following
people.
- Dr. William (Bill) Sanders, Managing Editor,
Computer Society Press
- Ms. Cheryl Smith, Acquisitions Assistant,
Computer Society Press
- Ms. Lisa O'Conner, Tutorial Production Editor,
Computer Society Press
Merlin Dorfman, PhD
Lockheed Martin Missiles and Space Company
Sunnyvale, California, USA
Richard H. Thayer, PhD
California State University, Sacramento
Sacramento, California, USA |
 |
|
| Richard
H. Thayer, PhD, is a Professor of Computer Science at California
State University, Sacramento, California, United States of America.
He travels widely where he consults and lectures on software requirements
analysis, software engineering, project management, software engineering
standards, and software quality assurance. He is a Visiting Researcher
at the University of Strathclyde, Glasgow, Scotland. As an expert
in software project management and requirements engineering, he is
a consultant to many companies and government agencies.
Prior to this, he served over 20 years in the U.S. Air Force as a senior
officer in a variety of positions associated with engineering, computer
programming, research, teaching, and management in computer science and data
processing. His numerous positions include six years as a supervisor and
technical leader of scientific programming groups, four years directing the
U.S. Air Force R&D program in computer science, and six years of managing
large data processing organizations.
Thayer is a Senior Member of the IEEE Computer Society and the IEEE Software
Engineering Standards Subcommittee. He is Chairperson for the Working Group for
a Standard for a Concept of Operations (ConOps) document and past chairperson
for the Working Group for a Standard for a Software Project Management Plans.
He is a Distinguished Visitor for the IEEE Computer Society.
He is also an Associate Fellow of the American Institute of Aeronautics and
Astronautics (AIAA) where he served on the AIAA Technical Committee on Computer
Systems, and he is a member of the Association for Computing Machinery (ACM).
He is also a registered professional engineer.
He has a BSEE and an MS degree from the University of Illinois at Urbana
(1962) and a PhD from the University of California at Santa Barbara (1979) all
in Electrical Engineering.
He has edited and/or co-edited numerous tutorials for the IEEE Computer
Society Press: Software Engineering Project Management (1988), System and
Software Requirements Engineering (1990), Software EngineeringEuropean
Prospective (1992), and Software Engineering (1996). He is the author of
over 40 technical papers and reports on software project management, software
engineering, and software engineering standards and is an invited speaker at
many national and international software engineering conferences and workshops.
Merlin Dorfman, PhD, is a Technical Consultant in the Space Systems
Product Center, Lockheed Martin Missiles and Space Company, Sunnyvale, Calif.
He specializes in systems engineering for software-intensive systems
(requirements analysis, top-level architecture, and performance evaluation), in
software process improvement, and in algorithm development for data processing
systems. He has performed concept exploration, system implementation, and
operations and maintenance of data systems and has worked on proposal teams and
company-funded technology projects as well as on development contracts. He was in
charge of the development of the Automated Requirements Traceability System
(ARTS). He was the first chairman of Space Systems Division's Software
Engineering Process Group. He represented the Lockheed Corporation on the
Embedded Computer Software Committee of the Aerospace Industries Association,
and was Vice-Chairman of the Committee.
Dorfman wrote and taught a four-day course, "Software Requirements and
Design Specifications," for Learning Tree International of Los Angeles,
Calif. He co-teaches a two-week course in Software Project Management for the
Center for Systems Management of Cupertino, Calif. He has been a guest lecturer
on software systems engineering at the Defense Systems Management College. He
is a Fellow of the American Institute of Aeronautics and Astronautics (AIAA), a
member of its System Engineering Technical Committee, past chairman of the
Software Systems Technical Committee, and past Chairman of the AIAA San
Francisco Section, and is currently Assistant Director of Region 6 (West
Coast). He is an affiliate member of the Institute of Electrical and
Electronics Engineers (IEEE) Computer Society.
He has a BS and MS from the Massachusetts Institute of Technology and a PhD
from Stanford University, all in Aeronautics and Astronautics. He is a
registered Professional Engineer in the states of California and Colorado and
is a member of the Tau Beta Pi and Sigma Gamma Tau honorary societies.
He is co-editor of three IEEE Tutorial volumes, System and Software Requirements
Engineering; Standards, Guidelines, and Examples for System and Software
Requirements Engineering; and Software Engineering and co-editor of a
volume, Aerospace Software Engineering, in the AIAA "Progress in
Aeronautics and Astronautics" Series.
Quotes |
 |
|
Booknews, Inc.
A new edition of the comprehensive collection of original and
reprinted articles describing the current best practices in requirement
engineering focused primarily on software systems but also including
hardware and people systems. The 35 papers introduce current issues
and basic terminology, and cover the phases of software requirements
engineering including elicitation, analysis, specification, verification,
and management. Specific discussions feature descriptions of the process
developers and users use to review and articulate needs and constraints
on development, examine software requirements and documentation, and
supply details on management planning and control. Lacks an index. |
|