Lecture 22: Meta-Modelling

Size: px
Start display at page:

Download "Lecture 22: Meta-Modelling"

Transcription

1 Software Design, Modelling and Analysis in UML Lecture 22: Meta-Modelling main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

2 Contents & Goals Last Lecture: Inheritance in UML: concrete syntax Liskov Substitution Principle desired semantics This Lecture: Educational Objectives: Capabilities for following tasks/questions. What s the Liskov Substitution Principle? What is late/early binding? What is the subset, what the uplink semantics of inheritance? What s the effect of inheritance on LSCs, State Machines, System States? What s the idea of Meta-Modelling? Sprelim Content: The UML Meta Model Wrapup & Questions 2/63

3 Meta-Modelling: Idea and Example 3/ main

4 Meta-Modelling: Why and What Meta-Modelling is one major prerequisite for understanding the standard documents [OMG, 2007a, OMG, 2007b], and the MDA ideas of the OMG. The idea is simple: if a modelling language is about modelling things, and if UML models are and comprise things, then why not model those in a modelling language? Smm In other words: Why not have a model M U such that the set of legal instances of M U is the set of well-formed (!) UML models. 4/63

5 Meta-Modelling: Example For example, let s consider a class. A class has (on a superficial level) a name, any number of attributes, any number of behavioural features. Each of the latter two has a name and a visibility. Behavioural features in addition have Smm a boolean attribute isquery, any number of parameters, a return type. Can we model this (in UML, for a start)? 5/63

6 UML Meta-Model: Extract from UML 2.0 Standard Comment Element NamedElement name visibility type type Type 0..1 TypedElement RedefElement redefdelem Feature Namespace Classifier StructFeature BehavFeature Smm Class 0..1 Property Operation 0..1 Parameter 6/63

7 Meta-Modelling: Principle 7/ main

8 Modelling vs. Meta-Modelling Meta- Model (M2) Class name : Str Property name : Str Type name : Str Sprinciple Model (M1) Instance (M0) C v : Z :C v = 0 :Class name = C :Property name = v :Type name = Z So, if we have a meta model M U of UML, then the set of UML models is the set of instances of M U. A UML model M can be represented as an object instance-of diagram (or system state) wrt. the meta-model M U. Other view: An object diagram wrt. meta-model M U can (alternatively) be rendered as the UML model M. S = ({Z}, {C},{v}, {C v}), D Σ D S σ = {u {v 0}} 8/63

9 Well-Formedness as Constraints in the Meta-Model The set of well-formed UML models can be defined as the set of object diagrams satisfying all constraints of the meta-model. For example, [2] Generalization hierarchies must be directed and acyclical. A classifier cannot be both a transitively general and transitively specific classifier of the same classifier. not self. allparents()-> includes(self) [OMG, 2007b, 53] Sprinciple The other way round: Given a UML model M, unfold it into an object diagram O 1 wrt. M U. If O 1 is a valid object diagram of M U (i.e. satisfies all invariants from Inv(M U )), then M is a well-formed UML model. That is, if we have an object diagram validity checker for of the meta-modelling language, then we have a well-formedness checker for UML models. 9/63

10 The UML 2.x Standard Revisited 10/ main

11 Claim: Extract from UML 2.0 Standard Comment Element NamedElement name visibility type type Type 0..1 TypedElement RedefElement redefdelem Feature Namespace Classifier StructFeature BehavFeature Sumlmm Class 0..1 Property Operation 0..1 Parameter 11/63

12 Classes [OMG, 2007b, 32] StructuralFeature Relationship Classifier Classifier {redefines general} + /superclass Class * * {subsets classifier, subsets namespace, subsets featuringclassifier} + class subsettedproperty {subsets attribute, subsets ownedmember, ordered} +ownedattribute {subsets redefinedelement} + redefinedproperty * * * * * Property isderived : Boolean isreadonly : Boolean isderivedunion : Boolean /default : String aggregation : AggregationKind /IsComposite : Boolean +/opposite {subsets member, ordered} +memberend +association 2..* 0..1 {subsets memberend, subsets feature, subsets ownedmember, ordered} +ownedend * {subsets owner} +navigableownedend {subsets association, subsets namespace, subsets featuringclassifier} +owningassociation 0..1 * 0..1 {subsets owner} +owningproperty Association isderived : Boolean (subsets ownedelement} +defaultvalue ValueSpecification * Sumlmm {subsets namespace, subsets redefinitioncontext} +class 0..1 {subsets redefinitioncontext, subsets namespace, subsets featuringclassifier} +class 0..1 {subsets ownedmember, ordered} +nestedclassifier {subsets feature, subsets ownedmember, ordered} +ownedoperation Figure Classes diagram of the Kernel package * * Classifier Operation <<enumeration>> AggregationKind none shared composite {readonly, odered} +/endtype Type 1..* 12/63

13 Operations [OMG, 2007b, 31] Sumlmm Figure Operations diagram of the Kernel package 13/63

14 Operations [OMG, 2007b, 30] Sumlmm Figure Features diagram of the Kernel package 14/63

15 Classifiers [OMG, 2007b, 29] Sumlmm Figure Classifiers diagram of the Kernel package 15/63

16 Namespaces [OMG, 2007b, 26] Element NamedElement Name : String visibility : VisibilityKind /qualifiedname : String [0..1] [0..1] [0..1] <<enumeration>> VisibilityKind public private protected package {readonly, subsets member} PackageableElement visibility : VisibilityKind +importedmember * Namespace * {readonly, union, subsets owner} +/namespace {readonly, union} +/member NamedElement * * +/ownedmember {readonly, union, subsets member, subsets ownedelement} 0..1 DirectedRelationship Sumlmm Figure Namespaces diagram of the Kernel package {subsets source, subsets owner} + importingnamespace * ElementImport 1 +elementimport {subsets ownedelement} {subsets source, subsets owner} +importingnamespace 1 +packageimport {subsets ownedelement} visibility : VisibilityKind alias : String [0..1] * DirectedRelationship PackageImport visibility : VisibilityKind {subsets target} + importedelement 1 1 {subsets target} + importedpackage * 1 PackageableElement Package 16/63

17 Root Diagram [OMG, 2007b, 25] Sumlmm Figure Root diagram of the Kernel package 17/63

18 Interesting: Declaration/Definition [OMG, 2007b, 424] Sumlmm Figure Common Behavior 18/63

19 UML Architecture [OMG, 2003, 8] Meta-modelling has already been used for UML 1.x. Infrastructure (with semantics) Class, Object Action, Filmstrip Package, Snapshot For UML 2.0, the request for proposals (RFP) asked for a separation of concerns: Infrastructure and Superstructure. Superstructure (abstract syntax) Superstructure (concrete syntax) Class, State, Transition, Flow, ClassBox, StateBox, TransitionLine, One reason: sharing with MOF (see later) and, e.g., CWM. Diagram Interchange Node, Edge Figure 0-1 Overview of architecture Swhole UML MOF Core CWM Profiles 19/63

20 UML Superstructure Packages [OMG, 2007a, 15] CommonBehaviors Classes UseCases StateMachines Interactions Activities CompositeStructures AuxiliaryConstructs Actions Components Swhole Figure The top-level package structure of the UML Superstructure Deployments 20/63

21 Reading the Standard Table of Contents 1. Scope Conformance Language Units Compliance Levels Meaning and Types of Compliance Compliance Level Contents Normative References Terms and Definitions Symbols Additional Information Sreading 6.1 Changes to Adopted OMG Specifications Architectural Alignment and MDA Support On the Run-Time Semantics of UML The Basic Premises The Semantics Architecture The Basic Causality Model Semantics Descriptions in the Specification The UML Metamodel Models and What They Model Semantic Levels and Naming How to Read this Specification Specification format Diagram format Acknowledgements Part I - Structure Classes UML Superstructure Specification, v2.1.2 i 21/63

22 Reading the Standard Sreading Table of Contents 7.1 Overview Abstract Syntax Class Descriptions Abstraction (from Dependencies) AggregationKind (from Kernel) Association (from Kernel) Scope AssociationClass (from... AssociationClasses) BehavioralFeature (from Kernel) Conformance BehavioredClassifier (from... Interfaces) Class (from Kernel) Language Units Classifier......(from.... Kernel,..... Dependencies, PowerTypes) Comment (from Kernel) Compliance Levels Constraint (from.... Kernel) Meaning and Types of Compliance DataType (from.... Kernel) Dependency (from Dependencies) Compliance Level Contents DirectedRelationship (from.... Kernel) Element (from Kernel) Normative References ElementImport (from... Kernel) Enumeration (from Kernel) Terms and Definitions EnumerationLiteral (from... Kernel) Expression (from Kernel) Symbols Feature.....(from... Kernel) Generalization (from Kernel, PowerTypes) Additional Information GeneralizationSet (from.... PowerTypes) InstanceSpecification (from Kernel) Changes to Adopted OMG Specifications InstanceValue (from.... Kernel) Interface (from Interfaces) Architectural Alignment and MDA Support InterfaceRealization (from.... Interfaces) On the Run-Time Semantics of UML LiteralBoolean (from.... Kernel) LiteralInteger (from Kernel) The Basic Premises LiteralNull (from Kernel) The Semantics Architecture LiteralSpecification (from Kernel) The Basic Causality Model LiteralString (from Kernel) Semantics Descriptions in the Specification LiteralUnlimitedNatural... (from Kernel) The UML Metamodel MultiplicityElement (from.... Kernel) NamedElement (from Kernel, Dependencies) Models and What They Model Namespace (from Kernel) Semantic Levels and Naming OpaqueExpression (from Kernel) How to Read this Specification Operation (from.... Kernel,..... Interfaces) Package (from Kernel) Specification format PackageableElement (from Kernel) Diagram format PackageImport (from Kernel) Acknowledgements PackageMerge (from... Kernel) Parameter (from Kernel, AssociationClasses) ParameterDirectionKind (from Kernel) PrimitiveType (from Kernel) Part I - Structure Property (from Kernel, AssociationClasses) Realization (from Dependencies) RedefinableElement (from Kernel) Classes ii UML Superstructure Specification, v2.1.2 UML Superstructure Specification, v2.1.2 i 21/63

23 Sreading Reading the Standard Relationship (from Kernel) Slot (from Kernel) Overview StructuralFeature (from.... Kernel) Table of Contents 7.2 Abstract Syntax Substitution (from... Dependencies) Type (from Kernel) Class Descriptions TypedElement (from.... Kernel) Abstraction (from Dependencies) Usage (from Dependencies) AggregationKind (from Kernel) ValueSpecification (from Kernel) Association (from Kernel) VisibilityKind (from Kernel) Scope AssociationClass (from... AssociationClasses) Diagrams BehavioralFeature (from Kernel) Conformance BehavioredClassifier (from... Components Interfaces) Class (from Kernel) Language Units Classifier......(from.... Kernel,..... Dependencies, Overview... PowerTypes) Comment (from Kernel) Compliance Levels Constraint (from.... Kernel) Abstract syntax Meaning and Types of Compliance DataType (from.... Kernel) Class Descriptions Dependency (from Dependencies) Compliance Level Contents DirectedRelationship (from.... Kernel) Component (from BasicComponents, PackagingComponents) Element (from Kernel) Connector (from BasicComponents) Normative References ElementImport (from... Kernel) ConnectorKind (from BasicComponents) Enumeration (from Kernel) ComponentRealization (from BasicComponents) Terms and Definitions EnumerationLiteral (from... Kernel) Diagrams Expression (from Kernel) Symbols Feature.....(from... Kernel) Composite Structures Generalization (from Kernel, PowerTypes) Additional Information GeneralizationSet (from.... PowerTypes) Overview InstanceSpecification (from Kernel) Changes to Adopted OMG Specifications InstanceValue (from.... Kernel) Abstract syntax Interface (from Interfaces) Architectural Alignment and MDA Support InterfaceRealization (from Interfaces).... Class Descriptions On the Run-Time Semantics of UML LiteralBoolean (from.... Kernel) Class (from StructuredClasses) LiteralInteger (from Kernel) Classifier (from Collaborations) The Basic Premises LiteralNull (from Kernel) Collaboration (from Collaborations) The Semantics Architecture LiteralSpecification (from Kernel) CollaborationUse (from Collaborations) The Basic Causality Model LiteralString (from Kernel) ConnectableElement (from InternalStructures) Semantics Descriptions in the Specification LiteralUnlimitedNatural... (from Kernel) Connector (from InternalStructures) The UML Metamodel MultiplicityElement (from.... Kernel) ConnectorEnd (from InternalStructures, Ports) NamedElement (from Kernel, Dependencies) EncapsulatedClassifier... (from Ports) Models and What They Model Namespace (from Kernel) InvocationAction (from InvocationActions) Semantic Levels and Naming OpaqueExpression (from Kernel) Parameter (from Collaborations) How to Read this Specification Operation (from.... Kernel,..... Interfaces) Port (from Ports) Package (from Kernel) Property (from InternalStructures) Specification format PackageableElement (from Kernel) StructuredClassifier (from InternalStructures) Diagram format PackageImport (from Kernel) Trigger (from InvocationActions) Acknowledgements PackageMerge (from... Kernel) Variable (from StructuredActivities) Parameter (from Kernel, AssociationClasses) Diagrams ParameterDirectionKind (from Kernel) PrimitiveType (from Kernel) Part I - Structure Deployments Property (from Kernel, AssociationClasses) Realization (from Dependencies) RedefinableElement (from Kernel) Classes ii UML Superstructure Specification, v2.1.2 UML Superstructure Specification, v2.1.2 i UML Superstructure Specification, v2.1.2 iii 21/63

24 Reading the Standard Cont d Figure Class notation: attributes and operations grouped according to visibility Classifier (from Kernel, Dependencies, PowerTypes) A classifier is a classification of instances, it describes a set of instances that have features in common. Generalizations Namespace (from Kernel) on page 99 RedefinableElement (from Kernel) on page 130 Type (from Kernel) on page 135 Description A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers. A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. Attributes Window public size: Area = (100, 100) defaultsize: Rectangle protected visibility: Boolean = true private xwin: XWindow public display() hide() private attachx(xwin: XWindow) Sreading isabstract: Boolean If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers (e.g., as the target of general metarelationships or generalization relationships). Default value is false. Associations /attribute: Property [*] Refers to all of the Properties that are direct (i.e., not inherited or imported) attributes of the classifier. Subsets Classifier::feature and is a derived union. / feature : Feature [*] Specifies each feature defined in the classifier. Subsets Namespace::member. This is a derived union. / general : Classifier[*] Specifies the general Classifiers for this Classifier. This is derived. 52 UML Superstructure Specification, v /63

25 Reading the Standard Cont d Sreading generalization: Generalization[*] Specifies the Generalization relationships for this Classifier. These Generalizations navigate to more general classifiers in the generalization hierarchy. Subsets Element::ownedElement Window / inheritedmember: NamedElement[*] public size: Area = (100, 100) Specifies all elements inherited by this classifier from the general classifiers. Subsets Namespace::member. This is defaultsize: Rectangle derived. protected visibility: Boolean = true redefinedclassifier: Classifier [*] private References the Classifiers that are redefined by this Classifier. Subsets RedefinableElement::redefinedElement xwin: XWindow public Package Dependencies display() hide() substitution : Substitution private attachx(xwin: XWindow) References the substitutions that are owned by this Classifier. Subsets Element::ownedElement and NamedElement::clientDependency.) Figure Class notation: attributes and operations grouped according to visibility Package PowerTypes Classifier powertypeextent (from Kernel, : Dependencies, GeneralizationSet PowerTypes) Designates the GeneralizationSet of which the associated Classifier is a power type. A classifier is a classification of instances, it describes a set of instances that have features in common. Constraints Generalizations [1] The general classifiers are the classifiers referenced by the generalization relationships. Namespace (from Kernel) on page 99 general = self.parents() RedefinableElement (from Kernel) on page 130 [2] Generalization hierarchies must be directed and acyclical. A classifier cannot be both a transitively general and Type (from Kernel) transitively on page specific 135 classifier of the same classifier. not self.allparents()->includes(self) Description [3] A classifier may only specialize classifiers of a valid type. A classifier is a namespace self.parents()->forall(c whose members can self.mayspecializetype(c)) include features. Classifier is an abstract metaclass. A classifier is a type [4] and The can inheritedmember own generalizations, association thereby is derived making by it inheriting possible the to define inheritable generalization members of relationships the parents. to other classifiers. A classifier self.inheritedmember->includesall(self.inherit(self.parents()->collect(p can specify a generalization hierarchy by referencing its general p.inheritablemembers(self))) classifiers. A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. Package PowerTypes Attributes [5] The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the isabstract: Boolean Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of If true, the Classifier itself nor does may not its provide instances a complete also be its declaration subclasses. and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers (e.g., as the target of general metarelationships or generalization relationships). Additional Default Operations value is false. [1] The query allfeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as Associations inheritance, this will be a larger set than feature. /attribute: Property Classifier::allFeatures(): [*] Set(Feature); Refers to all of allfeatures the Properties = member->select(ocliskindof(feature)) that are direct (i.e., not inherited or imported) attributes of the classifier. Subsets Classifier::feature and is a derived union. [2] The query parents() gives all of the immediate ancestors of a generalized Classifier. / feature : Feature [*] Classifier::parents(): Set(Classifier); Specifies each feature defined in the classifier. Subsets Namespace::member. This is a derived union. parents = generalization.general / general : Classifier[*] Specifies the general Classifiers for this Classifier. This is derived. 52 UML Superstructure Specification, v2.1.2 UML Superstructure Specification, v /63

26 Sreading Reading the Standard Cont d [3] The query allparents() gives all of the direct and indirect ancestors of a generalized Classifier. generalization: Generalization[*] Classifier::allParents(): Set(Classifier); Specifies the Generalization allparents = self.parents()->union(self.parents()->collect(p relationships for this Classifier. These Generalizations p.allparents()) navigate to more general classifiers [4] in the The generalization query inheritablemembers() hierarchy. Subsets gives Element::ownedElement all of the members of a classifier that may be inherited in one of its descendants, Window / inheritedmember: subject NamedElement[*] to whatever visibility restrictions apply. public size: Area = (100, 100) Specifies all elements Classifier::inheritableMembers(c: inherited by this classifier Classifier): from the general Set(NamedElement); classifiers. Subsets Namespace::member. This is defaultsize: Rectangle derived. pre: c.allparents()->includes(self) protected visibility: Boolean = true redefinedclassifier: inheritablemembers Classifier [*] = member->select(m c.hasvisibilityof(m)) private References [5] the The Classifiers query hasvisibilityof() that are redefined determines by this Classifier. whether a Subsets named RedefinableElement::redefinedElement element is visible the classifier. By default all are visible. It is xwin: XWindow only called when the argument is something owned by a parent. public display() Package Dependencies Classifier::hasVisibilityOf(n: NamedElement) : Boolean; hide() substitution : Substitution pre: self.allparents()->collect(c c.member)->includes(n) private attachx(xwin: XWindow) References the substitutions if (self.inheritedmember->includes(n)) that are owned by this Classifier. thensubsets Element::ownedElement and NamedElement::clientDependency.) hasvisibilityof = (n.visibility <> #private) Figure Class notation: attributes and operations else grouped according to visibility Package PowerTypes hasvisibilityof = true Classifier powertypeextent (from Kernel, [6] : Dependencies, The GeneralizationSet query conformsto() PowerTypes) gives true for a classifier that defines a type that conforms to another. This is used, for example, Designates the in GeneralizationSet the specification of of which signature the conformance associated Classifier for operations. is a power type. A classifier is a classification of instances, Classifier::conformsTo(other: it describes a set of instances Classifier): that have Boolean; features in common. Constraints conformsto = (self=other) or (self.allparents()->includes(other)) Generalizations [1] The general classifiers [7] The are query the inherit() classifiers defines referenced how to by inherit the generalization a set of elements. relationships. Here the operation is defined to inherit them all. It is intended Namespace (from Kernel) on page to be 99 redefined in circumstances where inheritance is affected by redefinition. general = self.parents() RedefinableElement (from Kernel) Classifier::inherit(inhs: on page 130 Set(NamedElement)): Set(NamedElement); [2] Generalization hierarchies must be directed and acyclical. A classifier cannot be both a transitively general and Type (from Kernel) transitively on page specific 135inherit classifier = inhs of the same classifier. not self.allparents()->includes(self) [8] The query mayspecializetype() determines whether this classifier may have a generalization relationship to classifiers of Description the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be [3] A classifier may only specialize classifiers of a valid type. redefined by classifiers that have different specialization constraints. A classifier is a namespace self.parents()->forall(c whose members can self.mayspecializetype(c)) include features. Classifier is an abstract metaclass. Classifier::maySpecializeType(c : Classifier) : Boolean; A classifier is a type [4] and The can inheritedmember own generalizations, association thereby is derived making by it inheriting possible the to define inheritable generalization members of relationships the parents. to mayspecializetype = self.ocliskindof(c.ocltype) other classifiers. A classifier self.inheritedmember->includesall(self.inherit(self.parents()->collect(p can specify a generalization hierarchy by referencing its general p.inheritablemembers(self))) classifiers. A classifier is a redefinable element, Semantics meaning that it is possible to redefine nested classifiers. Package PowerTypes Attributes A classifier is a classification of instances according to their features. [5] The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the isabstract: Boolean Generalization A relationships Classifier may defined participate for that in GeneralizationSet. generalization relationships In other words, with a other power Classifiers. type may not An be instance instance of a of specific Classifier is If true, the Classifier itself nor does may not also its provide instances (indirect) a complete also be instance its declaration subclasses. of each and of can the typically general Classifiers. not be instantiated. Therefore, An abstract features specified for instances of the general classifier is intended to be used classifier by other are classifiers implicitly (e.g., specified as the for target instances of general of the metarelationships specific classifier. or generalization Any constraint applying to instances of the relationships). Additional Default Operations value general is false. classifier also applies to instances of the specific classifier. [1] The query allfeatures() Associations The specific gives semantics all of the of features how generalization in the namespace affects of the each classifier. concrete In general, subtype through of Classifier mechanisms varies. such All instances as of a inheritance, this classifier will be a have larger values set than corresponding feature. to the classifier s attributes. /attribute: Property Classifier::allFeatures(): [*] Set(Feature); Refers to all of allfeatures the Properties = member->select(ocliskindof(feature)) A that Classifier are direct defines (i.e., not a type. inherited Type or conformance imported) attributes between of generalizable the classifier. Classifiers Subsets is defined so that a Classifier conforms Classifier::feature and is a derived to itself union. and to all of its ancestors in the generalization hierarchy. [2] The query parents() gives all of the immediate ancestors of a generalized Classifier. / feature : Feature [*] Classifier::parents(): Set(Classifier); Specifies each feature defined in the classifier. Subsets Namespace::member. This is a derived union. parents = generalization.general / general : Classifier[*] Specifies the general Classifiers for this Classifier. This is derived. 54 UML Superstructure Specification, v UML Superstructure Specification, v2.1.2 UML Superstructure Specification, v /63

27 Sreading Reading the Standard Cont d Package PowerTypes [3] The query allparents() The notion gives of all power of the type direct was and inspired indirect by ancestors the notion of of a generalized power set. Classifier. A power set is defined as a set whose instances are generalization: Generalization[*] Classifier::allParents(): subsets. In Set(Classifier); essence, then, a power type is a class whose instances are subclasses. The powertypeextent association relates Specifies the Generalization allparents = self.parents()->union(self.parents()->collect(p a relationships Classifier with for this a set Classifier. of generalizations These Generalizations that p.allparents()) a) have a navigate common to specific more general Classifier, and b) represent a collection of subsets classifiers [4] in the The generalization query inheritablemembers() for hierarchy. that class. Subsets gives Element::ownedElement all of the members of a classifier that may be inherited in one of its descendants, Window / inheritedmember: subject NamedElement[*] to whatever visibility restrictions apply. public Semantic Variation Points size: Area = (100, 100) Specifies all elements Classifier::inheritableMembers(c: inherited by this classifier Classifier): from the general Set(NamedElement); classifiers. Subsets Namespace::member. This is defaultsize: Rectangle derived. pre: c.allparents()->includes(self) The precise lifecycle semantics of aggregation is a semantic variation point. protected visibility: Boolean = true redefinedclassifier: inheritablemembers Classifier [*] = member->select(m c.hasvisibilityof(m)) Notation private References [5] the The Classifiers query hasvisibilityof() that are redefined determines by this Classifier. whether a Subsets named RedefinableElement::redefinedElement element is visible the classifier. By default all are visible. It is xwin: XWindow only called when Classifier the argument is an abstract is something model owned element, by a and parent. so properly speaking has no notation. It is nevertheless convenient to define public Package Dependencies display() Classifier::hasVisibilityOf(n: in one place a NamedElement) default notation : available Boolean; for any concrete subclass of Classifier for which this notation is suitable. The hide() substitution : Substitution pre: self.allparents()->collect(c default notation for c.member)->includes(n) a classifier is a solid-outline rectangle containing the classifier s name, and optionally with private attachx(xwin: XWindow) References the substitutions if (self.inheritedmember->includes(n)) compartments that are owned separated by this Classifier. by then horizontal Subsets lines Element::ownedElement containing features or and other members of the classifier. The specific type of NamedElement::clientDependency.) hasvisibilityof classifier can = (n.visibility be shown in <> guillemets #private)above the name. Some specializations of Classifier have their own distinct notations. Figure Class notation: attributes and operations else grouped according to visibility The name of an abstract Classifier is shown in italics. Package PowerTypes hasvisibilityof = true Classifier powertypeextent (from Kernel, [6] : Dependencies, The GeneralizationSet query conformsto() An attribute PowerTypes) gives can true be shown for a classifier a text that string. defines The a format type that of conforms this string to is another. specified This in is the used, Notation for example, sub clause of Property Designates the in GeneralizationSet the specification (from of of Kernel, which signature the AssociationClasses) conformance associated Classifier for operations. on is page a power 123. type. A classifier is a classification of instances, Classifier::conformsTo(other: it describes a set of instances Classifier): that have Boolean; features in common. Constraints conformsto = Presentation (self=other) or (self.allparents()->includes(other)) Options Generalizations [1] The general classifiers [7] The are query the inherit() classifiers Any compartment defines referenced how to may by inherit the be generalization suppressed. a set of elements. A relationships. separator Here the line operation is not drawn is defined for to a suppressed inherit them compartment. all. It is intended If a compartment is Namespace (from Kernel) on page to be 99 redefined general = self.parents() suppressed, in circumstances no inference where inheritance can be drawn is affected about the by presence redefinition. or absence of elements in it. Compartment names can be used RedefinableElement (from Kernel) Classifier::inherit(inhs: on page 130 to remove Set(NamedElement)): ambiguity, if necessary. Set(NamedElement); [2] Generalization hierarchies must be directed and acyclical. A classifier cannot be both a transitively general and Type (from Kernel) transitively on page specific 135inherit classifier = inhs of the An same abstract classifier. Classifier can be shown using the keyword {abstract} after or below the name of the Classifier. not self.allparents()->includes(self) [8] The query mayspecializetype() determines whether this classifier may have a generalization relationship to classifiers of Description the specified type. The type, By default visibility, a classifier default, may multiplicity, specialize property classifiers string of the may same be or suppressed a more general from type. being It displayed, intended even to be if there are values [3] A classifier may only specialize classifiers of a valid type. redefined by classifiers in the model. that have different specialization constraints. A classifier is a namespace self.parents()->forall(c whose members can self.mayspecializetype(c)) include features. Classifier is an abstract metaclass. Classifier::maySpecializeType(c : Classifier) : Boolean; A classifier is a type [4] and The can inheritedmember own generalizations, association thereby The is derived individual making by it inheriting properties possible the to of define inheritable an attribute generalization members can be shown of relationships the parents. in columns to rather than as a continuous string. mayspecializetype = self.ocliskindof(c.ocltype) other classifiers. A classifier self.inheritedmember->includesall(self.inherit(self.parents()->collect(p can specify a generalization hierarchy by referencing its general p.inheritablemembers(self))) classifiers. Style Guidelines A classifier is a redefinable element, Semantics meaning that it is possible to redefine nested classifiers. Package PowerTypes Attribute names typically begin with a lowercase letter. Multi-word names are often formed by concatenating the words Attributes A classifier is a classification of instances according to their features. [5] The Classifier that maps to a GeneralizationSet and using may lowercase neither be for a all specific letters nor except a general for upcasing Classifier the in first any letter of the of each word but the first. isabstract: Boolean Generalization A relationships Classifier may defined participate for Center that in GeneralizationSet. generalization the name of the relationships classifier In other words, in boldface. with a other power Classifiers. type may not An be instance instance of a of specific Classifier is If true, the Classifier itself nor does may not also its provide instances (indirect) a complete also be instance its declaration subclasses. Center of each keyword and of can the typically (including general Classifiers. not stereotype be instantiated. Therefore, names) An in abstract plain features face specified within guillemets for instances above of the classifier general name. classifier is intended to be used classifier by other are classifiers implicitly (e.g., specified For as those the for target languages instances of general that of distinguish the metarelationships specific between classifier. or uppercase generalization Any constraint and lowercase applying characters, to instances capitalize of the names (i.e, begin them relationships). Additional Default Operations value general is false. classifier also applies with an to uppercase instances of character). the specific classifier. [1] The query allfeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as Associations The specific semantics of Left how justify generalization attributes and affects operations each concrete in plain subtype face. of Classifier varies. All instances of a inheritance, this classifier will be a have larger values set than corresponding feature. Begin attribute to the and classifier s operation names attributes. with a lowercase letter. /attribute: Property Classifier::allFeatures(): [*] Set(Feature); Show full attributes and operations when needed and suppress them in other contexts or references. Refers to all of allfeatures the Properties = member->select(ocliskindof(feature)) A that Classifier are direct defines (i.e., not a type. inherited Type or conformance imported) attributes between of generalizable the classifier. Classifiers Subsets is defined so that a Classifier conforms Classifier::feature and is a derived to itself union. and to all of its ancestors in the generalization hierarchy. [2] The query parents() gives all of the immediate ancestors of a generalized Classifier. / feature : Feature [*] Classifier::parents(): Set(Classifier); Specifies each feature defined in the classifier. Subsets Namespace::member. This is a derived union. parents = generalization.general / general : Classifier[*] Specifies the general Classifiers for this Classifier. UML This Superstructure is derived. Specification, v UML Superstructure Specification, v UML Superstructure Specification, v2.1.2 UML Superstructure Specification, v /63

28 Sreading Examples Reading the Standard Cont d Package PowerTypes [3] The query allparents() The notion gives of all power of the type direct was and inspired indirect by ancestors the notion of of a generalized power set. Classifier. A power set is defined as a set whose instances are generalization: Generalization[*] Classifier::allParents(): subsets. In Set(Classifier); essence, then, a power ClassAtype is a class whose instances are subclasses. The powertypeextent association relates Specifies the Generalization allparents = self.parents()->union(self.parents()->collect(p a relationships Classifier with for this a set name: Classifier. of generalizations StringThese Generalizations that p.allparents()) a) have a navigate common to specific more general Classifier, and b) represent a collection of subsets classifiers [4] in the The generalization query inheritablemembers() for hierarchy. that class. shape: Rectangle Subsets gives + Element::ownedElement size: all Integer of the [0..1] members of a classifier that may be inherited in one of its descendants, Window / inheritedmember: subject NamedElement[*] to whatever visibility restrictions / area: apply. Integer {readonly} public Semantic Variation height: Points Integer= 5 size: Area = (100, 100) Specifies all elements Classifier::inheritableMembers(c: inherited by this classifier Classifier): from the general Set(NamedElement); width: Integer classifiers. Subsets Namespace::member. This is defaultsize: Rectangle derived. pre: c.allparents()->includes(self) The precise lifecycle semantics of aggregation is a semantic variation point. protected visibility: Boolean = true redefinedclassifier: inheritablemembers Classifier [*] = member->select(m c.hasvisibilityof(m)) Notation private References [5] the The Classifiers query hasvisibilityof() that are redefined determines by this Classifier. whether a Subsets named RedefinableElement::redefinedElement element is visible the classifier. By default all are visible. It is xwin: XWindow only called when Classifier the argument is an abstract is something model ClassB owned element, by a and parent. so properly speaking has no notation. It is nevertheless convenient to define public Package Dependencies display() Classifier::hasVisibilityOf(n: in one place a NamedElement) default id notation {redefines: available name} Boolean; for any concrete subclass of Classifier for which this notation is suitable. The hide() substitution : Substitution pre: self.allparents()->collect(c default notation for c.member)->includes(n) a shape: classifier Square is a solid-outline rectangle containing the classifier s name, and optionally with private height = 7 attachx(xwin: XWindow) References the substitutions if (self.inheritedmember->includes(n)) compartments that are owned separated by this Classifier. by then horizontal Subsets lines Element::ownedElement containing features or and other members of the classifier. The specific type of / width NamedElement::clientDependency.) hasvisibilityof classifier can = (n.visibility be shown in <> guillemets #private)above the name. Some specializations of Classifier have their own distinct notations. Figure Class notation: attributes and operations else grouped according to visibility The name of an abstract Classifier is shown in italics. Package PowerTypes hasvisibilityof = true Figure Examples of attributes Classifier powertypeextent (from Kernel, [6] : Dependencies, The GeneralizationSet query conformsto() An attribute PowerTypes) gives can true be shown for a classifier a text that string. defines The a format type that of conforms this string to is another. specified This in is the used, Notation for example, sub clause of Property The attributes in Figure 7.30 are explained below. Designates the in GeneralizationSet the specification (from of of Kernel, which signature the AssociationClasses) conformance associated Classifier for operations. on is page a power 123. type. A classifier is a classification of instances, it describes a set of instances that have ClassA::name features in is common. an attribute with type String. Classifier::conformsTo(other: Classifier): Boolean; Constraints conformsto = Presentation (self=other) or (self.allparents()->includes(other)) Options ClassA::shape is an attribute with type Rectangle. Generalizations [1] The general classifiers [7] The are query the inherit() classifiers defines referenced how to by inherit ClassA::size the generalization a set of elements. is a public relationships. Here attribute the operation of type is Integer defined with to inherit multiplicity them all Any compartment may be suppressed. A separator line is not drawn for a suppressed compartment. It is intended If a compartment is Namespace (from Kernel) on page to be 99 redefined general = self.parents() suppressed, in circumstances no inference where inheritance ClassA::area can be drawn is is affected about a derived the by presence redefinition. attribute with or absence type Integer. of elements It is marked in it. Compartment as read-only. names can be used RedefinableElement (from Kernel) Classifier::inherit(inhs: on page 130 to remove Set(NamedElement)): ambiguity, if necessary. ClassA::height Set(NamedElement); is an attribute of type Integer with a default initial value of 5. [2] Generalization hierarchies must be directed and acyclical. A classifier cannot be both a transitively general and Type (from Kernel) transitively on page specific 135inherit classifier = inhs of the same classifier. ClassA::width is an attribute of type Integer. An abstract Classifier can be shown using the keyword {abstract} after or below the name of the Classifier. not self.allparents()->includes(self) [8] The query mayspecializetype() determines ClassB::id whether is this an attribute classifier that may redefines have a generalization ClassA::name. relationship to classifiers of Description the specified type. The type, By default visibility, a classifier default, may specialize classifiers of the same or a more general type. It intended to be [3] A classifier may only specialize classifiers of a valid type. ClassB::shape multiplicity, is property an attribute string that may redefines be suppressed ClassA::shape. from being It has displayed, type Square, even a specialization if there are values of Rectangle. redefined by classifiers in the model. that have different specialization constraints. A classifier is a namespace self.parents()->forall(c whose members can self.mayspecializetype(c)) include features. Classifier is an ClassB::height abstract metaclass. is an attribute that redefines ClassA::height. It has a default of 7 for ClassB instances that overrides the Classifier::maySpecializeType(c : Classifier) : Boolean; A classifier is a type [4] and The can inheritedmember own generalizations, association thereby The is derived individual making by it inheriting properties possible the to ClassA of define inheritable an attribute default generalization of members can 5. be shown of relationships the parents. in columns to rather than as a continuous string. mayspecializetype = self.ocliskindof(c.ocltype) other classifiers. A classifier self.inheritedmember->includesall(self.inherit(self.parents()->collect(p can specify a generalization hierarchy by referencing ClassB::width its general is p.inheritablemembers(self))) classifiers. a derived attribute that redefines ClassA::width, which is not derived. Style Guidelines A classifier is a redefinable element, Semantics meaning that it is possible to redefine An attribute nested classifiers. may also be shown using association notation, with no adornments at the tail of the arrow as shown in Figure Package PowerTypes Attribute names typically begin with a lowercase letter. Multi-word names are often formed by concatenating the words Attributes A classifier is a classification of instances according to their features. [5] The Classifier that maps to a GeneralizationSet and using may lowercase neither be for a all specific letters nor except a general for upcasing Classifier the in first any letter of the of each word but the first. isabstract: Boolean Generalization A relationships Classifier may defined participate for Center that in GeneralizationSet. generalization the name of the relationships classifier In other words, in boldface. with a other power Classifiers. type may not An be instance instance of a of specific Classifier is If true, the Classifier itself nor does may not also its provide instances (indirect) a complete also be instance its declaration subclasses. Center of each keyword and of can the typically (including general Classifiers. not stereotype be instantiated. Therefore, names) size An in abstract plain features face specified within guillemets for instances above of the classifier general name. classifier is intended to be used classifier by other are classifiers implicitly (e.g., specified For as those the for target languages instances Window of general that of distinguish the metarelationships specific between classifier. or uppercase generalization Any Area constraint and lowercase applying characters, to instances capitalize of the names (i.e, begin them relationships). Additional Default Operations value general is false. classifier also applies with an to uppercase instances of character). the specific classifier. 1 [1] The query allfeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as Associations The specific semantics of Left how justify generalization attributes and affects operations each concrete in plain subtype face. of Classifier varies. All instances of a inheritance, this classifier will be a have larger values set than corresponding feature. Begin attribute Figure to the and 7.31 classifier s operation - Association-like names attributes. with a notation lowercase for letter. attribute /attribute: Property Classifier::allFeatures(): [*] Set(Feature); Show full attributes and operations when needed and suppress them in other contexts or references. Refers to all of allfeatures the Properties = member->select(ocliskindof(feature)) A that Classifier are direct defines (i.e., not a type. inherited Type or conformance imported) attributes between of generalizable the classifier. Classifiers Subsets is defined so that a Classifier conforms Classifier::feature and is a derived to itself union. and to all of its ancestors in the generalization hierarchy. [2] The query parents() gives all of the immediate ancestors of a generalized Classifier. / feature : Feature [*] Classifier::parents(): Set(Classifier); Specifies each feature defined in the classifier. Subsets Namespace::member. This is a derived union. parents = generalization.general 56 UML Superstructure Specification, v2.1.2 / general : Classifier[*] Specifies the general Classifiers for this Classifier. UML This Superstructure is derived. Specification, v UML Superstructure Specification, v UML Superstructure Specification, v2.1.2 UML Superstructure Specification, v /63

Lecture 22: Meta-Modelling

Lecture 22: Meta-Modelling Software Design, Modelling and Analysis in UML Lecture 22: Meta-Modelling 2017-02-07 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany 22 2017-02-07 main Content

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML ontents & Goals Last Lecture: Live Sequence harts Semantics Software Design, Modelling and Analysis in UML Lecture 19: Inheritance II, Meta-Modelling 2012-02-08 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 21: Inheritance II 2014-02-05 21 2014-02-05 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

The packages that are explicitly merged from the InfrastructureLibrary are the following: PrimitiveTypes Constructs

The packages that are explicitly merged from the InfrastructureLibrary are the following: PrimitiveTypes Constructs 7 Classes 7.1 Overview The Classes package contains sub packages that deal with the basic modeling concepts of UML, and in particular classes and their relationships. Reusing packages from UML 2 Infrastructure

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 20: Inheritance I 2014-02-03 20 2014-02-03 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

02291: System Integration

02291: System Integration 02291: System Integration Introduction to UML Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019 What is the UML? Unified Modelling Language (UML) Family of graphical

More information

Attributes and Associations of Class Property

Attributes and Associations of Class Property and of Class Property By Anneke Kleppe, Klasse Objecten (a.kleppe@klasse.nl) Introduction The UML Infrastructure (3rd revised submission, dated 3 March 2003, document number: ad/2003-03-01) has recently

More information

Metamodeling directed relationships in UML

Metamodeling directed relationships in UML Basic modeling concepts in model-driven software engineering Braga, April 15-16, 2013 Gonzalo Génova ggenova@inf.uc3m.es http://www.kr.inf.uc3m.es/ggenova/ Knowledge Reuse Group Universidad Carlos III

More information

MODEL DRIVEN ARCHITECTURE (MDA)

MODEL DRIVEN ARCHITECTURE (MDA) Chapter #4 MODEL DRIVEN ARCHITECTURE (MDA) Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com Contents MDA UML (from a metamodeling

More information

UML 2.0 Infrastructure Specification

UML 2.0 Infrastructure Specification UML 2.0 Infrastructure Specification This OMG document replaces the submission document (ad/03-01-01) and the Draft Adopted specification (ptc/03-07-05). It is an OMG Final Adopted Specification and is

More information

Metamodeling with Metamodels. Using. UML/MOF including OCL

Metamodeling with Metamodels. Using. UML/MOF including OCL Metamodeling with Metamodels Using UML/MOF including OCL Introducing Metamodels (Wikipedia) A metamodel is a model of a model An instantiation of metamodel gives a model Metamodeling is the process of

More information

OMG Unified Modeling Language TM (OMG UML), Infrastructure

OMG Unified Modeling Language TM (OMG UML), Infrastructure Date: August 2011 OMG Unified Modeling Language TM (OMG UML), Infrastructure Version 2.4.1 OMG Document Number: formal/2011-08-05 Standard document URL: http://www.omg.org/spec/uml/2.4.1/infrastructure

More information

ITU-T Z.109. Specification and Description Language Unified modeling language profile for SDL-2010

ITU-T Z.109. Specification and Description Language Unified modeling language profile for SDL-2010 International Telecommunication Union ITU-T Z.109 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (04/2012) SERIES Z: LANGUAGES AND GENERAL SOFTWARE ASPECTS FOR TELECOMMUNICATION SYSTEMS Formal description

More information

UML Semantics 2. Contents. Section Title. This chapter contains the following sections.

UML Semantics 2. Contents. Section Title. This chapter contains the following sections. UML Semantics 2 Contents This chapter contains the following sections. Section Title Page Part 1 - Background Introduction 2-2 Language Architecture 2-4 Language Formalism 2-7 Part 2 - Foundation Foundation

More information

UML Class Diagrams 2. Martin Nečaský Dept. of Software Engineering Faculty of Mathematics and Physics Charles University in Prague

UML Class Diagrams 2. Martin Nečaský Dept. of Software Engineering Faculty of Mathematics and Physics Charles University in Prague UML Class Diagrams 2 Martin Nečaský Dept. of Software Engineering Faculty of Mathematics and Physics Charles University in Prague Previous Lecture Reminder What are UML class diagrams? basic constructs

More information

MOF and XMI. (version 2.0) by Philippe Nguyen March 24, 2005

MOF and XMI. (version 2.0) by Philippe Nguyen March 24, 2005 MOF and XMI (version 2.0) by Philippe Nguyen March 24, 2005 What should you get from this? A clear understanding of: The big picture of the MOF 2.0 and XMI 2.0 The motivation behind each standard and the

More information

Lecture 07: Class Diagrams II

Lecture 07: Class Diagrams II Software Design, Modelling and Analysis in UML Lecture 07: lass Diagrams II 2014-11-13 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany ontents & Goals Last Lecture:

More information

UML Metamodel version September 1997

UML Metamodel version September 1997 UML Metamodel version. September 997 This is the metamodel of the Unified Modeling Language (UML). It describes the constituents of all well-formed models that may be represented in the UML, using the

More information

OO Analysis and Design with UML 2 and UP

OO Analysis and Design with UML 2 and UP OO Analysis and Design with UML 2 and UP Dr. Jim Arlow, Zuhlke Engineering Limited Clear View Training 2008 v2.5 1 UML principles Clear View Training 2008 v2.5 2 1.2 What is UML? Unified Modelling Language

More information

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling

More information

A Concern-based Technique for Architecture Modelling Using the UML Package Merge

A Concern-based Technique for Architecture Modelling Using the UML Package Merge Electronic Notes in Theoretical Computer Science 163 (2006) 7 18 www.elsevier.com/locate/entcs A Concern-based Technique for Architecture Modelling Using the UML Package Merge Samir Ammour a,b,1,2 Philippe

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2

OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2 Date: November 2007 OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2 OMG Available Specification with Change Bars OMG Document Number: formal/2007-11-03 Standard document URL: http://www.omg.org/spec/uml/2.1.2/infrastructure/pdf

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 06: Class Diagrams I 2013-11-11 06 2013-11-11 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Course

More information

Unified Modeling Language (UML) Class Diagram

Unified Modeling Language (UML) Class Diagram 1 / 10 Unified Modeling Language (UML) Class Diagram Miaoqing Huang University of Arkansas Spring 2010 2 / 10 Outline 1 2 3 / 10 Class Diagram Class diagrams show the static structure of the classes that

More information

OMG Modeling Glossary B

OMG Modeling Glossary B OMG Modeling Glossary B This glossary defines the terms that are used to describe the Unified Modeling Language (UML) and the Meta Object Facility (MOF). In addition to UML and MOF specific terminology,

More information

8. UML Metamodel Getting Started

8. UML Metamodel Getting Started 8. UML Metamodel 8. UML Metamodel 287 8.1 Getting Started 8.1 Getting Started 288 Table 2-1 from Specification 8.1 Getting Started 289 M3 MetaClass MetaAssoc Class:MetaClass Class/AssocEnd:MetaAssoc M2

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 06: Class Diagrams I 2013-11-11 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Course Map UML W N E Model

More information

COSC 3351 Software Design. An Introduction to UML (I)

COSC 3351 Software Design. An Introduction to UML (I) COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt

More information

Assessing the Use of Slicing-based Visualizing Techniques on the Understanding of Large Metamodels

Assessing the Use of Slicing-based Visualizing Techniques on the Understanding of Large Metamodels Assessing the Use of Slicing-based Visualizing Techniques on the Understanding of Large Metamodels Arnaud Blouin, Naouel Moha, Benoit Baudry, Houari Sahraoui, Jean-Marc Jézéquel To cite this version: Arnaud

More information

Assessing UML Model Quality by Utilizing Metrics

Assessing UML Model Quality by Utilizing Metrics Assessing UML Model Quality by Utilizing Metrics Khanh-Hoang Doan Computer Science Department University of Bremen 28359 Bremen, Germany doankh@informatik.uni-bremen.de Martin Gogolla Computer Science

More information

Towards the Harmonisation of UML and SDL

Towards the Harmonisation of UML and SDL Towards the Harmonisation of UML and SDL Rüdiger Grammes and Reinhard Gotzhein Department of Computer Science University of Kaiserslautern 67653 Kaiserslautern, Germany {grammes,gotzhein}@informatik.uni-kl.de

More information

Metamodeling. 16. April 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 1

Metamodeling. 16. April 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 1 Metamodeling The slides of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics Group) 16. April 2012

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Basic Structural Modeling. Copyright Joey Paquet,

Basic Structural Modeling. Copyright Joey Paquet, Basic Structural Modeling Copyright Joey Paquet, 2000 1 Part I Classes Copyright Joey Paquet, 2000 2 Classes Description of a set of objects sharing the same attributes, operations and semantics Abstraction

More information

Unified Modeling Language: Infrastructure

Unified Modeling Language: Infrastructure Date: February 2007 Unified Modeling Language: Infrastructure version 2.1.1 (without change bars) formal/07-02-06 Copyright 2001-2003 Adaptive Copyright 2001-2003 Alcatel Copyright 2001-2003 Borland Copyright

More information

Slicing-based Techniques for Visualizing Large Metamodels

Slicing-based Techniques for Visualizing Large Metamodels Slicing-based Techniques for Visualizing Large Metamodels Arnaud Blouin, Naouel Moha, Benoit Baudry, Houari Sahraoui To cite this version: Arnaud Blouin, Naouel Moha, Benoit Baudry, Houari Sahraoui. Slicing-based

More information

Lecture 16: Hierarchical State Machines II

Lecture 16: Hierarchical State Machines II Software Design, Modelling and Analysis in UML Lecture 6: Hierarchical State Machines II 206-0-9 6 206-0-9 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

More information

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools UML Modeling I Instructor: Yongjie Zheng September 3, 2015 CS 490MT/5555 Software Methods and Tools Object-Oriented Design: Topics & Skills Rational Unified Process Unified Modeling Languages (UML) Provide

More information

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler Model-based Software Engineering (02341, spring 2017) Meta-modelling and Domain Specific Languages (DSLs) and Summary and Outlook Meta-modelling (and MOF) 3 Class Diagrams are models too PetriNet Object

More information

UML REFERENCE SHEETS. 2013, 2014 Michael Marking; all rights reserved, including moral rights. Web site:

UML REFERENCE SHEETS. 2013, 2014 Michael Marking; all rights reserved, including moral rights. Web site: UML Reference Sheets 2013, 2014 Michael Marking; all rights reserved, including moral rights. Web site: http://www.tatanka.com/ Revision Information This document was last revised 2014.03.02. The current

More information

Model Driven Development Unified Modeling Language (UML)

Model Driven Development Unified Modeling Language (UML) Model Driven Development Unified Modeling Language (UML) An Overview UML UML is a modeling notation standardized by OMG (proposal 1997, ver.1.1 in 1998, ver. 2.0 in 2004) now in 2.4.1 mature based on notations

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2013-10-28 03 2013-10-28 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) III. Meta-modelling 2 1. Background / Motivation Mid / end 90ties: CASE (Computer Aided Software Engineering) modelling tools become more popular code generation

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2013-10-28 03 2013-10-28 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 08: Class Diagrams II 2013-11-20 08 2013-11-20 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 07: Class Diagrams II 2009-11-12 07 2009-11-12 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

UML 2.0 Profile for ArchWare ADL: Coping with UML 2.0

UML 2.0 Profile for ArchWare ADL: Coping with UML 2.0 ArchWare Architecting Evolvable Software www.architecture-ware.org European RTD Project IST-2001-32360 UML 2.0 Profile for ArchWare ADL: Coping with UML 2.0 (Project Deliverable D1.8) Author: Editor: Flavio

More information

ATL Transformation. Catalogue of Model Transformations

ATL Transformation. Catalogue of Model Transformations 1. ATL TRANSFORMATION EXAMPLE: REMOVAL OF ASSOCIATION CLASSES... 1 2. ATL TRANSFORMATION OVERVIEW... 1 2.1. DESCRIPTION... 1 2.2. PURPOSE... 2 2.3. RULES SPECIFICATION... 2 2.4. ATL CODE... 4 3. REFERENCES...

More information

Softwaretechnik Model Driven Architecture Meta Modeling

Softwaretechnik Model Driven Architecture Meta Modeling Softwaretechnik Model Driven Architecture Meta Modeling Prof. Dr. Peter Thiemann Universität Freiburg 22.06.2009 PT (Univ. Freiburg) Softwaretechnik Model Driven Architecture Meta Modeling 22.06.2009 1

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2012-10-30 03 2012-10-30 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

ATL Transformation. Catalogue of Model Transformations

ATL Transformation. Catalogue of Model Transformations 1. ATL TRANSFORMATION EXAMPLE: REPLACE ASSOCIATION BY ATTRIBUTE... 1 2. ATL TRANSFORMATION OVERVIEW... 2 2.1. DESCRIPTION... 2 2.2. PURPOSE... 2 2.3. RULES SPECIFICATION... 2 2.4. ATL CODE... 3 3. REFERENCES...

More information

Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Chapter 11 Object and Object- Relational Databases

Chapter 11 Object and Object- Relational Databases Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational

More information

/50 5/50 2/50 3/50 6/50. UML-Notationsübersicht. Teil 1/4. Figure Examples of navigable ends. enda. endb main

/50 5/50 2/50 3/50 6/50. UML-Notationsübersicht. Teil 1/4. Figure Examples of navigable ends. enda. endb main a c e g i b d f h j * * Software Design, Modelling and Analysis in UML Lecture 07: Class Diagrams II 20--30 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany UML

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

UML 2.5: Specification Simplification

UML 2.5: Specification Simplification A division of Data Access Technologies, Inc. UML 2.5: Specification Simplification Presented at the Third Biannual Workshop on Eclipse Open Source Software and OMG Open Specifications Ed Seidewitz Timeline

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 07: A Type System for Visibility 2013-11-18 07 2013-11-18 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

Inheritance and Interfaces

Inheritance and Interfaces Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting UNIT II Syllabus Introduction to UML (08 Hrs, 16 Marks) a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting b. Background, UML Basics c. Introducing UML 2.0 A Conceptual Model

More information

UML PROFILING AND DSL

UML PROFILING AND DSL UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced

More information

Developing Shlaer-Mellor Models Using UML

Developing Shlaer-Mellor Models Using UML Developing Shlaer-Mellor Models Using UML Stephen J. Mellor Neil Lang Project Technology, Inc. 10940 Bigge Street San Leandro, California 94577 (510) 567-0255 http://www.projtech.com This position paper

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

Unified Modeling Language 2.0 Proposal

Unified Modeling Language 2.0 Proposal ad/yyyy-mm-dd Date: 25 January 2002 Revised submission to OMG RFPs ad/00-09-01 and ad/00-09-02: Unified Modeling Language 2.0 Proposal version 0.671 (draft) Submitters: Alcatel Computer Associates Enea

More information

Chapter 8: Enhanced ER Model

Chapter 8: Enhanced ER Model Chapter 8: Enhanced ER Model Subclasses, Superclasses, and Inheritance Specialization and Generalization Constraints and Characteristics of Specialization and Generalization Hierarchies Modeling of UNION

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

More information

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods Outline The Unified Modeling Language Opportunities and Challenges for Formal Methods An update on UML Language definition Tools A precise OO meta-modeling facility - MMF Stuart Kent University of Kent

More information

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture

More information

12 Tutorial on UML. TIMe TIMe Electronic Textbook

12 Tutorial on UML. TIMe TIMe Electronic Textbook TIMe TIMe Electronic Textbook 12 Tutorial on UML Introduction......................................................2.................................................3 Diagrams in UML..................................................3

More information

8. Polymorphism and Inheritance

8. Polymorphism and Inheritance 8. Polymorphism and Inheritance Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch/info1 Objectives Describe polymorphism and inheritance in general Define interfaces

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

Element. ModelElement. GeneralizableElement isroot : Boolean isleaf : Boolean isabstract : Boolean. +type. Method body : ProcedureExpression

Element. ModelElement. GeneralizableElement isroot : Boolean isleaf : Boolean isabstract : Boolean. +type. Method body : ProcedureExpression Element name : Name +constrainedelement.. ElementOwnership visibility : VisibilityKind +ownedelement +stereotypeconstraint Feature ownerscope : ScopeKind visibility : VisibilityKind +feature +namespace

More information

Metamodeling and Metaprogramming

Metamodeling and Metaprogramming TDDD05 / DF4900 Metamodeling and ming Linköpings universitet Some slides by courtesy of U. Assmann, IDA / TU Dresden. Introduction to metalevels 2. Different Ways of ming 3. UML Metamodel and MOF 4. Component

More information

StarUML Documentation

StarUML Documentation StarUML Documentation Release 2.0.0 MKLab November 20, 2014 Contents 1 Basic Concepts 3 1.1 Project.................................................. 3 1.2 Model Element, View Element, and Diagram..............................

More information

UML 2 SEMANTICS AND APPLICATIONS

UML 2 SEMANTICS AND APPLICATIONS UML 2 SEMANTICS AND APPLICATIONS Edited by KEVIN LANO A JOHN WILEY & SONS, INC., PUBLICATION UML 2 SEMANTICS AND APPLICATIONS UML 2 SEMANTICS AND APPLICATIONS Edited by KEVIN LANO A JOHN WILEY & SONS,

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 20: Inheritance III 2012-02-14 20 2012-02-14 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M)

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M) CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M) Sample Deployment diagram Component diagrams are different in

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual

More information

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L Inheritance Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 9.4 1 Inheritance Inheritance allows a software developer to derive

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 6 UML Introduction Structural diagrams Basics What is? Please explain

More information

A UML 2 Profile for Variability Models and their Dependency to Business Processes

A UML 2 Profile for Variability Models and their Dependency to Business Processes A UML 2 Profile for Variability Models and their Dependency to Business Processes Birgit Korherr and Beate List Women s Postgraduate College for Internet Technologies Institute of Software Technology and

More information

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017 IDERA ER/Studio Software Architect Evaluation Guide Version 16.5/2016+ Published February 2017 2017 IDERA, Inc. All rights reserved. IDERA and the IDERA logo are trademarks or registered trademarks of

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML ourse Map ontents & Goals UML W N E Last Lecture: OL Semantics Software Design, Modelling and Analysis in UML Lecture 05: lass Diagrams I 2011-11-15 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

UNIT-II Introduction to UML

UNIT-II Introduction to UML UNIT-II Introduction to UML - P. P. Mahale UML OVERVIEW OF UML :- We need a Modeling Language! We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development

More information

Better Metadata Management through Better Metamodels

Better Metadata Management through Better Metamodels Better Metadata Management through Better Metamodels Issues to consider when developing a metamodel, and why you might care GK Khalsa khalsa@objectrad.com Objectrad, Temecula, CA Discussion The role of

More information

Metamodeling and Metaprogramming

Metamodeling and Metaprogramming TDDD05 Component-Based Software Metamodeling and Metaprogramming 1. Introduction to metalevels 2. Different Ways of Metaprogramming 3. UML Metamodel and MOF 4. Component markup U. Assmann: Invasive Software

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2004 Vol. 3, No. 7, July-August 2004 UML 2 Activity and Action Models Part 5: Partitions

More information

ATL Transformation Examples. The KM3 to Metric ATL transformation

ATL Transformation Examples. The KM3 to Metric ATL transformation s The KM3 to Metric ATL transformation - version 0.1 - September 2005 by ATLAS group LINA & INRIA Nantes Content 1 Introduction... 1 2 The KM3 to Metrics ATL transformation... 1 2.1 Transformation overview...

More information

Lecture 10: State Machines Overview

Lecture 10: State Machines Overview Software Design, Modelling and Analysis in UML Lecture 10: State Machines Overview 2015-12-03 10 2015-12-03 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

More information

UNIT-II I. BASIC STRUCTURAL MODELING

UNIT-II I. BASIC STRUCTURAL MODELING UNIT-II I. BASIC STRUCTURAL MODELING Contents: 1. Classes 2. Relationships 3. Common Mechanisms 4. Diagrams 1. Classes: Terms and Concepts: A class is a description of a set of objects that share the same

More information

UML Notation Guide 3

UML Notation Guide 3 UML Notation Guide 3 This guide describes the notation for the visual representation of the Unified Modeling Language (UML). This notation document contains brief summaries of the semantics of UML constructs,

More information

Extending profiles with stereotypes for composite concepts 1

Extending profiles with stereotypes for composite concepts 1 Extending profiles with stereotypes for composite concepts 1 Dick Quartel, Remco Dijkman, Marten van Sinderen Centre for Telematics and Information Technology, University of Twente, PO Box 217, 7500 AE

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information