Table of Contents

Interface IUseCase

Namespace
NMF.Interop.Uml
Assembly
NMF.UMLInterop.dll

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

IOrderedSetExpression<IExtend>

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

IOrderedSetExpression<IExtensionPoint>

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

IOrderedSetExpression<IInclude>

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

ISetExpression<IClassifier>

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

ISetExpression<IUseCase>

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

Must_have_name(object, object)

A UseCase must have a name. name -> notEmpty ()

bool Must_have_name(object diagnostics, object context)

Parameters

diagnostics object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool