The use case model in the Unified Modeling Language (UML) serves as a powerful tool for capturing and defining the functional requirements of a system. Its primary purpose is to establish clear communication among various stakeholders, such as system developers, project managers, end-users, and other relevant parties involved in the development process. Here’s a detailed breakdown of its purpose and utility:
Visual Representation of System Functionality:
Simplifies Complexity: Use case diagrams provide a straightforward and visual way of representing the complex interactions between the users (actors) and the system, helping to simplify the understanding of what the system is supposed to do.
Focus on User Interactions: These diagrams highlight how different types of users (actors) interact with the system, detailing the various actions they can perform and the system’s responses.
Requirement Elicitation and Validation:
Captures Functional Requirements: Use case models are instrumental in defining and organizing the functional requirements of a system. Each use case in the model encapsulates a specific piece of functionality that the system must provide.
Ensures Completeness: By modeling different use cases, developers and stakeholders can ensure that all desired functionalities are covered and that the system meets all user needs and expectations.
Communication and Collaboration Tool:
Facilitates Discussion: The visual nature of use case diagrams makes them an excellent tool for facilitating discussions among stakeholders. They help in clarifying requirements and in resolving misunderstandings early in the development process.
Universal Language: Since UML is a standardized modeling language, use case diagrams can be understood by all stakeholders, regardless of their technical background. This universality promotes better communication and collaboration.
Foundation for System Design:
Basis for Further Development: Use case models provide a foundation for more detailed system design, including the creation of interaction diagrams, class diagrams, and other UML artifacts.
Traceability: They offer a means to trace back to the requirements throughout the development process, ensuring that the final product aligns with what was originally requested by the users.
Supports Iterative Development:
Adaptability: Use case models are adaptable and can be easily updated or extended as new requirements emerge or existing requirements evolve, making them well-suited for iterative and agile development methodologies.
By defining clear use cases, the model helps in ensuring that all functional requirements are thoroughly considered and addressed. This not only improves the quality of the software product but also enhances user satisfaction by aligning the system’s capabilities with the users' actual needs.
Create a Dialog about System Features
The use case model determines the functionality an application must provide by creating a dialog about the features users need, by asking questions such as:
How will people use the application?
What will they see when they use it?
Determine functionality:
Think about your own experience researching a system. Typically, we ask users something like, How do you post a transaction? How do you verify an account balance? Then the user describes a workflow or process. The need to determine functionality was one of the reasons why structure analysis, a form of functional modeling, was created.
Goal-focused modeling:
The key difference between use cases and functional design is the focus. Functional design documents a process, but a use case focuses on the goal of a process. This change in mindset is essential in keeping us from jumping to process solutions without first understanding the intended goal. Remember how rapidly technology changes since a process that works today will likely be obsolete or inadequate by the end of the project. Functional modeling often leads to rewriting existing systems, rather than redesigning them, precisely because it focuses on the current process rather than the goal. Goal-focused modeling keeps us attuned to a target rather than the means to the target. This keeps us open to a variety of solutions, allowing and possibly encouraging us to take advantage of technological advances.
Origin of Use Cases
Use cases are the product of the methodology developed and used by Ivar Jacobson and documented in the book Object-Oriented Software Engineering (Addison-Wesley Publishing Company, 1992). This text describes an entire development method based on requirements from the user's view of the system.
Jacobson has now joined Jim Rumbaugh and Grady Booch at Rational Software, where he is contributing to the development of the UML.
His book on reuse strategies is titled Software Reuse, Architecture, Process, and Organization for Business Success (Addison-Wesley Publishing Company, 1997).
In 1986, Ivar Jacobson first formulated visual modeling techniques for specifying use cases. In 1992 his co-authored book "Object-Oriented Software Engineering - A Use Case Driven Approach" helped to popularize the technique for capturing functional requirements, especially in software development. Originally he had used the terms usage scenarios and usage case, the latter a direct translation of his Swedish term anvaendningsfall, but found that neither of these terms sounded natural in English, and eventually he settled on
use case.
Since then, other experts have also contributed a great deal to the technique, notably Alistair Cockburn, Larry Constantine, Dean Leffingwell, and Kurt Bittner. In 2011, Jacobson published an update to his work, called Use Case 2.0, with the intention of incorporating many of his practical experiences of applying use cases since the original inception of the concept.
In the next lesson, the use case diagram will be discussed.
Use Case Model - Exercise
Click the Exercise link below to practice targeting goals rather than processes. Use Case Model - Exercise