This section provides a brief introduction to the Unified Modeling Language (“UML”). UML will be used extensively throughout this working
group's activities and throughout the development of the reference implementation of the IEEEP2407 standards.
[NOTE: The material in this section is extracted from an excellent document by Sinan Si Alhir, available at
http://www.methodsandtools.com/PDF/DMT0100.pdf (p. 10-16). Sinan’s personal website is available at http://home.comcast.net/~salhir/
The UML is an evolutionary general-purpose, broadly applicable, tool-supported, and industry-standardized modeling language for
specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process. The language is broadly applicable to
different types of systems (software and non-software), domains (business versus software), and methods and processes. The UML enables
and promotes (but does not require nor mandate) a use-case-driven, architecture-centric, iterative, and incremental process that is
object oriented and component based. The UML enables the capturing, communicating, and leveraging of knowledge: models capture knowledge
(semantics), architectural views organize knowledge in accordance with guidelines expressing idioms of usage, and diagrams depict knowledge
(syntax) for communication.
..Models are complete abstractions of systems. Models are used to capture knowledge (semantics) about problems and solutions. Architectural views are abstractions of models. Architectural views are used to organize knowledge in accordance with guidelines expressing idioms of usage. Diagrams are graphical projections of sets of model elements. Diagrams are used to depict knowledge (syntax) about problems and solutions.
Within the fundamental UML notation, concepts are depicted as symbols and relationships among concepts are depicted as paths (lines) connecting symbols.
..Use Case Diagrams
To successfully apply use case diagrams, we must first understand the types of elements used in use case diagrams.
Actors
Actor classes are used to model and represent roles for “users” of a system, including human users and other systems. Actors are denoted as stick person icons.
..Use Cases
Use case classes are used to model and represent units of functionality or services provided by a system (or parts of a system: subsystems or classes) to users… Use case classes have use case instances or objects called scenarios that represent specific interactions. Scenarios represent a singe sequence of messages and actions.
.. Relationships
Association relationships between actor classes and use case classes are used to indicate that the actor classes participate and communicates with the system containing the use case classes.
..Use Cases
When modeling use cases, we ought to be aware of the following guidelines:
Use cases should be named using verb-noun phrases.
Use cases should be described, indicating how they are started and end, any conditions that must be satisfied before the use case starts (pre-conditions), any conditions that must be satisfied when the use case ends (post-conditions), the sequence of exchanged messages and performed actions, the data exchanged, and any non-functional characteristics (reliability, performance, supportability, etc. constraints). This description may be captured using text and other UML diagrams.
Use cases define the scope of a system and define the functionality provided by the system and those elements on which the system depends in order to provide the functionality.
Use cases should facilitate actors in reaching their goals. Use cases are system functionality or responsibilities (requirements) that actors use in order to reach or satisfy their goals. Use cases are not simply actor goals…
Use cases should facilitate the architecture of a system. Use cases may be organized and partitioned using includes, extends, and generalization relationships to identify, extract, and manage common, optional, and similar functionality…
Use cases provide flexibility and power throughout the life-cycle process. They provide the freedom to work with a use case as a whole or any subset of a use case via scenarios…
Use cases may be used as the basis for planning. Time and resource estimates may be associated with use cases.
Use cases may be used as the basis for analysis, design, and implementation.
Use cases may be used as the basis for testing.
Use cases may be used as the basis for documentation since use cases capture how users will use the system.
IEEEP2407 Use Cases
This is the latest version of the Case Use Cases developed by the working group: