Interface IUseCase
The public interface for UseCase
[DefaultImplementationType(typeof(UseCase))]
[XmlDefaultImplementationType(typeof(UseCase))]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//UseCase")]
public interface IUseCase : IBehavioredClassifier, IClassifier, ITemplateableElement, IType, IPackageableElement, IParameterableElement, IRedefinableElement, INamespace, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
- Inherited Members
Properties
Extend
The Extend relationships owned by this UseCase. <p>From package UML::UseCases.</p>
[Browsable(false)]
[XmlElementName("extend")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("extension")]
IOrderedSetExpression<IExtend> Extend { get; }
Property Value
ExtensionPoint
The ExtensionPoints owned by this UseCase. <p>From package UML::UseCases.</p>
[Browsable(false)]
[XmlElementName("extensionPoint")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("useCase")]
IOrderedSetExpression<IExtensionPoint> ExtensionPoint { get; }
Property Value
Include
The Include relationships owned by this UseCase. <p>From package UML::UseCases.</p>
[Browsable(false)]
[XmlElementName("include")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("includingCase")]
IOrderedSetExpression<IInclude> Include { get; }
Property Value
Subject
The subjects to which this UseCase applies. Each subject or its parts realize all the UseCases that apply to it. <p>From package UML::UseCases.</p>
[XmlElementName("subject")]
[XmlAttribute(true)]
[XmlOpposite("useCase")]
ISetExpression<IClassifier> Subject { get; }
Property Value
Methods
AllIncludedUseCases()
The query allIncludedUseCases() returns the transitive closure of all UseCases (directly or indirectly) included by this UseCase. result = (self.include.addition->union(self.include.addition->collect(uc | uc.allIncludedUseCases()))->asSet()) <p>From package UML::UseCases.</p>
ISetExpression<IUseCase> AllIncludedUseCases()
Returns
Binary_associations(object, object)
UseCases can only be involved in binary Associations. Association.allInstances()->forAll(a | a.memberEnd.type->includes(self) implies a.memberEnd->size() = 2)
bool Binary_associations(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Cannot_include_self(object, object)
A UseCase cannot include UseCases that directly or indirectly include it. not allIncludedUseCases()->includes(self)
bool Cannot_include_self(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Must_have_name(object, object)
A UseCase must have a name. name -> notEmpty ()
bool Must_have_name(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
No_association_to_use_case(object, object)
UseCases cannot have Associations to UseCases specifying the same subject. Association.allInstances()->forAll(a | a.memberEnd.type->includes(self) implies ( let usecases: Set(UseCase) = a.memberEnd.type->select(oclIsKindOf(UseCase))->collect(oclAsType(UseCase))->asSet() in usecases->size() > 1 implies usecases->collect(subject)->size() > 1 ) )
bool No_association_to_use_case(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.