Effective requirements development: An end-to-end process that works.
This book presents a systematic, easy-to-apply methodology for creating effective requirements. The authors present practical solutions for the full requirements lifecycle: gathering, analysis, specification, verification, and maintenance. Working in the context of the Unified Process, they cover process flows, present detailed diagrams, and offer insights that draw on their extraordinary mission-critical project experience, which ranges from the floor of the New York Stock Exchange to the U.S. Air Force's most advanced Command and Control Systems.
Whether you're an analyst, architect, developer, tester, manager, or software customer, this book will help you define requirements that precisely reflect your needsand can be transformed into working software faster and more cost-effectively than ever before.
Click here for a sample chapter for this book: 0130969729.pdf
I. INTRODUCING GOOD REQUIREMENTS.1. The Importance of Good Requirements.
Rationale for Good Requirements. Approach to Good Requirements. Benefits of Good Requirements. Impact of Good Requirements on Development and Productivity. Impact of Good Requirements on Testing and Quality. Impact of Good Requirements on the Organization. Identification of a Good Requirement.2. Characteristics of Good Requirements.
Characteristics of a Good Requirement. Characteristics of a Good Set of Requirements. Language of Good Requirements. Communicability of Good Requirements.3. Overview of the Artifacts and the Process.
Introduction to the Artifacts. Introduction to the Process. Moving from Requirements to Design.
II. BUILDING THE USER REQUIREMENTS.4. Getting to Know the Problem Domain.
Researching the Area. Reading, Reading, Reading. Interviewing the Customer and Users. Building the Use Cases.5. Actors and Use Cases.
Defining the Boundaries of the System. Moving from Steady State to Steady State. Identifying Use Cases. Introducing the Change Management System Example.6. Modeling Use Cases.
Diagramming Use Cases. Generalizing Use Cases. Generalizing Use Cases for the Change Management System. Relationships Among Use Cases. Diagramming Change Management System Use Cases. Packaging Use Cases. Packaging the Change Management System Use Cases.7. Using Activity Diagrams to Represent Use Cases.
Elements of Activity Diagrams. Change Management System Activity Diagram.8. Writing Use Cases.
Template Use. Step-by-Step Description. Alternative Courses. Exceptions and Issues. Change Management Use Case.9. Using Storyboards to Validate the Use Cases.
Presentation of Storyboards to the User. Evolutionary Graphical User Interface Presentations. Other Diagrams and Pictures. Presentation of Use Cases to the User. Change Management Systems Storyboards.
III. BUILDING THE REQUIREMENTS ARCHITECTURE.10. Entities and Events as Objects.
Classes and Objects. Remembered Events as Classes. Change Management System Classes.11. Building a Class Diagram.
Generalization. Polymorphism. Aggregation. Association. Packaging Classes. Change Management System Examples.12. Using State Transition Diagrams.
Introduction to State Transition Diagrams. Class-Level State Transition Diagrams. Use-Case-Level State Transition Diagrams. System-Level State Transition Diagrams. Change Management System State Transition Diagram.13. Use Case Realization by Means of Sequence Diagrams.
Introduction to Sequence Diagrams. Realizing Use Cases in Sequence Diagrams. Example Sequence Diagram for the Change Management System.
IV. BUILDING THE SPECIFICATIONS.14. Developing a Software Requirements Specification.
Tailoring the Standard to Meet Your Needs. Specifying Functional Requirements from the Class Diagram. Specifying Nonfunctional Requirements. Identifying Dependencies Between Requirements.15. Developing an Interface Requirement Specification.
The IRS Template. Front Matter of the IRS. Reference Section of the IRS. Requirement Section of the IRS. Protocol and Messages Section of the IRS.16. Verifying the Software Requirements Specification.
Using the Process to Ensure Good Requirements. Using Peer Reviews to Ensure Good Requirements. Specifying a Test Tree. Analyzing the Test Tree. Requirements Verification Checklist.
V. USING THE REQUIREMENTS ARCHITECTURE.17. Maintaining the System.
Receiving the Change Request. Analyzing the Change. Analyzing User Needs. Identifying New and Changed Use Cases. Identifying New and Changed Requirements. Implementing a Release.18. Ensuring Maximum Benefits from the Requirements.
Benefits to Development and Productivity Revisited. Benefits to Testing and Quality Revisited. Benefits to the Organization Revisited.
VI. APPENDICES.Appendix A. Planning Model for Requirements Development.
Model Work Breakdown Structure. Model Effort Allocation. Model Schedule Allocation. Standard Major Milestones.Appendix B. Change Management System Artifacts.
Change Management System Use Cases. Change Management System Class Diagrams. Change Management System State Diagrams. Change Management Software Requirements Specification.Bibliography.
We intend that this book provide you with a practical approach to gathering, analyzing, specifying, and managing software requirements throughout the software's life cycle.
If you are an analyst responsible for specifying requirements from which software systems are built, we think you will find a straightforward and effective approach to meeting the demands of the users you work with and the developers and testers you deliver specifications to.
If you are a developer responsible for building software systems from requirements specifications, we think you will find an effective way to communicate all software requirements in a coherent and easy-to-follow manner.
If you are a tester responsible for testing software systems from a specification, we think you'll find that the specifications described in this book provide a complete and clear control flow model of the entire system, allowing you to systematically develop tests. We also believe you will find that the requirements artifacts described in this book will allow you to learn a new system quickly and thoroughly.
If you are a manager of software development or testing, we think you will find that the establishment and maintenance of requirements artifacts will ensure that you can always quickly bring new people up to speed on your systems. We also believe you will find a practical approach to shortening the time it takes to specify software requirements while maintaining your organization's intellectual property.