ontologies reasoning components agents simulations structural modeling with uml2 jacques robin

31
Ontologi es Reasonin g Component s Agents Simulatio ns Structural Structural Modeling with Modeling with UML2 UML2 Jacques Robin

Upload: leslie-wilkerson

Post on 13-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

OntologiesReasoningComponentsAgentsSimulations

Structural Modeling Structural Modeling with UML2with UML2

Jacques Robin

Page 2: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

OutlineOutline

UML2 x UML1 UML2 meta-model package structure UML2 Diagrams Classes Associations Objects and links Interfaces Ports and components Packages Templates Active classes, objects and parts

Page 3: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

UML2: What is new?UML2: What is new?

New purposes: Model-driven development Whole life-cycle component based development Real-time systems engineering Fully refined modeling with semi-formal notation (OCL)

New diagrams: Component diagram Composite structure diagram Timing diagram

New design: Separates:

Abstract syntax, a MOF meta-model Visual syntax, the Diagram Interchange (DI) standard Semantics

Decomposes each part for reuse in a hierarchy of MOF packages linked by embedding and merge relationships

Page 4: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

UML2: New usesUML2: New uses

UML2 is so comprehensive that it can be used for new purposes not initially envisioned by OMG

Agent-oriented software engineering and intelligent system development

Engineering semantic web ontologies and services Teaching course in any field through modeling and meta-

modeling the presented concepts to visually and precisely structure them

Page 5: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

UML2: Internal StructureUML2: Internal Structure

Over 30 Sub-packages defining:• Classifiers (Classes, Interfaces, etc.)• Types• Associations• Packages• Properties• Constraints

UML2 Infrastructure

Over 50 Sub-packages defining:• Components• Composite structures• Deployments• Common behaviors (Times, Durations, Events, Signals, etc.)• Actions• Activities• Interactions• State machines• Use cases• Profiles• Templates

UML2 Superstructure

6 Sub-packages defining:• Types• Expressions• Type value semantic domains• Expression evaluation semantic do mains• Type value semantic mapping• Expression value semantic mapping

OCL2

Defines diagrams’ visual layout

Diagram Interchange

MOF2

EMOF CMOF

merge

UML2

merge

merge

merge

Page 6: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

UML2: Internal StructureUML2: Internal Structure

UML2 Superstructure

Structure

Classes

CompositeStuctures

Components

Deployments

Behavior

CommonBehaviors

Activities

Actions

Interactions StateMachines UseCases

Supplement

AuxiliaryConstructs

Profiles

Page 7: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

UML2 DiagramsUML2 Diagrams

Requirements Analysis Design Testing Deployment

Structural Modeling

Class (OCL)

Object

Component (OCL)

Class

Object

Composite structure

Class

Object

Composite structure

Component

Class (OCL)

Object

Component (OCL)

Deployment

Behavioral Modeling

Use-case

Activity

Protocol state machine

Activity

State machineBehavioralProtocol

InteractionSequenceCommunicationInteraction overview

Timing

Activity

State machineBehavioralProtocol

InteractionSequenceCommunicationInteraction overview

Timing

Use-case

Timing

Page 8: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Simplified MOF Meta-Model of itselfSimplified MOF Meta-Model of itself

InstanceSpecification

Parameter*

Generalization

*

AssociationClass

AssociationClass

DataType

PrimitiveType Enumeration

Interface*

1..*Relationship

Relationship

NamedElement

Constraint

*

TypedElementType

Property

ValueSpecification

Classifier

Feature Classifier

RedefinableElement

*

Element

*

NamedElement

BehaviorallFeature StructuralFeature

Operation

*

Page 9: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Classes: AttributesClasses: Attributes

Common characteristics of the class members

Fields: Base or derived (isDerived) Visibility (public, protected,

private, package) Name Type (Primitive Built-In or

Used-Defined Enumerations) Initial default value Properties:

isReadOnly Object attributes: different

value for each object Class attributes: same value

for all objects Attributes for MDA: as many

fields as possible!

Page 10: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Classes: OperationsClasses: Operations

Common signature of services provided by the class members

Fields: Visibility Name Return type Properties: isQuery, isOrdered,

isUnique Input parameter

Direction Name Type Multiplicity Default value Properties

Object operations: called on objects Class operations: called to

manipulate class attributes Operations for MDA: as many fields

as possible!

Page 11: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

AssociationsAssociations

Association: Generic relation between N classifiers

Fields: One or two Names Navigation direction Two Ends, each with:

One Multiplicity Range (default = 1) Zero to One role Zero to one Qualifier

Qualifier: needed to distinguish different instances of a one-to-many or many-to-many association

Navigation: Role if present Otherwise destination class name

Associations for MDA: as many fields as possible!

Page 12: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Association ClassesAssociation Classes

Class connected to an association and not to any of its ends

Allows associating properties and behaviors to an association

One object of the association class for each link of the connected association

A one-to-many or many-to-many association class cannot be substituted by a simple class and a pair of simple associations

Example: Ca has objects A1, A2, A3, A4 Cb has objects B1, B2, B3, B4 Extent of association class Cc between Ca

and Cb with * multiplicity at both ends has necessarily 16 instances

Class Cc associated to Ca through association Aca and to Cb through association Acb could have only 4 instances

Elevatorcontrol

Queue Elevator

Difference with: ?

4

Page 13: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

N-ary AssociationsN-ary Associations

Single association between N classes

Different from N-1 binary associations

Example: Ca has objects A1,

A2 Cb has objects B1,

B2 Cc has objects C1,

C2 No link in the

ternary association Ca-Cb-Cc corresponding to pair of links A1-B1, B2-C1

Page 14: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Aggregation AssociationsAggregation Associations

Association with “part-whole” semantics

Associate composite class to its building blocks

Static, definitional characteristic of the “whole” class In contrast to composite

structure diagrams that model dynamic, configuration characteristic of the containing class

Shared aggregation: Many-to-many aggregation

Page 15: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Composition AssociationsComposition Associations

Special case of one-to-one or one-to-many aggregation where part(s) cannot exist(s) without the unique whole

Deletion of the whole must therefore always be followed by automatic deletion of the parts

Page 16: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Class generalizationsClass generalizations

Taxonomic relation between a class and one of its more general direct super-class

Special case of generalization between any two classifiers Several generalizations form a taxonomic tree free of generalization

cycles Sub-classifier inherits the features from all its direct super-classifiers Private attributes and operations not accessible from sub-classes Protected attributes and operations accessible from sub-classes but

not from associated classes UML generalizations allow multiple inheritance

and overriding Instances of a sub-class must

satisfy all the constraints on all its super-classes (principle of substituability)

Page 17: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Abstract ClassesAbstract Classes

Class that cannot be instantiated Only purpose: factor gradual refinements of common and distinct structures

and behaviors down a taxonomic hierarchy Abstract operation: common signatures of distinct implementations specified in

subclasses Supports polymorphism: generic call signature to distinct operations, with

automatic dispatch to the implementation appropriate to each specific call instance

Page 18: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Generalization SetsGeneralization Sets

Subclass set that can be labeled as: complete or incomplete overlapping or disjoint

Complete and disjoint generalization sets form a partition of the super-class

Sub-subclass can specialize members of two overlapping generalization sets

Page 19: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Power TypesPower Types

Generalization set of a super-class defined in terms of a class associated to it

Subclasses of each power type inherits features from the associated class of the super-class that defines the power type

Allows separation of orthogonal concerns Useful for MDA as a rich modeling element

Page 20: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Derived Attributes, Derived Attributes, Classes and AssociationsClasses and Associations

Some class diagram elements can be entirely derived from other primitive ones

Derivation rules provided in { } near the derived element or as OCL constraint

Explicit derivable information key and rules for it are key for MDA

Page 21: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Constrained AssociationsConstrained Associations

Properties and special graphical notation can express a limited set of constraints among associations

Other constraints expressed in OCL Constraints key for MDA

Page 22: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Objects and LinksObjects and Links

Object Diagram contains: Specific (named) or generic

(named after role, unnamed) instances of classes

Possibly several instances of the same class

Specific instances of associations (links) among objects

Possibly several instances of the same association

Illustrates specific instantiation patterns of associated class diagram

Page 23: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

InterfacesInterfaces

Classifier allowing to insulate classes, packages and components from one another for plug-and-play assembly and substitution

Concrete class: attributes + operation signatures + operation implementations + instantiation

Abstract class and Interface: attributes + operation signatures But a concrete class realizes services specified in an interfaces, while it

specializes the structure and behaviors whose signature they inherit from an abstract class

Other classifiers can use these services independently of how they are realized Explicit, class-based notation more precise and thus preferred for MDA

Page 24: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

UML 2.0 Component Meta-ModelUML 2.0 Component Meta-Model

Class

Component

EncapsulatedClassifier

StrcuturedClassifierpart *

required

**

provided

ConnectableElementConnectorEnd2..* *

Connector

*

Interface

Classifier

*

Property

Structural Feature

Type

Classifier

TypedElement

Association

PackagableElement

Port*

Page 25: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

PortsPorts

Feature of a classifier that links it to: A provided interface which operations that the classifier realizes A set of required interfaces to be provided by the deployment environment

for the classifier to realize the provided interface Fields:

Name Multiplicity Host classifier Provided interface Required interfaces

Page 26: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Composite Structures: ExamplesComposite Structures: Examples

Express dynamic, run-time whole-part relationships Same class can be part of multiple wholes in multiple

configurations Different from unique, static composition aggregation

Page 27: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

PackagesPackages

Group of elements creating a namespace A pure design-time entity, that might not be reflected at run-time Model element can only belong to a single package and is deleted

whenever its package is deleted Relations between packages:

Generalization Dependencies: nesting (sub-package), import, access (private import) and

merge

Page 28: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

PackagesPackages

Page 29: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Package MergePackage Merge

Integrate elements of two packages into a resulting “merged” package, collapsing common elements into a single one

Redundancy-free cut and paste

Page 30: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

TemplatesTemplates

Partially specified class, refined by instantiation of parameters Alternative way to define derived class Key for parametric patterns

Page 31: Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin

Active Classes, Objects and PartsActive Classes, Objects and Parts

Active classes are associated to a thread

Active objects have pro-active behavior, executing an operation not invoked by any other object

Active objects execute concurrently

Active classes/objects can be composite structures, containing both active and passive classes/objects as parts

What is an agent? An active object that is

also a component instance!