SPECIAL OFFERS
Keep up with new releases and promotions. Sign up to hear from us.
Register your product to gain access to bonus material or receive a coupon.
A Practical Approach to Software Requirements using the Unified Process will provide an end-to-end process to ensure that requirements are correct, complete, consistent, and effectively documented. It will provide information on how to effectively gather requirements, how to present them to the user to ensure a complete understanding, and how to capture the requirements in software architecture. Gathering, analyzing, and specifying requirements are among the most important steps in building a quality software system. Yet, many software development teams do not accomplish these tasks very well. The resulting systems often do not meet customers' expectations and eventually require major rework. This book includes a discussion on how to use and document Use Cases and how to use storyboarding to reflect the requirements back to the user as well as a thorough discussion of Object Oriented modeling to include Class Diagrams, State Transition Diagrams, and Interaction Diagrams. The authors also provide a description of how to represent the Class Diagram in an IEEE standard Software Requirements Specification and a description of how to build a set of test cases based on the requirements. A case study to illustrate the use of this process.
Preface.
Acknowledgments.
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.