Synopses & Reviews
Use case analysis is a methodology for defining the outward features of a software system from the user's point of view. Applying Use Cases, Second Edition,
offers a clear and practical introduction to this cutting-edge software development technique. Using numerous realistic examples and a detailed case study, you are guided through the application of use case analysis in the development of software systems.
This new edition has been updated and expanded to reflect the Unified Modeling Language (UML) version 1.3. It also includes more complex and precise examples, descriptions of the pros and cons of various use case documentation techniques, and discussions on how other modeling approaches relate to use cases.
Applying Use Cases, Second Edition, walks you through the software development process, demonstrating how use cases apply to project inception, requirements and risk analysis, system architecture, scheduling, review and testing, and documentation. Key topics include:
- Identifying use cases and describing actors
- Writing the flow of events, including basic and alternative paths
- Reviewing use cases for completeness and correctness
- Diagramming use cases with activity diagrams and sequence diagrams
- Incorporating user interface description and data description documents
- Testing architectural patterns and designs with use cases
- Applying use cases to project planning, prototyping, and estimating
- Identifying and diagramming analysis classes from use cases
- Applying use cases to user guides, test cases, and training material
An entire section of the book is devoted to identifying common mistakes and describing their solutions. Also featured is a handy collection of documentation templates and an abbreviated guide to UML notation.
You will come away from this book with a solid understanding of use cases, along with the skills you need to put use case analysis to work.
The second edition of this bestselling entry-level guide to use cases employs practical examples to show how to apply use cases analysis in the development of software and business systems. Updated to reflect the Unified Modeling Language (UML) 1.3 and the Rational Unified Process (RUP) 2000.
About the Author
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.
Table of Contents
Preface to Second Edition.
1. Getting Started.
An Iterative Software Process.
An Example Project.
The Project Description.
Starting Risk Analysis.
2. Identifying System Boundaries.
Identifying Use Cases.
Describing Actors and Use Cases.
Potential Boundary Problems.
Scoping the Project.
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.
4. Advanced Use Case Documentation Techniques.
5. Diagramming Use Cases.
Simple Sequence Diagrams.
Diagramming the User Interface.
6. Level of Detail.
Determining the Level of Detail.
Traceability between Use Cases.
Use Cases for Business Processes.
7. Documenting Use Cases.
Tool Support for Documents.
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.
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.
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.
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.
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.