"This book isn't just another introduction to use cases. The authors have used their wealth of experience to produce an excellent and insightful collection of detailed examples, explanations, and advice on how to work with use cases."–Maria Ericsson
The toughest challenge in building a software system that meets the needs of your audience lies in clearly understanding the problems that the system must solve. Advanced Use Case Modeling presents a framework for discovering, identifying, and modeling the problem that the software system will ultimately solve.
Software developers often employ use cases to specify what should be performed by the system they're constructing. Although use case-driven analysis, design, and testing of software systems has become increasingly popular, little has been written on the role of use cases in the complete software cycle. This book fills that need by describing how to create use case models for complex software development projects, using practical examples to explain conceptual information.
The authors extend the work of software visionary Ivar Jacobson, using the Unified Modeling Language (UML) as the notation to describe the book's models. Aimed primarily at software professionals, Advanced Use Case Modeling also includes information that relates use case technique to business processes.
This book presents a process for creating and maintaining use case models in a framework that can be fully customized for your organization. The authors, pioneers in the application of use cases in software development, bring their extensive experience to cover topics such as:
I. FUNDAMENTALS.1. Actors.
What Is an Actor?
Why Define Actors?
How to Find the Actors.
Primary and Secondary Actor Types.
Conclusion.2. Use Cases.
Finding Use Cases.
Describing Use Cases.
Refactoring the Use Case Model.
Extending the UML Use Case Process.
Organizing the Use Case Model.
Another Approach to Building a Use Case Model.
II. PROJECT INITIATION.3. Scoping the System: Vision Document and Business Case.
Describing the Problem: Vision Document.
Tackling the Dark Side.
Determining Project Feasibility: Business Case.
Writing the Business Case.
Revising the Business Case.
Conclusion.4. Balancing the Software System Use Case Model.
Analyzing the Domain.
Documenting the Interfaces.
Defining a Software Architecture.
Packaging the Architecture.
III. ADVANCED USE CASE MODELING FRAMEWORK: INITIAL USE CASE MODEL.5. Introduction to the System Use Case Modeling.
@AHEADS = Need for a Software Development Process.
Advanced Use Case Modeling Process Framework.
Creating or Customizing a Process Framework for a Specific Project.
Conclusion.6. Preparing for Use Case Modeling and Determining Use Case Approach.
Perform a Stakeholder Analysis.
Select and Customize a Use Case Process Framework.
Select Use Case Standards, Templates, and Tools.
Determine Training and Mentoring Needs.
Conclusion.7. Performing Initial Use Case Modeling.
Develop Context Diagram.
Identify the Major Actors.
Discover the Conceptual System Use Cases.
Develop Initial Use Case Diagram.
Determine/Refine the Conceptual Business Objects.
Relationship of Use Cases and the Object Model.
Packaging and Validating the Use Case Conceptual Model.
IV. ADVANCED USE CASE MODELING FRAMEWORK: EXPANDING THE USE CASE MODEL.8. Develop Base Use Case Descriptions.
Fields in a Base Use Case Description.
Getting Started Creating Base Use Case Descriptions.
Finding New Use Cases.
Conclusion.9. Elaborate the Base Use Case Description.
Describing Alternative Flows.
Text-Based Conditional and Iterative Logic in the Flow of Events.
Using Activity Diagrams to Represent a Complex Flow of Events.
Activity Diagrams versus Detailed Text.
Conclusion.10. Model Extend, Include, and Generalization Relationships.
Bringing Together Extend, Include, and Generalization Relationships.
Conclusion.11. Add Supplemental Information to the Use Case Model.
Use Case Priorities.
Focusing on Behavioral Details of Individual Use Case Activities.
Documenting Details of Business Procedures and Rules.
Conclusion.12. Map Use Cases to Object Models.
Analysis Object Modeling.
Parallel Use Case and Object Modeling.
Basic CRUD Matrix.
Expanded CRUD Matrix.
Analysis Sequence Diagrams.
Mapping Use Cases to Object Models Using Sequence Diagrams.
Issues with Using Sequence Diagrams during Analysis.
Conclusion.13. Develop Instance Scenarios.
Use Case Instances Model Specific Executions of a Use Case.
Use Cases Are to Object Classes as Use Case Instances Are to Object Instances.
Why Create Use Case Instances?
Use Case Instances Can Be Applied Informally.
Use Cases Can Be Applied More Formally.
Layout of a Use Case Instance Description.
Finding and Creating Use Case Instances.
Conclusion.14. Create Test Cases and Documentation.
Creating a Test Strategy.
Creating a Test Plan.
Elements of a Test Plan.
Creating Test Cases.
Testing Range/Error Handling.
Creating User Documentation.
Conclusion.15. Organize the Use Cases.
Business Function Packages.
Superordinate and Subordinate Use Cases.
Activity Diagrams to Model Use Case Dependencies.
Putting It All Together in a System Use Case Model.
V. ADDITIONAL TOPICS.16. Building User Interfaces.
Conceptual User Interface Design.
Creating Conceptual Models from Use Cases.
Physical User Interface Design.
Conclusion.17. Coping with Change.
Source of Change.
Changes to the Use Case Model.
Conclusion.18. Creating Your Advanced Use Case Modeling Process.
Effect of the Project and Project Team on Ceremony.
Effects of Artifacts on Ceremony.
Iterative Development and the Development Case.
Conclusion.19. Ensuring a Successful Use Case Modeling Effort.
Appropriate Level of Detail and Organization in the Use Case Model.
Attributes of a Good Use Case Model When Specifying Requirements.
Incremental and Iterative Development with Use Cases.
Know When Not to Use Cases.
Questions to Ask When Use Case Modeling.
Conclusion.Appendix A: Use Case Development Review Checklist.