+ All Categories
Home > Documents > OMG’s Model Driven Architecture Davide Buscaldi D.I.S.I.

OMG’s Model Driven Architecture Davide Buscaldi D.I.S.I.

Date post: 18-Dec-2015
Category:
View: 220 times
Download: 3 times
Share this document with a friend
Popular Tags:
63
OMG’s Model Driven OMG’s Model Driven Architecture Architecture Davide Buscaldi Davide Buscaldi D.I.S.I. D.I.S.I.
Transcript

OMG’s Model Driven OMG’s Model Driven ArchitectureArchitecture

Davide BuscaldiDavide Buscaldi

D.I.S.I.D.I.S.I.

SummarySummary

1. Introduction1. Introduction 2. MDA Overview2. MDA Overview 3. Developing in MDA3. Developing in MDA 4. MDA in the Practice4. MDA in the Practice 5. References5. References

1. Introduction1. Introduction

A heterogeneous world…A heterogeneous world…

Programming languages: Programming languages: (see also: the DoD survey) ~3 million COBOL Programmers~3 million COBOL Programmers ~1.6 million VB Programmers~1.6 million VB Programmers ~1.1 million C/C++ Programmers~1.1 million C/C++ Programmers

Operating systems:Operating systems: Unix, MacOS, Windows(3.1->XP),PalmOSUnix, MacOS, Windows(3.1->XP),PalmOS Embedded devicesEmbedded devices

Networks:Networks: Ethernet, IP, USB, FireWireEthernet, IP, USB, FireWire Bluetooth, 802.11b, HomeRFBluetooth, 802.11b, HomeRF

Where can we agree?Where can we agree?

Hetereogenity hinders the Hetereogenity hinders the development of enterprise distributed development of enterprise distributed systemssystems

There will not be consensus onThere will not be consensus on HardwareHardware Operating systemsOperating systems Network protocolsNetwork protocols Programming languagesProgramming languages

We can agree at an higher levelWe can agree at an higher level MiddlewareMiddleware

Hetereogenity hinders the Hetereogenity hinders the development of enterprise distributed development of enterprise distributed systemssystems

There will not be consensus onThere will not be consensus on HardwareHardware Operating systemsOperating systems Network protocolsNetwork protocols Programming languagesProgramming languages

We can agree at an higher levelWe can agree at an higher level MiddlewareMiddleware

MiddlewareMiddleware

A software layer that masks A software layer that masks hetereogeneityhetereogeneity

Placed between operating systems Placed between operating systems and application componentsand application components

Middleware proliferationMiddleware proliferation

Middleware itself has proliferated:Middleware itself has proliferated: CORBACORBA COM / DCOM / MTSCOM / DCOM / MTS Java / EJBJava / EJB XML / SOAPXML / SOAP C# / .NETC# / .NET

None of them prevails over the None of them prevails over the othersothers

The problem remainsThe problem remains

The Object Management The Object Management Group (OMG)Group (OMG)

An open membership and no-profit An open membership and no-profit consortiumconsortium

Produces and mantains computer Produces and mantains computer industry specifications for industry specifications for interoperable enterprise interoperable enterprise applicationsapplications

Who are OMG?Who are OMG?

OMG’s MilestonesOMG’s Milestones

1989

1991

1996

1997

2001

OMG is OMG is foundedfounded

CORBA CORBA 1.0, IDL1.0, IDL

CORBA CORBA 2.02.0

UML, MOF, UML, MOF, XMI, CWMXMI, CWM

MDAMDA

2. MDA Overview2. MDA Overview

What is the MDA?What is the MDA?

An approach to IT system An approach to IT system specification that separates the specification that separates the specification of system functionality specification of system functionality from the specification of the from the specification of the implementation of implementation of thatthat functionality functionality on a particular technology on a particular technology platform

““Design once, build it on any Design once, build it on any platform”platform”

Basic concepts of MDABasic concepts of MDA

A A modelmodel is a formal specification of the is a formal specification of the function, structure and/or behaviour of a function, structure and/or behaviour of a systemsystem Examples:Examples:

Source code is a modelSource code is a model An UML-based specification is a modelAn UML-based specification is a model

Models of different systems are Models of different systems are structured explicitly into:structured explicitly into: Platform Independent Models (PIM)Platform Independent Models (PIM) Platform Specific Models (PSM)Platform Specific Models (PSM)

Platform Independent Platform Independent Model (PIM)Model (PIM)

A “formal” specification of the A “formal” specification of the structure and function of a system structure and function of a system that abstracts away technical that abstracts away technical detaildetail

Expressed using UMLExpressed using UML

PIM: an examplePIM: an example

Platform Specific Model Platform Specific Model (PSM)(PSM)

Specifies how the functionality Specifies how the functionality specified in a PIM is realized on a specified in a PIM is realized on a particular platformparticular platform

Expressed using UML extended Expressed using UML extended with platform specific with platform specific UML profiles

PSM: an examplePSM: an example

MDA metamodelMDA metamodel

MOF

Other languages

UML

Metamodel

PIM Mapping techniques

PSM Mapping techniques

PIM

PSM

Infrastructure

<<expressed <<expressed with>>with>>

<<expressed <<expressed with>>with>>

<<expressed <<expressed with>>with>>

<<based <<based on>>on>>

1..n1..n

<<based <<based on>>on>>

1..n1..n

Refactoring Refactoring from PSM to from PSM to PIMPIM

<<described <<described with>>with>>

1..n1..n

<<described <<described with>>with>>

1..n1..n

Mapping Mapping from PIM to from PIM to PIMPIM

1..n1..n

Mapping Mapping from PIM to from PIM to PSMPSM

1..n1..n

Mapping Mapping from PSM to from PSM to PSMPSM

1..n1..n

<<depends <<depends on>>on>>

<<independant <<independant of>>of>>

MDA in a SnapshotMDA in a Snapshot

Core Core TechnologieTechnologie

ss

Core Target Core Target PlatformsPlatforms

Pervasive Pervasive ServicesServices

Vertical Vertical DomainsDomains

3. Developing in MDA3. Developing in MDA

System Development System Development Lifecycle and the MDA Lifecycle and the MDA approachapproach

UML MOF UML MOF CWMCWM

TimeTime

PIM to PIM PIM to PIM mappingsmappings

PIM to PSM PIM to PSM mappings mappings

(projection on (projection on a specific a specific platform)platform)

PSM to PSM to PSM PSM

mappingsmappings

Developing in MDA – Step Developing in MDA – Step 1:1:the PIM (1/2)the PIM (1/2)

All MDA development projects start with All MDA development projects start with the creation of a PIMthe creation of a PIM

PIM at this level represents business PIM at this level represents business functionality and behaviour, undistorted functionality and behaviour, undistorted by technology detailsby technology details

MDA application-modeling tools contain MDA application-modeling tools contain representations of Pervasive Services representations of Pervasive Services and Domain Facilities allowing them to and Domain Facilities allowing them to be used and/or incorporated in the be used and/or incorporated in the application via a menu selectionapplication via a menu selection

Developing in MDA – Step Developing in MDA – Step 1:1:the PIM (2/2)the PIM (2/2)

PIM

Pervasive Services ModelCallsCalls

Domain Facilities

Model

CallsCalls

Developing in MDA – Step Developing in MDA – Step 2:2:the PSM (1/2)the PSM (1/2)

Once the first iteration is complete, Once the first iteration is complete, the PIM is input to the mapping the PIM is input to the mapping step which will produce a PSMstep which will produce a PSM

Code is partially automatic and Code is partially automatic and partially hand-writtenpartially hand-written

PIM can be mapped either to a PIM can be mapped either to a single platform or to multiple single platform or to multiple platformsplatforms

Developing in MDA – Step Developing in MDA – Step 2:2:the PSM (2/2)the PSM (2/2)

PIM

CORBA Model

Maps toMaps to

Java/EJB Model

Maps toMaps to

Other Model……

Maps toMaps to

Developing in MDA – Step Developing in MDA – Step 3:3:Generating Application Generating Application (1/2)(1/2)

An MDA tool generates all or most An MDA tool generates all or most of the implementation code for the of the implementation code for the deployment technology selected by deployment technology selected by the developerthe developer

Re-integration on new platforms Re-integration on new platforms can be done by reverse engineering can be done by reverse engineering the existing application into a the existing application into a model and redeploymodel and redeploy

Developing in MDA – Step Developing in MDA – Step 3:3:Generating Application Generating Application (2/2)(2/2)

PIM

CORBA Model

Maps toMaps to

Java/EJB Model

Maps toMaps to

Other Model……

Maps toMaps to

CORBA Java/EJB Other……

Maps toMaps to Maps toMaps to Maps toMaps to

4. MDA in the Practice4. MDA in the Practice

MDA Adoption StatusMDA Adoption Status

Adoption of MDA is at an early Adoption of MDA is at an early stagestage

UML profiles underway:UML profiles underway: CORBA (adopted)CORBA (adopted) EJB (adopted)EJB (adopted) SOAP/XML (in process)SOAP/XML (in process) .NET (to be started).NET (to be started)

UML 2.0 in processUML 2.0 in process

Future TrendsFuture Trends

““A market for MDA will be created as OO A market for MDA will be created as OO modeling and development tool vendors modeling and development tool vendors incorporate MDA into their offerings”incorporate MDA into their offerings”

““It will be two or three years before It will be two or three years before mature MDA tools emerge”mature MDA tools emerge”

““This is the most exciting enterprise This is the most exciting enterprise software initiative I’ve seen since UML” software initiative I’ve seen since UML” (Paul Harmon, Senior consultant and Market (Paul Harmon, Senior consultant and Market Analyst, CUTTER consortium, 2001)Analyst, CUTTER consortium, 2001)

Early AdoptersEarly Adopters

Interactive Objects Software GmbHInteractive Objects Software GmbH ArcStylerArcStyler

Kennedy CarterKennedy Carter iUML, iCCGiUML, iCCG

KabiraKabira Adaptive Realtime InfrastructureAdaptive Realtime Infrastructure

Secant technologiesSecant technologies Model-Driven InfrastructureModel-Driven Infrastructure

Sun’s NetBeans was added to this Sun’s NetBeans was added to this list on May 7th 2002list on May 7th 2002

……stay tuned!stay tuned!

Conclusions (1/2)Conclusions (1/2)

Abstracting out the structure and Abstracting out the structure and behaviour of a system in the PIM behaviour of a system in the PIM makes easier:makes easier: To validate the correctness of the To validate the correctness of the

modelmodel To produce implementations on To produce implementations on

different platformsdifferent platforms The application of tool supported The application of tool supported

solutionssolutions

Conclusions (2/2)Conclusions (2/2)

The major drawback is that MDA The major drawback is that MDA does not provide a standard for the does not provide a standard for the specification of mappingsspecification of mappings Different implementation of mappings Different implementation of mappings

can generate very different code or can generate very different code or modelsmodels

This can create dependencies between This can create dependencies between the software and the mapping solution the software and the mapping solution usedused

5. References5. References

Bibliography (1/3)Bibliography (1/3) MDA Specification:MDA Specification:

Model Driven Architecture specification, OMG Model Driven Architecture specification, OMG Architecture board, July 2001Architecture board, July 2001

Introduction and overview of MDA:Introduction and overview of MDA: Model Driven Architecture: An introduction, R.M. Model Driven Architecture: An introduction, R.M.

SoleySoley Model Driven Architecture, Richard M.Soley (OMG Model Driven Architecture, Richard M.Soley (OMG

CEO), November 2000CEO), November 2000 CWM and MOF definitions:CWM and MOF definitions:

Model-Driven Architecture: Vision, Standards and Model-Driven Architecture: Vision, Standards and Emerging Technologies, John D.Poole, ECOOP Emerging Technologies, John D.Poole, ECOOP April 2001April 2001

Bibliography (2/3)Bibliography (2/3) CWM examples:CWM examples:

Enterprise CORBA 2001 – CWM, Pete RivettEnterprise CORBA 2001 – CWM, Pete Rivett System Development Lifecycle in MDA:System Development Lifecycle in MDA:

Developing in OMG’s Model-Driven architecture, Developing in OMG’s Model-Driven architecture, Jon Siegel, November 2001Jon Siegel, November 2001

Middleware definition:Middleware definition: Software Engineering and Middleware: A Software Engineering and Middleware: A

Roadmap, W.EmmerichRoadmap, W.Emmerich The DoD survey on PLs:The DoD survey on PLs:

A survey of Computer Programming Languages A survey of Computer Programming Languages Currently used in the DoD, A.Hook et al., 1995Currently used in the DoD, A.Hook et al., 1995

Bibliography (3/3)Bibliography (3/3)

Conclusions and future trends:Conclusions and future trends: Pratical experiences in the application Pratical experiences in the application

of MDA, M. de Miguel et al.of MDA, M. de Miguel et al. MDA: An Idea whose time has come, MDA: An Idea whose time has come,

Paul HarmonPaul Harmon

Kennedy Carter’s xMDA:Kennedy Carter’s xMDA: F-16 Modular Mission Computer F-16 Modular Mission Computer

Application Software, Lauren E.Clark et Application Software, Lauren E.Clark et al.al.

WebliographyWebliography

MDA documentation:MDA documentation: http://www.omg.org/mdahttp://www.omg.org/mda

ArcStyler:ArcStyler: http://www.io-software.com/ashttp://www.io-software.com/as

Kennedy Carter’s iUML and iCCG:Kennedy Carter’s iUML and iCCG: http://www.kc.comhttp://www.kc.com

NetBeans:NetBeans: http://www.netbeans.orghttp://www.netbeans.org

The EndThe End

PlatformPlatform

Technological and engineering Technological and engineering details that are irrelevant to the details that are irrelevant to the fundamental functionality of a fundamental functionality of a software componentsoftware component

UML ProfileUML Profile A standardized set of extensions A standardized set of extensions

(stereotypes and tagged values)(stereotypes and tagged values) Defines an UML environment Defines an UML environment

tailored to a particular use, such as tailored to a particular use, such as modeling for a specific platformmodeling for a specific platform

UML profile for CORBA was UML profile for CORBA was standardized in 2000 standardized in 2000

Common Warehouse Common Warehouse Metamodel (1/2)Metamodel (1/2) OMG’s data warehouse standardOMG’s data warehouse standard Enable easy interchange of Enable easy interchange of

warehouse and business intelligence warehouse and business intelligence metadata betweenmetadata between warehouse toolswarehouse tools warehouse platforms andwarehouse platforms and metadata repositoriesmetadata repositories

in distributed heterogenous environments.in distributed heterogenous environments.

Defined using MOFDefined using MOF

Common Warehouse Common Warehouse Metamodel (2/2)Metamodel (2/2)

Comprised of a number of constituent Comprised of a number of constituent metamodels representing:metamodels representing: Data resourcesData resources AnalysisAnalysis Warehouse managementWarehouse management Foundational componentsFoundational components

of a typical data warehousing/business of a typical data warehousing/business intelligence environmentintelligence environment

Drawn using UML profile for MOFDrawn using UML profile for MOFMore on More on CWM…CWM…

Example: the Relational Example: the Relational MetamodelMetamodel

CWM: correspondances CWM: correspondances between modelsbetween models

Catalog/Schema

Table ColumnRelational

RecordRecordFile FieldRecordDef

XMLSchema AttributeElementType

ClassPackageObjectOriented

Attribute

RowSet Row ColumnValue

RecordSet FieldValue

Record

Document Element

ObjectExtent DataValue

MetadataMetadata DataDataAreaArea

DataValue

MOF (Meta Object Facility)MOF (Meta Object Facility) OMG’s standard for defining metamodelsOMG’s standard for defining metamodels Provides standard modeling and Provides standard modeling and

interchange constructs used in MDAinterchange constructs used in MDA UML and CWM are defined in terms of UML and CWM are defined in terms of

MOF constructsMOF constructs The three main metadata modeling The three main metadata modeling

constructs provided by the MOF are:constructs provided by the MOF are: ClassClass AssociationAssociation PackagePackage

MappingsMappings MappingMapping is defined as a set of rules is defined as a set of rules

and techniques used to modify one and techniques used to modify one model in order to get another model in order to get another modelmodel

Mappings are described using UMLMappings are described using UML

RefiningRefining

Makes a model less abstractMakes a model less abstract Permits “zooming” in (and out of) a Permits “zooming” in (and out of) a

model:model:

PIM to PIM mappingPIM to PIM mapping Used when models are enhanced, Used when models are enhanced,

refined or filtered during the refined or filtered during the development lifecycle without development lifecycle without needing any platform dependant needing any platform dependant informationinformation

Example: analysis to design models Example: analysis to design models transformationtransformation

PIM to PSM mapping (1/3)PIM to PSM mapping (1/3) This transformation is used when the PIM This transformation is used when the PIM

is projected to the execution is projected to the execution infrastructure Projection is based on platform Projection is based on platform

characteristicscharacteristics These characteristics should be described These characteristics should be described

using a UML description (and eventually a using a UML description (and eventually a profile for describing common platform profile for describing common platform concepts)concepts)

There are multiple ways to transform a There are multiple ways to transform a PIM into a corresponding PSMPIM into a corresponding PSM

More on More on mappingmapping

PIM to PSM mapping: PIM to PSM mapping: techniques (2/3)techniques (2/3) A human could study the PIM and:A human could study the PIM and:

Manually construct a platform-specific Manually construct a platform-specific modelmodel

Utilize models of known refinement Utilize models of known refinement patterns to reduce the burden in patterns to reduce the burden in constructing the PSMconstructing the PSM

PIM to PSM mapping: PIM to PSM mapping: techniques (3/3)techniques (3/3) An algorithm could:An algorithm could:

Be applied to the PIM and create a Be applied to the PIM and create a skeleton of the PSM to be manually skeleton of the PSM to be manually enhanced by handenhanced by hand

Create a complete platform specific Create a complete platform specific model from a complete platform model from a complete platform independent model, explicitly or independent model, explicitly or implicitly recording the relation for implicitly recording the relation for use by other automated toolsuse by other automated tools

PSM to PSM mappingPSM to PSM mapping This transformation is needed for This transformation is needed for

component realization and component realization and deploymentdeployment

Generally related to platform Generally related to platform dependent model refinementdependent model refinement

PSM to PIM refactoringPSM to PIM refactoring This transformation is required for This transformation is required for

abstracting models of existing abstracting models of existing implementations in a particular implementations in a particular technology into a platform independent technology into a platform independent modelmodel

Represents a “mining” process hard to Represents a “mining” process hard to be fully automatedbe fully automated

Result of this transformation will match Result of this transformation will match the corresponding PIM to PSM mappingthe corresponding PIM to PSM mapping

InfrastructureInfrastructure

A set of software or hardware A set of software or hardware pieces assumed to be already pieces assumed to be already present by some stakeholders present by some stakeholders when he/she develops a software when he/she develops a software artifactartifact

Core modelsCore models

The core target platforms of the The core target platforms of the MDA:MDA:

CORBACORBA Java/EJBJava/EJB C#/.NETC#/.NET XML/SOAPXML/SOAP

MDA provides UML profiles for MDA provides UML profiles for these target platformsthese target platforms

Pervasive ServicesPervasive Services

Essential services for many Essential services for many applicationsapplications

transactionstransactions directory servicesdirectory services securitysecurity persistancepersistance others…others…

OMG will define them at PIM levelOMG will define them at PIM level

OMG Domain ModelsOMG Domain Models

Standardization of services in specific Standardization of services in specific vertical marketsvertical markets

They will be in the form of normative They will be in the form of normative PIMs expressed using UML, augmented PIMs expressed using UML, augmented by normative PSMs for at least one by normative PSMs for at least one platformplatform

They are being developed by OMG’s They are being developed by OMG’s DTFs (Domain Task Forces)DTFs (Domain Task Forces)

The DoD survey of The DoD survey of programming languagesprogramming languages Report on programming languages used Report on programming languages used

in the DoD (1995)in the DoD (1995) In 1995 there were more than 2500 PLs In 1995 there were more than 2500 PLs

worldwideworldwide

Total SLOC Total SLOC by gp third by gp third generation generation languages:languages:

Some of the OMG Some of the OMG members:members: AT&TAT&T BEABEA BorlandBorland BoeingBoeing CACA CitigrouCitigrou

pp CompaqCompaq EricssonEricsson FordFord FujitsuFujitsu

GlaxoGlaxo HPHP HitachiHitachi HyperionHyperion IBMIBM IONAIONA io io

SoftwareSoftware KabiraKabira KCKC John John

DeereDeere

MicrosoftMicrosoft MITREMITRE MSC SoftMSC Soft NASANASA NECNEC NetGenicNetGenic

ss NTTNTT OASISOASIS OracleOracle PfizerPfizer

RationalRational SAGASAGA SAPSAP SASSAS SecantSecant SiemensSiemens SprintSprint SunSun UnisysUnisys VertelVertel

IoSoftware’s ArcStylerIoSoftware’s ArcStyler

ArcStyler Success StoryArcStyler Success Story

Deutsche Bank Bauspar AG used Deutsche Bank Bauspar AG used ArcStyler to embed existing COBOL ArcStyler to embed existing COBOL mainframe application into modern mainframe application into modern web-based systemweb-based system

A customized Cartridge was A customized Cartridge was createdcreated

The KC’s xMDA approachThe KC’s xMDA approachxMDA: eXecutable UML + MDAxMDA: eXecutable UML + MDA

xMDA Success storyxMDA Success story Lockheed Martin used MDA to develop Lockheed Martin used MDA to develop

the F-16 Modular Mission Computing the F-16 Modular Mission Computing softwaresoftware

They used the KC’s iUML tool and They used the KC’s iUML tool and more recently iCCG (intelligent more recently iCCG (intelligent Configurable Code Generator) to Configurable Code Generator) to specify an Ada code generator which specify an Ada code generator which can automatically generate 100% of can automatically generate 100% of the implementationthe implementation


Recommended