Download - 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
Guest talk given at AOPDCD'2002, Vienna, July 2nd 2002
AOPDCD'2002, Vienna, July 2nd 2002
Conditions for a Possible Synergy?
AOSD MDA
[Aspect-Oriented Modeling?]
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
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
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
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.
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
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
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.
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
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
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
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.
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
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 ?
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
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.
AOPDCD'2002, Vienna, July 2nd 2002
Manual/Automatic code generation
0% 100%
MM
Businessmodel
Designmodel
Codemodel
MM MM
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"
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.
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
?
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
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.
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
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
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
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.
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"
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
AOPDCD'2002, Vienna, July 2nd 2002
Fragments of a UML meta-model
UMLUML
not 1.4
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)
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#
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)
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
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
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
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)
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
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)
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 ..."
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
AOPDCD'2002, Vienna, July 2nd 2002
Ontologies
Normative consensusConsensual norms
Because sometimes:there are non-normative consensusthere are non-consensual norms
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.
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.]
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
AOPDCD'2002, Vienna, July 2nd 2002
Multiple meta-models
MOF::Class
UML::Class
UML::Participant
Peter Smith
Java::Class
Java::Participant
Peter Smith
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
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
AOPDCD'2002, Vienna, July 2nd 2002
Direct relations between MMs
MOF
UML MMCWM MMUSES
C2 C2
CWMModel
C2Drawing the globalpicture
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.
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.
AOPDCD'2002, Vienna, July 2nd 2002
Some technical spaces
model
mm
UML/MOF
program
grammar
Java
document
schema
XML
DBMSSQL
etc
KBMS
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
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.)
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
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
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…
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..*
AOPDCD'2002, Vienna, July 2nd 2002
The Y cycle : weaving PIMs & PDMsto produce PSMs
PIMs(PlatformIndependentModels)
PSMs(PlatformSpecificModels)
MMerging/binding phase
PDMs(PlatformDescriptionModels)
?binding
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.
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.).
AOPDCD'2002, Vienna, July 2nd 2002
AOP: the code as unique reference
Debuggingdirectives
Optimisationdirectives
Synchronization
Exceptions
Executablecode
Algorithms
Organizationcode(#include, etc.)
preconditionspostconditions
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
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.
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.
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.