Ontologies Reasoning Components Agents Simulations Architectural Modeling with UML2 Composite Structures and Components Jacques Robin.

Slides:



Advertisements
Similar presentations
SEG4110 – Advanced Software Design and Reengineering TOPIC D Metamodelling.
Advertisements

UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
UML (Sequence Diagrams, Collaboration and State Chart Diagrams) Presentation By - SANDEEP REDDY CHEEDEPUDI (Student No: ) - VISHNU CHANDRADAS (Student.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega
Basic Concepts in Component-Based Software Engineering
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
C OMPONENT & D EPLOYMENT D IAGRAMS Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
UML – Class Diagrams.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Component and Deployment Diagrams
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Ontologies Reasoning Components Agents Simulations Basic Structural Modeling with UML2 Jacques Robin.
Ontologies Reasoning Components Agents Simulations Agent Modeling Language: An Overview Wendell Véras Vinícius Remígio Jacques Robin.
The Unified Modeling Language (UML) Class Diagrams.
COMS W4156: Advanced Software Engineering
Ontologies Reasoning Components Agents Simulations Agent Modeling Language: Behavioral Models Rafael Oliveira Ricson Santana Vinícius Remigo Jacques Robin.
An Introduction to Software Architecture
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
CBSE 2014 Modeling Components with UML. Bibliography Modelling components in UML – Main text: Kim Hamilton, Russell Miles, Learning UML 2.0, OReilly,
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
UML / UML 2.0 Diagrams (Part I) 1. Overview of the 13 diagrams of UML Structure diagrams 1.Class diagram 2.Composite structure diagram (*) 3.Component.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega. PLAN OF TALK  Introduction about components  Components and component diagrams in uml 2.0  Case study.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
CS212: Object Oriented Analysis and Design Lecture 33: Class and Sequence Diagram.
Class diagrams Terézia Mézešová.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
Object Modeling THETOPPERSWAY.COM. Object Modelling Technique(OMT)  Building a model of an application domain and then adding implementation.
® IBM Software Group A Metamodeling Approach to Pattern Specification Maged Elaasar 1,2, Dr. Lionel Briand 1, Dr. Yvan Labiche 1 1 Carleton University,
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
UML (Unified Modeling Language)
1 IS 0020 Program Design and Software Tools Unified Modeling Language Lecture 13 April 13, 2005.
Integrating BPMN and SoaML Based on an example from SoaML spec.
Integrating BPMN and SoaML Based on an example from SoaML spec.
Appendix 3 Object-Oriented Analysis and Design
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
COMPONENT & DEPLOYMENT DIAGRAMS
Object-Oriented Analysis and Design
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
Unified Modeling Language
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
State Machine Diagrams
Object Oriented Analysis and Design
Chapter 20 Object-Oriented Analysis and Design
Object-Oriented Knowledge Representation
Appendix A Object-Oriented Analysis and Design
An Introduction to Software Architecture
Software Components Jacques Robin.
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
DataTypes Nigel Davis
Presentation transcript:

Ontologies Reasoning Components Agents Simulations Architectural Modeling with UML2 Composite Structures and Components Jacques Robin

Outline  UML2 Structured Classifiers  Key Concepts  Concrete Visual Syntax and Examples  Meta-Model  Link between Meta-Model and Visual Syntax  UML2 Encapsulated Classifiers  Key Concepts  Concrete Visual Syntax and Examples  Meta-Model  Link between Meta-Model and Visual Syntax  UML2 Components  Key Concepts  Concrete Visual Syntax and Examples  Meta-Model  Link between Meta-Model and Visual Syntax

UML2 Structured Classifiers  New to UML2  A UML2 structured classifier C can have special properties called parts that can be connected within the containing context of C to realize one of its behaviors  The part-whole relationship between a part and its containing structured classifier is distinct but derived from the composition relationship between a class and its composite containing class  Whereas a composition property of a kernel classes represents a context- independent relationship from the kernel “whole” class to the “part” class,  the part property of a structured classifier represents a context-dependent relationship from a structured “whole” class to the “part” class  Similarly, the connection relationship between two parts of a containing structured classifier is distinct but derived from the association relationship between two classes  Whereas an association represents a context-independent relationships between two classes,  the connection between two classes that are parts of a containing structured classifier is valid only within the context of this container

Name Attributes Operations NestedClassifiers Parts UML2 Structured Classifier Compartments Nested Classes, Components, Interfaces & Associations linking their attributes, Realizations, Usages & Generalizations Encapsulated within containing Kernel::Class Classes, Components, Interfaces & Connectors linking them as parts or elements connected to parts in context of containing CompositeStructures::Class

Composed Class x Structured Class Composition: context independent whole-part relationship Association: context independent relationship StructuredClass/Part: context-dependent whole-part relationship Connector: relationship dependent of containing StructuredClass StructuredClass/ ClassConnectedToPart: relationship dependent of containing StructuredClass Parts Compartment

* Structured Class: Meta-Model Structured Classifier Classifier ConnectableElement TypedElement Structural Feature Property Connector 0..1 ownedAttribute * 0..1 /part * 0..1 ownedConnector * ConnectorEnd role /definingEnd Association type 0..1 attribute * 0..1 partWithPort redfinedConnector * 2..* * Type Kernel::Class 0..1 type /role MultiplicityElementFeature Encapsulated Classifier EncapsulatedClassifiers:: Class

Class x Composite Structure Diagrams: Link to Meta-Model CS::Class.name CS::ClassCS::Class.part = Property CS::Class.ownedConnector.ConnectorEnd.role = Property CS::Class.role.upper = CS::Class.role.lower = Integer CS::Class.ownedConnector.ConnectorEnd = ConnectorEnd CS::Class.ownedConnector = Connector CS::Class.ownedConnector.name CS::Class.ownedConnector.type.name CS::Class.role = Property CS::Class.part.type = K::Class K::Class K::Class.ownedAttribute.isComposite = true K::Class.ownedAttribute.association = Association K::Class.ownedAttribute.association.name K::Class.ownedAttribute.upper = K::Class.ownedAttribute.lower K::Class.name K::Class.ownedAttribute.name

Composite Structure Diagram: Classes

Composite Structure Diagram: Objects InstanceSpecification PackageableElementElement Slot ValueSpecification Classifier StructuralFeature LiteralSpecification InstanceValue OpaqueExpression LiteralBoolean LiteralInteger LiteralString LiteralUnlimitedNaturalExpression 0..1 * * 0..* * 0..1 TypedElement Class

Composite Structure Diagram: Objects InstanceSpecification PackageableElementElement Slot ValueSpecification Classifier StructuralFeature LiteralSpecification InstanceValue OpaqueExpression LiteralBoolean LiteralInteger LiteralString LiteralUnlimitedNaturalExpression 0..1 * * 0..* * 0..1 TypedElement Class NamedElement InstanceSpecification.classifier.ownedConnector.name InstanceSpecification.classifier.name InstanceSpecification.classifier.parts.role.name InstanceSpecification.classifier.parts.name

UML2 Encapsulated Class  New to UML2  Specializes Structured Classifier  An instances of an encapsulated class (encapsulated object) interacts with its environment and its internal parts only through typed interaction points called ports  A port is an interaction point specification used by an encapsulated class to either:  Provide a service to its environment specified by a provided interface that types the port  Request a service from its environment specified by a requested interface that types the port  Ports provide a second level encapsulation indirection beyond the first one provided by interfaces:  Encapsulated parts are connected indirectly through their ports,  whereas simple parts are connected directly.

UML2 Ports  Ports allow run-time assembly of encapsulated classes into a containing class to compose a complex service from simpler ones  Instantiation of an encapsulated class with internal parts which are recursively encapsulated class is a complex process that involves:  Instantiating each nested encapsulated class  Instantiating each of their ports into an interaction point  Instantiating each of their associations into a connector between two such interaction points  In this internal assembly process, two ports can only be connected only if the provided interface of one is conformant to the requested interface of the other  This conformance can be:  Simple, merely in terms of matching interface types  More complex in terms of pre and post-condition constraints on each operation of the ports’ respective interfaces  Even more complex in terms of protocol state machines associated to either the ports or their interfaces  A protocol state machine describes a precise, constrained sequence of externally visible states through which the encapsulated class can go through  It specifies for each state in the sequence the restricted subset of operations that can be invoked by the encapsulated class’ environment through the provided port  It also specifies the next state resulting from the invocation of a given operation in a given state

Name Attributes Operations NestedClassifiers Parts UML2 Encapsulated Classifier Compartments Classes, Connectors linking them through their Ports as parts or elements connected to parts in context of containing CompositeStructures::Class Nested Classes, Generalizations, Ports, Associations linking their attributes, Encapsulated within containing Kernel::Class Ports

* Encapsulated Class: Meta-Model Structured Classifier Classifier ConnectableElement TypedElement Structural Feature Property Connector 0..1 ownedAttribute * 0..1 /part * 0..1 ownedConnector * ConnectorEnd role /definingEnd Association type 0..1 attribute * 0..1 partWithPort redfinedConnector * 2..* * Type Kernel::Class 0..1 type /role MultiplicityElementFeature Encapsulated Classifier EncapsulatedClassifiers:: Class Port ownedPort Interface * /required * * /provided * redfinedPort ProtocolStateMachine protocol * protocol 0..1 StateMachine ProtocolConformance 0..1 Relationship * * 0..1 conformance specificMachine generalMachine * *

Composite Structure Diagram with Encapsulated Classes: Link to Meta-Model CS::Class.ownedPort.type = CS::Class.ownedPort.providedInterface -> union(CS::class.ownedPort.requiredInterface) Class.ownedConnector.ConnectorEnd.partWithPort Class.ownedConnector.ConnectorEnd.partWithPort.name Class Class.ownedPort.providedInterface Class.ownedPort.requiredInterface Class.ownedPort.requiredInterface.name Class.ownedPort.providedInterface.name Class.ownedPort Class.ownedPort.name Class.part Class.ownedConnector Class.ownedConnector.name Class.ownedConnector.ConnectorEnd Class.role Class.part.type = Class Class.ownedConnector.ConnectorEnd.upper = Class.ownedConnector.ConnectorEnd.lower Class.name

Composite Structure Diagram with Encapsulated Classes: More Examples  Part multiplicity can also appear in the top right corner of the part rectangle  The type of a port can also appear after its name and “:”  The multiplicity of a port can also appear after its name or type between “[ ]”  The service provided by an encapsulated class C by connecting to one of its port can be realized either:  By one (or several) part(s) of C  By C itself, in this case the port square is linked by a line to a state appearing inside C’s part compartment

UML2 Components  New to UML2 for all lifecycle stages except deployment  Specialize encapsulated classes  The behaviors that it provides to its environment are only accessible through its provided interface(s)  The behaviors that it expects its environment to provide to it are only accessible through its required interface(s)  Through these associated interfaces, a UML2 component defines an abstract behavioral type independent of its realization  The interfaces of a UML2 component can be either:  Directly associated to it, or  Indirectly associated to it through its ports.  The abstract behavior type specified by a UML2 component can be realized either:  Directly by the component itself;  Indirectly by the assembly of its internal parts;  Indirectly by a set of external classifiers.  A UML2 packageable component specializes a UML2 component by grouping all the artifacts involved in the component specification or realization into a package

UML2 Components  A UML2 component may:  Delegate part of the realization of a service that it provides to its environment to one of its internal parts;  Delegate a service request from one of its part to its environment.  Component connectors specialize encapsulated class connectors by:  Being associated to a behavior designed by contract  i.e., it guarantees to its environment that all post-conditions of all its provided operations will be satisfied whenever they are called in a way that satisfies all their pre-conditions;  i.e., its environment guarantees that all post-condition of all its requested operations will be satisfied whenever it calls these operations in a way that satisfies all their pre-conditions;  Sub-categorizing into:  Delegation connector between a containing component and its parts;  Assembly connector between two parts of an containing component

> Name Attributes Operations NestedClassifiers Parts UML2 Component Compartments Classes, Components, Interfaces & Connectors linking them through their Ports as parts or elements connected to parts in context of containing CompositeStructures::Class Nested Classes, Components, Ports, Interfaces & Associations linking their attributes, Realizations, Usages & Generalizations Encapsulated within containing Kernel::Class Ports

UML2 Component: Meta-Model Encapsulated Classifier EncapsulatedClassifiers:: Class Port ownedPort Interface * /required * * /provided * redfinedPort * * 0..1 Component /required /provided * * Structured Classifier CS::Connector 0..1 ownedConnector * Components::Connector kind:ConnectorKind > ConnectorKind assembly delegate 0..1 /ownedConnector * Behavior contract * * ComponentRealization Realization 0..1 * PackageableElement 0..1 * packagedElement

Component Diagram without Interface Operations: Link to Meta-Model Component Component.name Component.providedInterface Component.providedInterface.name Component.requiredInterface Component.requiredInterface.name

Component Diagram with Interface Operations: Link to Meta-Model Component Component.name Interface Realization Usage Component.providedInterfaceComponent.requiredInterface Component.requiredInterface.name Component.providedInterface.name Component.providedInterface.operation

Component Diagram Nested Classifiers Compartment: Link to Meta-Model Component Component.name NestedClassifiersCompartment Component. nestedClassifier. ownedAttribute. isComposite = true Component.nestedClassifier = Class Component.nestedClassifier = Association Component. nestedClassifier.name Component. nestedClassifier.name Component.nestedClassifier.ownedAttribute.upper = Component.nestedClassfier.ownedAttribute.lower Component. providedInterface Component. providedInterface. name Component. requiredInterface. name Component. requiredInterface Component. nestedClassifier. ownedAttribute. name

Component Diagram Parts Compartment: Link to Meta-Model Component. ownedPort Component. ownedPort PartsCompartment Component.ownedConnector Component.part.type = Component Component.part.type.name Component.ownedConnector.kind = #delegate Component. ownedConnector. kind = #assembly Component.ownedConnector.ConnectorEnd.type Component. ownedConnector. ConnectorEnd. type Component.name Component Component. providedInterface Component. providedInterface. name Component. requiredInterface Component. requiredInterface. name