Use cases allow software developers to identify exactly what features will be required by every user of a software system, and describe these features in terms that allow for rapid, cost-effective, successful development. Applying Use Cases is the most practical, simple, and gentle introduction to use cases. This edition is even better, with more real-world examples, more insight into the pitfalls of use case development, and thorough updating for UML 1.3 and RUP 2000. Leading mentors and consultants Geri Schneider and Jason Winters cover every phase of the process, in the context of a start-to-finish, realistic case study. Learn how to identify both primary and secondary scenarios for the usage of a proposed system; how to diagram use cases; and how to architect and organize large systems, define interfaces between components, and document your use cases.
Geri Schneider is a senior consultant and trainer at Andrews Technology, Inc., in the areas of iterative development, software project management, object-oriented analysis and design, software architecture, design patterns, and use cases. In addition, she teaches in the software engineering management certificate program for the University of California Santa Cruz Extension. She previously worked for Rational Software Corporation mentoring customers in the areas of iterative development, object technologies, and use case analysis. Jason P. Winters is a staff design engineer for Cadence Design Systems, Inc. He was previously with Lucent Technologies as a staff engineer. At Lucent, he designed and built specialized tools, promoted the use of modern software development practices and tools throughout the company, and mentored projects on object-oriented analysis and design, UML, and use cases.
Foreword. Preface to Second Edition. Preface. 1. Getting Started.
An Iterative Software Process.
An Example Project.
The Project Description.
Starting Risk Analysis.
Chapter Review.2. Identifying System Boundaries.
Identifying Use Cases.
Describing Actors and Use Cases.
Potential Boundary Problems.
Scoping the Project.
Chapter Review.3. Documenting Use Cases.
The Basic Use Case.
Pre- and Postconditions.
Flow of Events.
Guidelines for Correctness and Completeness.
Handling Complex Use Cases.
The Basic Path.
Detailing Significant Behavior.
Adding Direction to the Communicates Association.
Chapter Review.4. Advanced Use Case Documentation Techniques.
Chapter Review.5. Diagramming Use Cases.
Simple Sequence Diagrams.
Diagramming the User Interface.
Chapter Review.6. Level of Detail.
Determining the Level of Detail.
Traceability between Use Cases.
Use Cases for Business Processes.
Chapter Review.7. Documenting Use Cases.
Tool Support for Documents.
Chapter Review.8. Reviews.
Review for Completeness.
Review for Potential Problems.
Review with End Users.
Review with Customers.
Review with Development.
Adding Flexibility to Your System.
Work Flow on a Use Case Diagram.
Use Cases Too Small.
Screens as Use Cases.
Using Vague Terms.
Business versus Technical Requirements.
Chapter Review.9. Dividing Large Systems.
Three-Tier Architectural Pattern.
Pipe and Filter Architectural Pattern.
Object-Oriented Architectural Pattern.
Order-Processing Architecture Example.
Testing the Architecture with Use Cases.
Defining Interfaces between Subsystems.
Subordinate Use Cases.
Creating Subsystem Documentation.
Subordinate versus Alternative versus Include.
Chapter Review.10. Use Cases and the Project Plan.
Planning the Project.
Build versus Buy Decisions.
Estimating Work with Use Cases.
Weighting Use Cases.
Weighting Technical Factors.
Use Case Points.
Chapter Review.11. Constructing and Delivering a System.
Key Abstractions of the Domain.
Identifying Key Abstractions in Use Cases.
Diagramming Scenarios with Key Abstractions.
Diagramming Key Abstractions.
Use Case versus Subsystem View.
The Iteration Schedule.
Delivery and Beyond.
User Guides and Training.
Sales Kits and Marketing Literature.
Use Cases After Delivery.
Final Wrap-Up.Appendix A: Resources. Appendix B: Documentation Templates.
System or Subsystem Documents.
Use Case Document.Appendix C: UML Notation. Appendix D: Sending Results of the Use Case Estimator. Appendix E: Order-Processing System.
System-Level Use Cases.