Business System Analysis Bookstore
In Association with Amazon.com
Help PicoSearch
Looking for Business Analysis Training

Software Requirements Engineering

Buy the Book
Summary TOC Preface Author Look Inside Comments Reviews
Richard H. Thayer (Editor), M. Dorfman (Editor), Sidney C. Bailin (Editor)
April 1997, IEEE Computer Society, Paperback, 500 pages, ISBN 0818677384

Instructor-led, virtual, and self-paced training for Business Analysts What Do Business Analysts Do?
How to Gather, Analyze, and Define Business System Requirements
Introduction to Business System Requirements
How to Clarify, Confirm, and Complete Business Requirements
How to Capture and Tame Business Requirements
How to Prepare and Facilitate Requirements Workshops
How to Model, Analyze, and Improve Business Processes
How to Manage Changing Business Requirements
How to Become Agile in Business Analysis
How to Model and Analyze Business System Data
Introduction to Modeling and Analyzing Business System Data
How to Model Business Data from the Business Perspective
How to Jump-Start Requirements Gathering with User Stories
How to Discover and Develop Use Cases
Introduction to Business Use Case Documentation and Modeling
How to Capture Functional Requirements with Use Cases and Diagrams
How to Clarify and Confirm Business Requirements with Use Cases
How to Manage Small Projects
How to Estimate Early in a Project
How to Develop and Use UML Models for Business Analysis
How to Prepare and Facilitate a Successful JAD Session
How to Plan, Prepare, and Execute User Acceptance Testing
Business Analysis and Requirements Gathering Blitz
e-Learning, virtual workshops and webinars Try our new Virtual Workshops and e-Coaching
for today's Business System Analysts (BA's) and Subject Matter Experts (SME's)

Summary
Buy the book

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
 
analysis bookstore top
BA books: Table of Contents
Buy the book

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 Requirements—A 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

 
analysis bookstore top
Preface
Buy the book
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 Engineering—A 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

 
analysis bookstore top
Author info
Buy the book
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 Engineering—European 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

 
analysis bookstore top
Business System Analysis Books: Reviews
Buy the book
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.
 
analysis bookstore top
 
NEW RELEASES
Agile
Benchmarking
Best Practices
Business Systems Analysis
CASE
Data Analysis
  Data Models
Data Normalization
Data Repository
Entity Relationship Diagrams
Miscellaneous
Data Warehouse
Enterprise Architecture
Enterprise Resource Planning (ERP)
  Peoplesoft
SAP
Miscellaneous
Humor
Internet
  E-Commerce
Miscellaneous
Interviewing Techniques
Methodologies
  Information Engineering
Structured System Development
System Development Life Cycle (SDLC)
Miscellaneous
Object Oriented
  Business Objects
Object Oriented Analysis
Object Oriented Design
Object Oriented Modeling
Object Oriented Testing
State Transition Diagrams
Problem Analysis
Process Analysis
  Data Flow Diagrams
Decision Tables
Event Response Diagrams
Flowcharts
Process Models
Miscellaneous
Process Improvement (BPI)
Related Topics
  Knowledge Management
Philosophies
Request for Proposal (RFP)
Risk Management
Six Sigma
Software Reuse
Strategic Planning
Requirements
  Business Rules
Prototyping
Requirements Analysis
Requirements Definition
Requirements Documentation
Requirements Engineering
Requirements Gathering
Requirements Management
Requirements Traceability
System Specifications
User Interfaces
Miscellaneous
Test Management
  Defect Tracking
Test Planning
Testing Methodologies
Testing Tools
Validation & Verification
Miscellaneous
Testing Phases
  Acceptance Testing
Configuration Testing
Integration Testing
Performance Testing
System Testing
Unit Testing
Usability Testing
Testing Techniques
  Black Box Testing
Object Oriented Testing
Regression Testing
Test Cases
Test Data Engineering
Walkthroughs
White Box Testing
Miscellaneous
Unified Modeling Language (UML)
Usability Engineering
  Prototyping
Task Analysis
Usability Testing
User Interfaces
Miscellaneous
Use Cases
Workflow Analysis
Working in Teams
  Conducting Meetings
Facilitation
JAD
Rapid Application Development (RAD)
Miscellaneous
Search:
Keywords:
Home Links Add a book Request Link Exchange BA Skills Test Training Needs Assessment