guest talk vienna

66
Aspect-Oriented Modeling: Oxymoron or Pleonasm? Jean Bézivin Université de Nantes Faculté des Sciences et Techniques 2, rue de la Houssinière BP 92208 44322 Nantes cedex 3, France [email protected] Guest talk given at AOPDCD'2002, Vienna, July 2nd 2002

Upload: jean-bezivin

Post on 06-May-2015

5.882 views

Category:

Documents


1 download

DESCRIPTION

MDE is about aspects(Guest talk given at AOPDCD\'2002, Vienna, July 2nd 2002)

TRANSCRIPT

Page 1: Guest Talk Vienna

Aspect-Oriented Modeling:Oxymoron or Pleonasm?

Jean BézivinUniversité de Nantes

Faculté des Sciences et Techniques

2, rue de la Houssinière BP 92208

44322 Nantes cedex 3, France

[email protected]

Guest talk given at AOPDCD'2002, Vienna, July 2nd 2002

Page 2: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Conditions for a Possible Synergy?

AOSD MDA

[Aspect-Oriented Modeling?]

Page 3: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Main point of the presentation

Objects everywhere

How will model engineering help capturing aspect management in software development?

How this could fit in the OMG MDA initiative? Which kind of aspects could be captured by separate

models? Which kind of operations (separation, weaving, etc.) could

be defined on models How may these different concerns, represented by

coordinated non executable abstract models, be operationalized (i.e. mapped on equivalent executable models)

Models

Page 4: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Agenda

A point of vocabularyParadigm evolution : from objects &

components to modelsWhat is the MDA?Models as an explicit specification of

aspectsConclusions: AOSP vs MDA/MDE

Page 5: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Oxymoron

A rhetorical figure in which an epigrammatic effect is created by the conjunction of incongruous or contradictory terms

A rhetorical figure in which incongruous or contradictory terms are combined, as in a deafening silence and a mournful optimist.

The American Heritage® Dictionary of the English Language, Fourth EditionA figure in which an epithet of a contrary signification is added to a word - e. g., cruel kindness - laborious idleness.

Webster's Revised Unabridged Dictionary, © 1996, 1998 MICRA, Inc.n : conjoining contradictory terms (as in 'deafening silence')

WordNet ® 1.6, © 1997 Princeton University

Page 6: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Oxymora

active waiting - acute dullness - Advanced BASIC - almost exactly - alone together - clearly ambiguous - clearly confused - clearly misunderstood - conciliation court - constant variable - dangerously safe - deafening silence - definite maybe - diet ice cream - even odds - exact estimate - extensive briefing - extinct life - fish farm - flexible ethics - found missing - fresh-frozen - friendly fire - genuine imitation - good shit - hells angels - holy war - home office - idiot savant - industrial park - intense apathy - jumbo shrimp - linear curve - liquid gas - little giants - living dead - long sleeved t-shirt - minor crisis - new classic - non-alcoholic wine - non-dairy creamer - non-working mother - old news - only choice - open secret - original copies - paid volunteer - passive aggression - peace offensive - plastic glasses - plastic silverware - pretty ugly - randomly organized - real potential - resident alien - sad clown - scheduled spontaneity - seriously funny - silent scream - sweet sorrow - synthetic natural gas - temporary tax increase - tragic comedy - uncrowned king - vaguely aware - virtual reality - working vacation - etc.

Page 7: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Pleonasms

Pleonasms are the opposites (antonyms) of oxymora. A pleonasm consists of several concepts (usually several words) that are redundant, e.g. "at this moment in time." (presumably these five words mean "now.")

pleonasm \PLEE-uh-naz-uhm\, noun:1. The use of more words than are necessary to express an idea - as, "I saw it with my own eyes."2. An instance or example of pleonasm.3. A superfluous word or expression.

from Latin pleonasmus, Greek pleonasmós ('more-ness') excess, redundancy]. A traditional term for the use of more words than necessary, either for effect or more usually as a fault of style, and any instance of that use, as in: Could you repeat that again? rather than Could you say that again? or Could you repeat that? - They both got one each rather than They both got one or They got one each - That's a more superior product (superior already denotes 'more') - It's a really new innovation (an innovation is already new). Some common pleonasms attract little comment, such as free gift (gifts are by definition free) and plans for the future (plans cannot be about the present or past).

The Oxford Companion to the English Language, © Tom McArthur 1992

Page 8: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Pleonasms

absolutely essential - a cappella without music - advance warning - affirmative yes - A.M. in the morning - attach together - autobiography of my life - bad evil - classic tradition - classify into groups - climb up - close proximity - cold ice - collaborate together - combined together - dark night - DOS operating system - empty hole - foreign imports - frozen ice - grateful thanks - handwritten manuscript - hot fire - imminent at any moment - individual person - invited guests - join together - joint collaboration - joint cooperation - knowledgeable experts - little baby - long litany - major breakthrough - malignant cancer - may possibly - mental thought - merge together - mutual cooperation - near proximity - new discovery - new innovations - new neophyte - new recruit - nostalgia for the past - old senior citizens - oral conversation - original founder - original source - pair of twins - past history - positive yes - postponed until later - potentially capable - repeat again - round circle - specific examples - top priority - unexpected surprise - wordy and verbose - youthful teenagers

Page 9: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Paradigm evolution

OT (Object Technology) has got to answer many difficult problems since its initial industrial discovery in the 80's.

Generally OT did not succeed very well in finding good internal solutions to these challenges.

As a consequence, the proposed solutions are often ad-hoc, informal, and even baroque. They are are difficult to generalize and hard to combine. They often don't scale up.

ObjectTechnology

Usecases

Aspects

Patterns

etc.

Page 10: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Paradigm evolution

MT (Model Technology) seems to be in a position to meet some of these challenges to which OT was not able to find an internal solution.

Among these we may quote: Aspect separation Homogeneous handling of

functional and non-functional attributes

Integration of different paradigms (rules, services, processes, architecture, etc.)

MT seems able to subsume OT and to offer a realistic migration path from present object and component solutions to more ambitious regular and scalable organizations.

OT

Usecases

Aspects

Patterns

etc.

MT

QoS

Rules

Processes

Applications

Services

Page 11: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

MDA: The new OMG vision

OMG is in the ideal position to provide the model-based standards that are necessary to extend integration beyond the middleware approach…Now is the time to put this plan into effect. Now is the time for the Model Driven Architecture.

Richard Soley and the OMG staff, MDA Whitepaper Draft 3.2

November 27, 2000

Page 12: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The next steps

CORBA was a powerful first step, but we have more steps to take.

Fred Waskiewicz,OMG Director of Standards

Page 13: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Angry end-users

We don't want anymore to pay such a high price for simply moving our information system to a new middleware platform (COM, CORBA, Java, HTML, XML, DotNet, etc.) when our business system stays stable.We are prepared to pay a last price for building the abstract models of our business and services that will guarantee us against technological obsolescence.From there, any platform provider will also have to provide the mapping solutions from standard business models before we buy.

Page 14: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The sequence has no end

It's difficult - - in fact, next to impossible - -for a large enterprise to standardize on a single middleware platform. Some enterprises found themselves with more than one because their different departments have different requirements, others because mergers or acquisitions created a mix. Even the lucky enterprise with a single middleware choice still has to use other technologies to interoperate with other enterprises and B2B markets. The middleware environments that are most visible today are CORBA, Enterprise JavaBeans, message oriented middleware, XML/SOAP, COM+ and .NET. However, over the past decade or so, the middleware landscape has continually shifted. For years we've assumed that a clear winner will emerge and stabilize this state of flux, but it's time to admit what we've all suspected: The sequence has no end! And, in spite of the advantages (sometimes real, sometimes imagined) of the latest middleware platform, migration is expensive and disruptive. (We know an industry standards group that, having migrated their standard infrastructure twice already, is now moving from their latest platform du jour to XML.)

from Richard Soley and the OMG staff,MDA Whitepaper Draft 3.2, November 27, 2000

Page 15: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The middleware war is over

COM+DCOM

CORBAIIOP

MicrosoftC# & DotNet

XMLSOAP

Sun's JavaEJB

HTTPHTML

There is no clear winner nor loser

The next battlefield will be model transformation

The OMG's Model Driven Architecture (MDA) initiative is aimed at using modeling and meta-modeling to drive the design and implementation of distributed systems. + the next wonderful

Middleware platform (~2005)

Sun's reaction toC# & DotNet ?

Page 16: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Mapping to multiple and evolutive platforms

COM+DCOM

CORBA C#DotNet

XMLSOAP

JavaEJB HTTP

HTML

MOF along with UML is a core technology for MDA.

Technology neutral models of systems can be mapped to implementations that use a variety of middleware technologies (easy to say, more difficult to implement)

UML and MOF compliantplatform independent models

Page 17: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Various platforms

CORBAJava/EJB C#/DotNet Web/XML/SOAP

PIM

etc.

Platform-IndependentModelMulti-target

code generation

+ SVG, GML, Delphi, etc.

Page 18: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Manual/Automatic code generation

0% 100%

MM

Businessmodel

Designmodel

Codemodel

MM MM

Page 19: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

MDA: PIMs and PSMs

MDA modelsPIM: Platform Independent Models

Formal specification of a system that abstracts away technical detail

Example: Billing system expressed in UML Platform Description Models (PDMs)

e.g. of component constructs (CCM), of Eiffel, C#, EJB, …

PSM: Platform Specific ModelsExpressed in terms of the specification model of the

platformExample: Billing system expressed in "UML profile for

CORBA"

Page 20: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Basic MDE operations

PI M PSM Code

4

2 5

3

1

OMG standards are specified in terms of a PIM and normally one or more PSMs, all in UML or UML profiles or based on any other kind of MOF meta-model.

The MDA defines consistent relationships across these models. It makes it easier to produce implementations on different platforms while

conforming to the same essential and precise structure and behavior of the system. As a consequence, the business model may define business goals and policies in a computation independent manner.

Page 21: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Some of the OMG successes

1. CORBA2. IDL3. IIOP4. UML5. MOF6. XMI7. CWM8. SPEM

yesterday

today

tomorrow

OMA

MDA

?

Page 22: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

UML 2.0 : not a language, but a family of languages

UML 2.0 Infrastructure RFP - - A UML 2.0 RFP issued September 15, 2000 that is primarily concerned with architectural alignment, restructuring and extension mechanisms.

UML 2.0 Superstructure RFP - - A UML 2.0 RFP issued September 15, 2000 that is primarily concerned with the refinement and extension of UML 1.x semantics and notation.

UML 2.0 OCL RFP - - A UML 2.0 RFP issued September 15, 2000 that is primarily concerned with with defining an OCL metamodel.

UML 2.0 Diagram Interchange RFP - - A UML 2.0 RFP issued March 2, 2001 that is primarily concerned with defining a metamodel for diagram interchange using the XMI facility.from "Will UML 2.0 Be Agile orAwkward?" by Cris Kobryn

Main concernis theseparationof concerns

Page 23: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

UML opened the road,several roads indeed...

UML/MOFOMT

Merise

SA/RT

ERD

SADT

DFDDFD

etc.

Product and

Process models

+ModelDriven

Engineering JSD

From Object-Oriented Programmingto

Model-Driven Software Engineering.

Page 24: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The initial roadmap: separation of artifact and process aspects

Procedural ADM

OOADMe.g. OMT

UML UPMSPEM

>2001

07/200111/1997

Network of models

+ profiles+ other MMs

+ specific processes(RUP, IBM SI, etc.)

Method = notation + process + tools

Modelweaving

Unified Method: impossible

Page 25: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Models EverywhereBusiness

modelBusinessprocesses

Businessrules

Workflowmodel

Testmodel

Usermodel

Costmodel

Developmentprocessmodel

Designmodel

Classmodel Object

model

Dynamicmodel

UseCasemodel

Interactionmodel

Resourcemodel

Agentmodel

etc.

Performancemodel

Businessobjects

Page 26: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The software life cycle is populated with a lot of models

The development software cycle is populated with models

Models are of unequal importance The model space is structured

(composite and atomic models) Models are related in a complex

network of production/consumption separation/weaving, transformation, etc.

The content of each model is defined (constrained) by a corresponding meta-model (ontology)

The model space is constantly broadening starting from the essential models (Domain, Service, Resource)

All models are not of equal importance

Requirementmodel

Requirementmodel

BusinessObjectmodel

BusinessObjectmodel

Workflowmodel

Workflowmodel

Businessrulesmodel

Businessrulesmodel

Businessprocessmodel

Businessprocessmodel

Designmodel

Designmodel

Deploymentmodel

Deploymentmodel

TestmodelTest

modelPerformance

modelPerformance

model

QoSmodelQoS

modelExecution

modelExecution

model etc.etc.

1 aspect = 1 model

Page 27: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Each model has different characteristics

A Smalltalk coding model only offers single inheritance, but also explicit anonymous metaclasses.

An Eiffel coding model has a different form of inheritance and several extensions (contracts, etc.). It has also specific "client" relations between classes.

A Java (or C#) coding model has two notions of inheritance, corresponding to the class and interface categories.

A C# coding model allows cross-language inheritance A workflow model is built from basic tasks. A usage model contains the concepts of actors, use-cases

and several relations like specialization of use-cases. etc.

Page 28: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

From contemplative to productive

+Applicant()+ApplicantInfo()+MakeApplication()

-companyName : CString-experience : CString-reference1 : CString-reference2 : CString-reference3 : CString

Applicant

+Person()+PersonInfo()

-personID : unsigned long-surname : CString-givenName : CString-middleInitial : char-streetAddress : CString-postCode : CString-countryname : CString-eMailAddress : CString

Person

-is taught by

1

-teaches

0..*+CourseSession()+CourseSessionInfo()

-courseSessionID : unsigned long-courseDate : unsigned long-courseID : unsigned long-courseLocation : CString

CourseSession

+AppStatus()+AppStatusInfo()

-statusCode : char-statusName : CString

AppStatus

+CourseRegistration()+CourseRegistrationInfo()

-registrationDate : unsigned long-completionFlag : bool-confirmedDate : unsigned long

CourseRegistration

+Test()+TestInfo()

-testScore : unsigned long

Test

+Application()+ApplicationInfo()

-productNr : unsigned long-certificationLevel : unsigned long-applicationDate : unsigned long

Application

+PermittedStatusChange()+StatusChangeInfo()

-fromStatus : char-toStatus : char

PermittedStatusChange

+ExamSession()+ExamSessionInfo()

-examSession : unsigned long-examlocation : CString-examDate : unsigned long

ExamSession

-gives0..*

-is achieved1

-is made by

1

-makes

0..*

-allows change in

0..*

-has a

1..*

-is taken by1

-takes0..*

-is made by a1

-made a1..*

-is in1

-is filled by0..*

-uses

1

-is used in

0..*

-applies to a0..*

-is for a1

+Exam()+ExamInfo()

-examID : unsigned long-certificationLevel : unsigned long

Exam

+Employee()+GetCurrentAge()+EmployeeInfo()

-jobType : CString-roomNr : unsigned long-department : CString-division : CString-jobTitle : CString-manager : unsigned long-headsDept : CString-headsDivision : CString-mobileNr : CString-birthDate : unsigned long

Employee

+registrationform()

RegistrationForm

-uses**

ApplicantApplicantList PersonList

findApplicant()

ApplicationRegForm

Applicant()

findPerson()

addPerson()

addApplication()

Application()

MakeApplication()

ApplicationList

class

sequence

Javacode

"from human-readable to computer-understandable"

Page 29: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Compare code-centric and model-centric approaches

Lannion, 2 juillet 2001 Réunion Groupe META

Object Request BrokerObject Request Broker

Application Objects CORBA Facilities

CORBA Services

LifecycleEventsNamingPersistenceTransactionsConcurrency

ExternalizationSecurityTimePropertiesQueryLicensing

Compound DocsObject LinkingHelp FacilitiesUser I nterfaceDesktop MgmtVertical Markets

Not initially standardized by OMG;Scope is single application or vendor

OMAMDA

IDL UML+OCL

Page 30: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Fragments of a UML meta-model

UMLUML

not 1.4

Page 31: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Three stages in the evolution of modeling techniques at OMG.

UMLUML MOFMOF

UMLUMLaModelaModel

aModelaModel

MOFMOF

UMLUML

UML_FBOUML_FBO

aModelaModel

PWGPWG WorkflowWorkflow etc.etc.

Common Warehouse Metadata Interchange

Common Warehouse Metadata Interchange

Action language Action language

(a) (b) (c)

Page 32: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

OMG : the software bus and the knowledge bus.

Cobol

CORBA, IDL, IIOP,... CORBA, IDL, IIOP,...

Java

Workflow

MOF, UML, XML,... MOF, UML, XML,...

UML

UPM

CWM

C#

Page 33: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Systems and models

A model M is a simplified representation of the world, as a matter of fact of only a part S of the world called the system.

MM

SS

isRepresentedByM0(the world)

M1(the modeling space)

Page 34: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Aspect-Oriented Modeling

Obviously a given system may have plenty of different models.

Each model represents a given aspect of the system.

MaMa

SS

isRepresentedBy

M0

M1

MbMbMcMc

Page 35: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Limited Substitutability Principle

The purpose of a model is always to be able to answer some questions in place of the system, exactly in the same way the system itself would have answered similar questions.

A model represents certain specific aspects of a system and only these aspects.

But how to make this assumption explicit, automatically checkable, etc?

Model

ask()

System

ask()

represents

Page 36: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Various kinds of models Products and processes Legacy and components Static and dynamic Functional and non-functional aspects etc. Model

ask()

System

ask()

represents

Dynamic System

StaticSystem DynamicModel

StaticModel

Page 37: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Systems and models

What is exactly this relation?Can we specify this "aspect selection" with precision? How to combine several such relations? How to characterize them?

MM

SS

isRepresentedByM0(the world)

M1(the modeling space)

Page 38: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Solution: Metamodel

ModelSystem

Meta-Model

terminologyassertions

represents

S

M*

M

The correspondence between a model and a systemis explicitly and precisely defined by a metamodel.

sem

Page 39: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Ontologies and metamodels

For the theorician, this is an ontologyFor the IS practitioner, this is a metamodelA metamodel is a simple form of an ontology

MM

SS

isRepresentedBy

M0(the world)

M1(the modeling space)

Page 40: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Ontology: definition

Gruber, T.G. A Translation Approach to Portable Ontology Specifications

Knowledge Acquisition, V.5, N.2, (1993)

"A body of formally represented knowledge is based on a conceptualization: theobjects, concepts, and other entities that are presumed to exist in some area of interestand the relationships that holds them.

A conceptualization is an abstract, simplified view of the world that we wish torepresent for some purpose. An ontology is an explicit specification of a conceptualization. The term is borrowed

from philosophy, where an ontology is a systematic account of Existence. Forknowledge-based systems, what "exists" is exactly that which can be represented. Whenthe knowledge of a domain is represented in a declarative formalism, the set of objectsthat can be represented is called the universe of discourse. This set of objects, and thedescribable relationships among them, are reflected in the representational vocabularywith which a knowledge-based program represents knowledge. Thus, we can define theontology of a program by defining a set of representational terms. In such an ontology,definitions associate the names of entities in the universe of discourse (e.g. classes,relations, functions or other objects) with human-readable text describing what the

names are meant to denote ..."

Page 41: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Meta-models and ontologies

Ontologies bring:AbstractionConsensus and sharing

System, ontology, model: model UnixModel;ontology OntoUnix;node

teachers, students: Group;pierre,paul,jacqques: User;f1,f2,f3,f4: File;d1,d2,d3: Directory;

linkbelongsTo (pierre, teachers);belongsTo (paul, students);belongsTo (jacques, teachers);owner (f1, pierre);owner (f2,paul);owner (f3, paul);owner (f4, jacques);owner (d1, pierre);owner (d2, pierre);owner (d3, paul);contains (d1,f1);contains (d1,f2);contains (d1,d2);contains (d2,f3);

end model;

ontology OntoUnix;node

File<Entity;Directory<File;User<Entity;Group<Entity;

linkbelongsTo [User,Group];contains [Directory,File];owner [File,User];

end ontology;

a System

Sa System

San Ontology

Oan Ontology

O

basedOn imageOf

a Model

Ma Model

M

Page 42: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Ontologies

Normative consensusConsensual norms

Because sometimes:there are non-normative consensusthere are non-consensual norms

Page 43: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Layered ontologies

terminological

assertionalpragmatical

Concepts and Relationse.g. UML diagrams

e.g. OCL statementse.g. How to draw a class?presentation issues, etc.

Page 44: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Egyptian architecture

metamodel

model

"the real world"

metametamodel

The MOF (some kind of "top level ontology")

The UML metamodel and other MMs

Some UML Models and other Ms

Various usages of these models

M0

M1

M2

M3

[Inspired by IRDS,CDIF, etc.]

Page 45: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

MOF : some definitions

The MOF is unique and self-defined.

In principle, the MOF should be minimal.

The MOF factorize all that is common to all meta-models, e.g.: Generating towards a

given middleware (.Net, Corba, Java, etc)

Transporting models and metamodels

Persistent support for models and metamodels (repository)

Autrans - 1999

Les espaces M1, M2 et M3

M3

M2

M1

M2

M1

M2

M1 M1M1

domain-specific

domain-independant

Page 46: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Multiple meta-models

MOF::Class

UML::Class

UML::Participant

Peter Smith

Java::Class

Java::Participant

Peter Smith

Page 47: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The Three Modeling Layers

the MOFMMM

the UMLMM

a UMLmodel m

a particularuse of m

the SPEMMM

the CCMMM

another UMLmodel m’

anotheruse of m

Level M3

Level M2

Level M1

Level M0

Page 48: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The OMG/MOF Meta-Model Stack

U n i v e r s i t é d e N A N T E S

M 1 , M 2 & M 3 s p a c e s

M 3

M 2

M 1

M 2

M 1

M 2

M 1 M 1M 1

- One unique Metametamodel (the MOF) - An important library of compatible Metamodels - Each of the models is defined in the language of its unique metamodel

Page 49: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Direct relations between MMs

MOF

UML MMCWM MMUSES

C2 C2

CWMModel

C2Drawing the globalpicture

Page 50: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

UML profiles

A UML profile is a grouping construct for UML model elements that have been customized for a specific domain or purpose using extension mechanisms such as stereotypes, tagged values and constraints. For example, the UML Profile for CORBA RFP customizes UML for specifying CORBA IDL.

A metamodel defines a domain-specific language. A profile is a variant of a metamodel. It allows to define a dialect of a given language. There are a dozen of UML profiles that are currently being defined.

Page 51: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Abstract Syntax Systems Compared

MOF

The UMLmeta-Model

A SpecificUML Model

A Specificphenomenon

corresponding toa UML Model

EBNF

Pascal LanguageGrammar

A specificPascal Program

A specificexecution

of a Pascal program

A XMLdocument

A XML DTDOr Schema

A XMLdocument

A XML DTDor Schema

Technology #2(MOF + OCL)

Technology #3(XML Meta-Language)

M3

M2

M1

KIFTheories

Upper LevelOntologies

Technology #4(Ontology engineering)

[XMI=MOF+XML+OCL]Model serialisation

Technology #1(formal grammars

attribute grammars,etc.)

+DescriptionLogics

+ConceptualGraphs+etc.

+Xpath, XSLT+RDF, OIL, DAML+etc.

:from contemplativeto productive.

Page 52: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Some technical spaces

model

mm

UML/MOF

program

grammar

Java

document

schema

XML

DBMSSQL

etc

KBMS

Page 53: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Ex: Weaving geographical and political aspects in XML

<gml:location> <gml:Point> <gml:coord> <gml:X>1.0</gml:X> <gml:Y>1.0</gml:Y> </gml:coord> </gml:Point></gml:location>

<gml:Polygon gid="810"> <gml:outerBounderyIs> <gml:LinearRing> <gml:coordinates>0.0,0.0 100.0,0.0 50.0,100.0 0.0,0.0</gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs></gml:Polygon>

<Bureaudevote><num>810</num><NbInscrits>870</NbInscrits><NbVotants>507</NbVotants><Ayrault%>70.72</Ayrault%><Harousseau%>20.44</Harousseau%>

</Bureaudevote>

Geographical map + political results per voting area

=politicalmap

Page 54: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Model weaving

XML technology offers tools for document merging (Xlink, Xpointer, etc.)

It is also possible to perform the weaving operation within the model space and then to project to the XML space (SVG, GML, etc.)

Page 55: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

T/xslt

Ex: Crossing the MOF to XML boundary

Ma/xmi

Ma

Mb/xmi

Mb

Abstract modelspace.

Concrete modelspace(XML supported)

T

Page 56: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Various kinds of transformations

Ma Mb

MMab

Endogeneoustransformation

sem sem

Ma Mb

MMa

Exogeneoustransformation

sem sem

MMa

Tab Tab

Page 57: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Tooling the MDA : Sample

Adaptive's Framework http://www.adaptive.com/ France-Telecom Universalis http://universalis.elibel.tm.fr/ Codagen Gen-it http://www.codagen.com/ Codigo CodigoXpress http://www.codigoxpress.com/ DSTC dMOF http://www.dstc.edu.au/Products/CORBA/MOF/ Interactive Objects ArcStyler http://www.io-software.com/ Kabira Business Accelerator http://www.kabira.com/ Kennedy Carter iUML and iCCG http://www.kc.com/ Metamatrix MetaBase http://metamatrix.com/ NetBeans Meta Data Repository MDR http://www.netbeans.org/ ONTOS ObjectSpark http://www.objectspark.com/ ObjectRad Java Metadata Server http://www.objectrad.com/ ObjeXion Software Netsilon http://www.netsilon.com/ Project Technology BridgePoint/DesignPoint http://www.projtech.com/ Secant Technologies ModelMethods http://www.modelmethods.com/ Soft-Maint Scriptor & Semantor http://www.sodifrance.fr/ Tata Research Development ADEX http://www.tcs.com/ University of Berne MOOSE http://www.iam.unibe.ch/

and much more…

Page 58: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Part of the C#/DotNet MetaModel

Field

Constructor

Property

isReadable : BooleanisWritable : Boolean

Member

name : String

Assembly

name : String

Method

TypedAttribute

MethodBase

visibility : StringisAbstract : BooleanisFinal : BooleanisStatic : Boolean

Type

qualifiedName : StringisAbstract : Booleanvisibility : StringisSealed : Booleannamespace : String

0..1

0..*

owner

0..1

members

0..*

0..*

0..1

content

0..*

container0..1

0..1

0..*

super0..1

type

0..*

0..1

0..*

returnType

0..1

0..*

10..* type

10..*

Parameter

isIn : BooleanisOut : Booleanname : Stringposition : Integer

0..*

1

parameters0..*

method

1

1

0..*

type 1

0..*

Page 59: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The Y cycle : weaving PIMs & PDMsto produce PSMs

PIMs(PlatformIndependentModels)

PSMs(PlatformSpecificModels)

MMerging/binding phase

PDMs(PlatformDescriptionModels)

?binding

Page 60: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

MDA: beyond the buzzword

Modern model engineering techniques are ready for prime time in software engineering.They are based on: A four level architecture (3+1) A unique metametamodel (MOF),

with transfer and exchange mechanisms with transformation mechanisms with standard projection mechanisms on a variety of middlewares

(CORBA first, Java and DotNet next, …) A growing collection of specialized meta-models (evolutive)

Object metamodels (Java/EJB/J2EE, CLR, CCM, etc.) Legacy metamodels (Relational, CWM) Enterprise metamodels : Business objects, Healthcare,

Transportation, Process & Rules, and much more Product an process metamodels (e.g. workflow, RUP)

Automatic and semi-automatic generation tools, from high abstraction standardized models to various middleware platforms will progressively appear in the coming years.

Page 61: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Conclusion

Model engineering is the future of object technology As object and classes were seen in the 80's as "first class

entities", with libraries of several hundred of classes hierarchically organized, models and metamodels are beginning to be considered alike in the 2000's.

Libraries (lattices) of hundreds of metamodels (ontologies) of high abstraction and low granularity are beginning to appear. Each such metamodel may contains several hundreds of concepts and relations.

Tools will be needed to work with these vast libraries of models and metamodels.

This will have a rapid impact on the daily work of the information engineer.

More research is urgently needed to bring together the people involved in the theory and practice of model engineering (ontologists, methodologists, software practitioners, information system builders, database specialists, etc.).

Page 62: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

AOP: the code as unique reference

Debuggingdirectives

Optimisationdirectives

Synchronization

Exceptions

Executablecode

Algorithms

Organizationcode(#include, etc.)

preconditionspostconditions

Page 63: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

The on-line separate models organization (aspect-oriented software engineering)

Common BUS (e.g. CORBA or DotNet + UML + MOF + XMI) Common BUS (e.g. CORBA or DotNet + UML + MOF + XMI)

Executionmodel

Executionmodel

Architecturemodel

Architecturemodel

Deploymentmodel

Deploymentmodel

Domainmodel

Domainmodel

Designmodel

Designmodel

Testmodel

Testmodel

Usagemodel (Use Cases)

Usagemodel (Use Cases)

Resourcemodel

Resourcemodel

First-class independent models and metamodels

Page 64: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Where are models coming from?

Essential models (resource, business logic, service) Other development sources (exception handling, testing,

user behaviour, enforcing contracts, performance improvement, deployment, security, authentification, concurrency management, etc.),

Legacy systems, Derived models, Executable code extraction (code is a model) Multiple other sources, like Just in Time Model Production etc.

Page 65: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

Combining the power of meta-modeling and metaprogramming

a C# programexecution

a C#meta-model

a C#model

read XMI

write XMI

[This may be the ultimate strategyfor modern software maintenance]

sem

Introspection at workThis isa dynamic

model.

Page 66: Guest Talk Vienna

AOPDCD'2002, Vienna, July 2nd 2002

AOM: oxymoron or pleonasm?

The central issue in AOSD is knowledge management (aspects + operations)

AOP gives a key role to the code (executable code) for this representation problem. As a consequence the problem of final mapping to executable code is

solved But the problem of precise definition, capture and maintenance of the

various aspects is made more difficult On the contrary, MDA/MDE starts from the a priori of an

independent and homogeneous representation of aspects in non-executable "external spaces" The conceptual handling of separate aspects and operations on these

aspects is considerably simplified The practical handling of mapping to executable platforms

(operationalization) still requires considerable research and development efforts that will go much beyond compiler technology and rewriting systems.

From the point of view of representation systems, AOM is an oxymoron

From the point of view of the problem to be solved (separation of concerns), AOM is a pleonasm.

There seems to be more place for cooperation than competition between both approaches.