In the realm of software engineering and systems analysis, Use Case diagrams and specifications are the cornerstone of capturing functional requirements. However, a common pitfall in UML modeling is the creation of use cases that are vague, overly technical, or lack a definitive conclusion. They simply "end floating in space."
To combat this, UML 2.0 enforces a fundamental principle: The Result of Value. A use case is not merely a sequence of clicks or system processes; it is a sequence of actions that yields an observable result of value to one or more actors. This guide explores this core principle, detailing why measurable outcomes are critical, how "negative" outcomes still fulfill this requirement, and how to apply best practices to craft robust, high-value use cases.

In UML 2.0, a use case is formally defined as a sequence of actions performed by an actor and the system that yields an observable result, or set of results, of value for one or more actors.
This "result of value" is the ultimate standard by which the success, completeness, and boundaries of a use case are measured. If the actor cannot observe a meaningful change in the system's state or receive a definitive piece of information, the use case is incomplete.
E-Commerce: "The order is successfully placed, inventory is reserved, and a confirmation email is sent to the customer."
Banking: "Cash is dispensed from the ATM, and the user's account balance is correspondingly deducted."
Healthcare: "The patient's appointment is scheduled, added to the doctor's calendar, and a reminder is queued."
Human Resources: "The new employee's profile is created, and an onboarding email is dispatched to the hiring manager."
The requirement for a result of value is not just semantic; it is a structural necessity for effective systems analysis. It serves three critical purposes:
Measurability and Closure: A use case cannot end ambiguously. Something measurable and observable must occur to signify that the interaction is complete. This provides clear acceptance criteria for testing and development.
Functional Requirement Fulfillment: Use cases capture functional requirements from the user's perspective. If an interaction does not produce value for an actor, it is likely not a complete use case, but rather a sub-step, an internal system trigger, or a technical process.
Scope and Substance: Each use case should be a "small, mobile unit" that addresses a specific functional goal (often referred to as the "Indispensable Realistic Necessary" or IRN test). Ensuring a result of value prevents modelers from creating use cases that are too brief (e.g., "Click Save Button") and lack sufficient substance, while also preventing them from ballooning into entire system modules.
One of the most profound insights in UML use case modeling is that a result of value does not have to be a positive outcome. A key guideline for writing robust use cases is to ensure they produce a result of value even if that result is negative.
While we typically think of value as a successful transaction, a negative result is still considered a "viable result" because it provides a definitive, observable conclusion to the interaction. It protects the system, informs the user, and maintains data integrity.
System Lockout (Security Value): A use case ends with the system locking a user out, retaining their card, and notifying an administrator after three failed PIN attempts. Value: System security is maintained, and the user is definitively informed of their locked status.
Data Validation Error (Integrity Value): A user submits a form with an invalid date format. The system rejects the submission and highlights the error field. Value: Bad data is prevented from entering the database, and the user is guided on how to fix it.
Inventory Depletion (Business Logic Value): A user attempts to checkout, but the item is out of stock. The system prevents the checkout and displays an "Out of Stock" message. Value: Prevents overselling and manages customer expectations.
Payment Decline (Financial Value): A transaction is declined by the payment gateway. The system aborts the order and prompts the user for a new payment method. Value: Ensures financial accuracy and provides a clear next step.
In all these examples, the "Main Success Scenario" was not met, but the use case still delivered a definitive, observable result of value to the actor.
To maintain high value and clarity in your use case modeling, adhere to the following best practices:
Challenge Every Sentence: When writing the main flow, actively look for alternate paths. Ask yourself: "What can go wrong internally at this point?" or "What can the actor do differently?" This ensures your exception flows also end in a result of value.
Focus on the Actor’s Perspective (Call and Response): Write the text in a strict "call and response" format. The Actor does X (call), the System does Y (response). Ensure the system's response eventually culminates in an outcome the actor can observe.
Use Present Tense and Active Voice: Write "The system validates the password," not "The password was validated by the system." This makes it easier for readers to trace the path to the result of value and keeps the text dynamic.
Avoid Design Details: Focus on what the system does to provide value (the analysis/requirements) rather than how it is implemented (the design).
Bad (Design): "The system executes an SQL INSERT statement into the Users table."
Good (Analysis): "The system saves the new user profile."
To visualize these concepts, below are two PlantUML examples. The first shows the structural scope of use cases, and the second demonstrates the flow of actions leading to both positive and negative results of value.
This diagram illustrates how use cases are scoped around delivering value to an actor, including the handling of exceptional (negative) flows.

@startuml
left to right direction
skinparam packageStyle rectangle
actor "Customer" as customer
actor "Bank Administrator" as admin
rectangle "ATM Banking System" {
usecase "Withdraw Cash" as UC1
usecase "Authenticate User" as UC2
usecase "Handle Insufficient Funds" as UC3
usecase "Lock Account on Failed Attempts" as UC4
}
customer --> UC1
UC1 ..> UC2 : <<include>>
UC1 ..> UC3 : <<extend>>\n[Insufficient Funds]
UC2 ..> UC4 : <<extend>>\n[3 Failed PINs]
admin <.. UC4 : receives notification
@enduml
This activity diagram demonstrates the "call and response" flow, explicitly showing how both the Main Success Scenario (Positive Value) and Exception Flows (Negative Value) result in a definitive, observable conclusion.

@startuml
|Customer|
start
:Insert Card and enter PIN;
|ATM System|
:Validate PIN;
if (PIN Valid?) then (yes)
:Authenticate User;
|Customer|
:Select 'Withdraw Cash' & enter amount;
|ATM System|
:Check Account Balance;
if (Sufficient Funds?) then (yes)
' --- POSITIVE RESULT OF VALUE ---
:Dispense Cash;
:Update Account Balance;
:Print Receipt;
|Customer|
:Take Cash and Receipt;
|ATM System|
:Eject Card;
|Customer|
:Take Card;
stop
else (no)
' --- NEGATIVE RESULT OF VALUE (Exception) ---
|ATM System|
:Display 'Insufficient Funds' Error;
:Log Failed Transaction;
|Customer|
:Acknowledge Error;
|ATM System|
:Eject Card;
|Customer|
:Take Card;
stop
endif
else (no)
:Increment Failed Attempt Counter;
if (Attempts < 3?) then (yes)
:Display 'Invalid PIN' Error;
|Customer|
:Re-enter PIN;
' (Loops back to Validate PIN)
stop
else (no)
' --- NEGATIVE RESULT OF VALUE (Security Exception) ---
|ATM System|
:Lock Account;
:Retain Card;
:Notify Bank Admin;
|Customer|
:Receive Card Retention Notice;
stop
endif
endif
@enduml
The principle of Use Case Value is the north star of UML 2.0 functional modeling. By insisting that every use case yields an observable result—whether it is a successful transaction, a blocked unauthorized attempt, or a clear error message—modelers ensure that their requirements are measurable, scoped correctly, and truly aligned with the actor's needs. Remember, a system that definitively tells a user "No" is delivering just as much value as a system that says "Yes," provided the outcome is clear, observable, and final.
To effectively capture, manage, and visualize these high-value use cases, utilizing robust modeling software is essential. Visual Paradigm is highly recommended for this task. With its comprehensive suite of UML diagramming tools, intuitive interfaces, and powerful requirements management features, Visual Paradigm empowers analysts and developers to collaboratively craft precise use cases, ensuring that every modeled interaction delivers tangible, observable value to the final system.