Software Disclaimer

Class UML 2.3::UseCase

Description:

A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system.

Direct Superclasses: BehavioredClassifier

Direct Subclasses:

Class Precedence List: UseCase, BehavioredClassifier, Classifier, TemplateableElement, Type, PackageableElement, ParameterableElement, Namespace, RedefinableElement, NamedElement, Element

Properties:

extend : Extend (0 *); -- source UseCase
extensionPoint : ExtensionPoint (0 *); -- source UseCase
include : Include (0 *); -- source UseCase
subject : Classifier (0 *); -- source UseCase
classifierBehavior : Behavior (0 1); -- source BehavioredClassifier
interfaceRealization : InterfaceRealization (0 *); -- source BehavioredClassifier
ownedBehavior : Behavior (0 *); -- source BehavioredClassifier
ownedTrigger : Trigger (0 *); -- source BehavioredClassifier
attribute : Property (0 *); -- source Classifier
collaborationUse : CollaborationUse (0 *); -- source Classifier
feature : Feature (0 *); -- source Classifier
general : Classifier (0 *); -- source Classifier
generalization : Generalization (0 *); -- source Classifier

Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
{composite}
Subsets: Element.ownedElement
Opposite: Generalization.specific

inheritedMember : NamedElement (0 *); -- source Classifier
isAbstract : Boolean (1 1); -- source Classifier
isFinalSpecialization : Boolean (1 1); -- source Classifier
ownedTemplateSignature : RedefinableTemplateSignature (0 1); -- source Classifier
ownedUseCase : UseCase (0 *); -- source Classifier
powertypeExtent : GeneralizationSet (0 *); -- source Classifier
redefinedClassifier : Classifier (0 *); -- source Classifier
representation : CollaborationUse (0 1); -- source Classifier
substitution : Substitution (0 *); -- source Classifier
templateParameter : ClassifierTemplateParameter (0 1); -- source Classifier
useCase : UseCase (0 *); -- source Classifier
templateBinding : TemplateBinding (0 *); -- source TemplateableElement
package : Package (0 1); -- source Type
visibility : VisibilityKind (1 1); -- source PackageableElement

Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
Redefines: NamedElement.visibility
Default value: PUBLIC

owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement

The formal template parameter that owns this element.
Subsets: Element.owner, ParameterableElement.templateParameter
Opposite: TemplateParameter.ownedParameteredElement

elementImport : ElementImport (0 *); -- source Namespace
importedMember : PackageableElement (0 *); -- source Namespace
member : NamedElement (0 *); -- source Namespace

A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
{readonly}
Derived union with sources: (ownedRule, ownedMember, importedMember, ownedUseCase, inheritedMember, feature, attribute, ownedTrigger, ownedBehavior, include, extensionPoint, extend)

ownedMember : NamedElement (0 *); -- source Namespace
ownedRule : Constraint (0 *); -- source Namespace
packageImport : PackageImport (0 *); -- source Namespace
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: no_association_to_use_case() : Boolean;
Description: UseCases can not have Associations to UseCases specifying the same subject.
Expression: true

Signature: must_have_name() : Boolean;
Description: A UseCase must have a name.
Expression: self.name -> notEmpty ()

Signature: cannot_include_self() : Boolean;
Description: A use case cannot include use cases that directly or indirectly include it.
Expression: not self.allIncludedUseCases()->includes(self)

Signature: binary_associations() : Boolean;
Description: UseCases can only be involved in binary Associations.
Expression: true

Operations:

Signature: allIncludedUseCases() : UseCase;
Description: The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.
The OCL used here is not normative.
Editor's notes: in is a reserved word.
Expression: result = self.include->union(self.include->collect(n | n.allIncludedUseCases()))
Original: result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))



Send questions or comments to xmi-interop@omg.org.