Managing Software Requirements: A Unified Approach

Dean Leffingwell, Don Widrig

  • 出版商: Addison Wesley
  • 出版日期: 1999-10-28
  • 售價: $2,000
  • 貴賓價: 9.5$1,900
  • 語言: 英文
  • 頁數: 528
  • 裝訂: Hardcover
  • ISBN: 0201615932
  • ISBN-13: 9780201615937
  • 已絕版

買這商品的人也買了...

相關主題

商品描述


Table Of Contents

Foreword.
Preface.
Introduction.
Chapter 1. The Requirements Problem.
The Goal.
A Look at the Data.
Root Causes of Project Success and Failure.
The Frequency of Requirements Errors.
The High Cost of Requirements Errors.
Conclusion.


2. Introduction to Requirements Management.
Definitions.
What Is Requirements Management?

Application of Requirements Management Techniques.
Systems Applications.

The Road Map.
The Problem Domain.
Stakeholder Needs.
Moving Toward the Solution Domain.
Features of the System.
Software Requirements.
An Introduction to Use Cases.

Summary.

3. The Software Team.
Software Development as a Team Activity.
Requisite Team Skills for Effective Requirements Management.
Team Members Have Different Skills.
The Organization of Software Teams.

The Case Study.
Background for the Case Study.
The HOLIS Software Development Team.

Summary.

I. ANALYZING THE PROBLEM.


4. The Five Steps in Problem Analysis.
Step 1: Gain Agreement on the Problem Definition.
The Problem Statement.

Step 2: Understand the Root Causes--The Problem Behind the Problem.
Addressing the Root Cause.

Step 3: Identify the Stakeholders and the Users.
Step 4: Define the Solution System Boundary.
Step 5: Identify the Constraints to Be Imposed on the Solution.
Summary.
Looking Ahead.

5. Business Modeling.
Purpose of Business Modeling.
Using Software Engineering Techniques for Business Modeling.
Choosing the Right Technique.
The Unified Modeling Language (UML).
Business Modeling Using UML Concepts.

From The Business Models to the Systems Model.
When To Use Business Modeling.
Summary.
Looking Ahead.

6. Systems Engineering of Software Intensive Systems.
What Is Systems Engineering?
Pragmatic Principles of Systems Engineering.
The Composition and Decomposition of Complex Systems.

Requirements Allocation in Systems Engineering.
On Derived Requirements.
A Quiet Revolution.
When Generations Collide: Graybeard Meets Young Whippersnapper.
Avoiding the Stovepipe System Problem.
When Subsystems Are Subcontracts.
Making It Work Out Right.
The Case Study.
Preliminary User Needs.
Problem Analysis.
HOLIS: The System, Actors, and Stakeholders.
HOLIS Systems Engineering.
The Subsystems of HOLIS.

II. UNDERSTANDING USER NEEDS.



7. The Challenge of Requirements Elicitation.
Barriers to Elicitation.
The "Undiscovered Ruins" Syndrome.
The "User and the Developer" Syndrome.

Techniques for Requirements Elicitation.

8. The Features of a Product or System.
Stakeholder and User Needs.
Features.
Managing Complexity by Picking the Level of Abstraction.
Attributes of Product Features.


9. Interviewing.
The Interview Context.
Value-Added Context.
The Moment of Truth: The Interview.
Compiling the Need Data.
The Analyst's Summary: 10+10+10 _ 30.
The Case Study.

A Note on Questionnaires.

10. Requirements Workshops.
Preparing for the Workshop.
Selling the Concept.
Ensuring the Participation of the Right Stakeholders.
Logistics.
"Warm-Up Materials".

Role of the Facilitator.
Setting the Agenda.
Running the Workshop.
Brainstorming and Idea Reduction.
Production and Follow-Up.

11. Brainstorming and Idea Reduction.
Live Brainstorming.
Idea Reduction.
Pruning.
Grouping Ideas.
Feature Definition.
Prioritization.

Web-Based Brainstorming.
The Case Study: The HOLIS 2000 Requirements Workshop.
Attendees.
The Workshop.
The Session.
Analysis of Results.


12. Storyboarding.
Types of Storyboards.
What Storyboards Do.
Tools and Techniques for Storyboarding.
Tips for Storyboarding.
Summary.

13. Applying Use Cases.
Building the Use Case Model.
Applying Use Cases to Requirements Elicitation.
Case Study: The Use Cases for HOLIS.
Summary.

14. Role Playing.
How to Role Play.
Techniques Similar to Role Playing.
Scripted Walkthroughs.
CRC (Class-Responsibility-Collaboration) Cards.

Summary.

15. Prototyping.
Types of Prototypes.
Requirements Prototypes.
What to Prototype.
Building the Prototype.
Evaluating the Results.

Summary.

III. DEFINING THE SYSTEM.


16. Organizing Requirements Information.
Organizing Requirements of Complex Hardware and Software Systems.
Organizing Requirements for Product Families.
On "Future" Requirements.
Business and Marketing Requirements versus Product Requirements.
The Case Study.
Summary.

17. The Vision Document.
Components of the Vision Document.
The "Delta Vision" Document.
Vision Document for Release 1.0.
Vision Document for Version 2.0.
The Delta Vision Document in a Legacy System Environment.


18. The Champion.
The Role of the Product Champion.
The Product Champion in a Software Product Environment.
The Product Champion in an IS/IT Shop.

IV. MANAGING SCOPE.


19. The Problem of Project Scope.
Components of Project Scope.
The Hard Question.

20. Establishing Project Scope.
Setting Priorities.
Assessing Effort.
Adding the Risk Element.
Reducing Scope.
A Reasonable First Estimate.

The Case Study.

21. Managing Your Customer.
Engaging Customers to Manage their Project Scope.
Communicating the Result.
Negotiating with the Customer.
Managing the Baseline.
Official Change.
Unofficial Change.


22. Scope Management and Software Development Process Models.
The Waterfall Model.
The Spiral Model.
The Iterative Approach.
Life Cycle Phases.
Iterations.
Work Flows.

What to Do, What to Do....

V. REFINING THE SYSTEM DEFINITION.


23. Software Requirements.
Definition of Software Requirements.
Relationship Between Features and Software Requirements.
The Requirements Dilemma: What versus How.
Exclude Project Information.
Exclude Design Information.

More on Requirements versus Design.
Iterating Requirements and Design.

A Further Characterization of Requirements.
Functional Software Requirements.
Nonfunctional Software Requirements.
Design constraints.
Are Design Constraints True Requirements?

Using Parent-Child Requirements to Increase Specificity.
Organizing Parent-child Requirements.

Looking Ahead.

24. Refining the Use Cases.
Questions to Ask.
When Are Use Cases Not the Best Choice?
Is Redundancy a problem?

Refining Use Case Specifications.
How Use Cases Evolve.
The Scope of a Use Case.

The Case Study: Anatomy of a Simple Use Case.
Define the Actor(s).
Define the Use Case by Naming It.
Write a Brief Description.
Define a Flow of Events.
Identify Pre- and Postconditions.

Looking Ahead.

25. A Modern Software Requirements Specification.
The Modern SRS Package.
Who Owns the SRS Package?
Organizing the Modern SRS Package.

Documenting Functional Requirements.
Looking Ahead.

26. On Ambiguity and Specificity.
Mary Had A Little Lamb.
Techniques for Disambiguation.
What to Do?

27. Quality Measures of Software Requirements.
Nine Quality Measures.
Correct Requirements.
Unambiguous Requirements.
Completeness of the Requirement Set.
Consistency in the Requirement Set.
Requirements Ranked for Importance and Stability.
Verifiable Requirement.
Modifiable Requirements Set.
Traceable Requirements.
Understandable Requirements.

Quality Measures for the Use-Case Model.
Use Case Specifications.
Use Case Actors.

Quality Measures of the Modern SRS Package.
A Good Table of Contents.
A Good Index.
A Revision History.
A Glossary.


28. Technical Methods for Specifying Requirements.
Pseudocode.
Finite State Machines.
Decision Trees and Decision Tables.
Graphical Decision Trees.
Activity Diagrams.
Entity-Relationship Models.
Object-Oriented Modeling.
Data Flow Diagrams.
Maintenance of Specifications.

VI. Building the Right System.


29. Building the Right System Right: Overview.
Continually Confirm that the Development Is on Track.
Principles of Software Verification.
The Cost of Verification.
Verification at All Levels.
The Reason for Verification.

Confirm that the Development Results Are Correct.
Learn How to Cope with Change that Occurs During the Development Process.
Looking Ahead.

30. From Requirements to Implementation.
Mapping Requirements to Design and Code.
The Orthogonality Problem.
Object Orientation.
The Use Case as Requirement.
Managing the Transition.
Modeling Software Systems.
Role of the Use-Case Model in Architecture.

Realizing Use Cases in the Design Model.
Structural and Behavioral Aspects of Collaborations.
Using Collaborations to Realize Sets of Individual Requirements.

From Design to Implementation.
Summary.
Looking Ahead.

31. Using Traceability to Support Verification.
The Role of Traceability in Requirements Verification.
Implicit versus Explicit Traceability.
Additional Traceability Options to Consider.
Using Traceability Tools.
Maintenance of Traceability Relationships.

Proceeding without Traceability Tools.
Omitted Verification Relationships.
Excess Verification Relationships.

Thinking About Verification and Traceability.
Looking Ahead.

32. Validating the System.
Validation.
Validation Testing.
Validation Traceability.
Requirements-based Testing.

Case Study: Testing Use Cases.
Test Case 1 Description.
Tracing Test Cases.

Testing Discrete Requirements.
Omitted Validation Relationships.
Excess Validation Relationships.

Testing Design Constraints.
Looking Ahead.

33. Using ROI to Determine the V&V Effort.
Depth versus Coverage.
V&V Coverage.

What to Verify and Validate.
Option 1: Verify and Validate Everything.
Option 2: Use a Hazard Analysis to Determine V&V Necessities.
Hazard Analysis as Return On Investment (ROI).

Looking Ahead.

34. Managing Change.
External Factors.
Internal Factors.
"We Have Met the Enemy, and They Is Us".
A Process for Managing Change.
Step 1: Recognize that Change Is Inevitable, and Plan for It.
Step 2: Baseline the Requirements.
Step 3: Establish A Single Channel to Control Change.
Step 4: Use a Change Control System to Capture Changes.
Step 5: Manage Change Hierarchically.

Requirements Configuration Management.
Tool-based Support for Change Management.
Elements Impacted by Change.
Audit Trail of Change History.
Configuration Management and Change Management.

Summary.

35. Getting Started.
Dedication.
What We've Learned So Far.
Introduction.
Team Skill 1: Analyzing the Problem.
Team Skill 2: Understanding User Needs.
Team Skill 3: Defining the System.
Team Skill 4: Managing Scope.
Team Skill 5: Refining the System Definition.
Team Skill 6: Building the Right System.

Your Prescription for Requirements Management.
Simplifying Assumptions.
The Recipe.

Now, On To the Next Release!

Appendix A.
Appendix B.
Appendix C.
Appendix D.
Appendix E.
Bibliography.
Index. 0201615932T04062001


Back to Top