Title: Using%20MDA
1Using MDA for designing and implementing
Web-based applications
ICWE'04
- Nathalie Moreno and Antonio Vallecillo
- Universidad de Málaga
- Dept. Lenguajes y Ciencias de la Computación
- vergara,av_at_lcc.uma.es
- http//www.lcc.uma.es/av/
http//www.lcc.uma.es/av/misConfs/ICWE2004/
2Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
3Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
4Models and meta-models
5What is a Model?
- A description of (part of) a system written in a
well-defined language. (Equivalent to
specification.) Kleppe, 2003 - A representation of a part of the function,
structure and/or behaviour of a system MDA,
2001 - A description or specification of the system and
its environment for some certain purpose. A model
is often presented as a combination of drawings
and text. MDA Guide, 2003 - A set of statements about the system. Seidewitz,
2003 - (Statement expression about the system that can
be considered true or false.)
6Examples of models
- Newtonian models of objects movements in space
- City models
- Underground and bus maps, commuting models,...
- Building/house maps
- floor plans, electric wiring, water conductions,
central heating pipes, etc. - Software system models
- Requirements (use cases)
- Structure (class diagrams)
- Behavioural models
- Choreography models
- Load balancing and Deployment models, ...
7Characteristics of models Selic, 2003
- Abstract
- Emphasize important aspects, hide irrelevant
ones - Understandable
- Expressed in a form readily understood by users
- Accurate
- Faithfully represents the modelled system
- Predictive
- Can be used to derive correct conclusions about
the system - Inexpensive
- Cheaper to construct and study than the system
8Usefulness of models
- Specify the system
- Structure, behaviour, ...
- Separate concepts at different conceptual levels
- Communicate with stakeholders
- Understand the system
- If existing (legacy applications)
- Validate the model
- Detect errors and omissions in design ASAP
- Mistakes are cheaper at this stage
- Prototype the system (execution of the model)
- Formal analysis of system properties
- Drive implementation
- Code skeleton and templates, complete programs (?)
9Current limitations of (SE) models
- Models are used only as documentation
- Gap between the model and the implementation of
the system - Semantic gap between the respective languages
- Changes in the model do not reflect in the code
- Changes in the code do not reflect in the model
(the model is thrown away after the first
implementation, and never updated or used again) - No merge of models
- Unrelated views of a system (horizontal)
- Unrelated towers of models (vertical)
- No model transformations
- Few defined transformation languages
- No tools
- We are still far behind more mature engineering
industries, such as aerospace, automotive and
electrical engineering.... ...Even hardware
design is ahead of software design!
10What is a Metamodel?
- A model of a well-defined language Kleppe, 2003
- A model of models MDA, 2001
- A model that defines the language for expressing
a model MOF, 2000 - A meta-metamodel is a model that defines the
language for expressing a metamodel. The
relationship between a meta-metamodel and a
metamodel is analogous to the relationship
between a metamodel and a model. - A model of a modelling language Seidewitz, 2003
- That is, a metamodel makes statements about what
can be expressed in the valid models of a certain
modelling language.
11OMGs Four-layer metamodel architecture
- As with Magrittes picture of the pipe, we need
to separate - the thing
- from the model of the thing (I cannot smoke a
picture) - from the language(s) in which the model is
written (Ceci is not a pipe)
12Four-layers metamodel hierarchy
13Four-layers metamodel hierarchy (example)
14MOF Metamodel (simplified)
15CORBA IDL for the MOF
- interface ClassClass ClassifierClass
- readonly attribute ClassUList all_of_class_class
- Class create_class (
- / from ModelElement / in
ModelNameType name, - / from ModelElement / in
ModelAnnotationType annotation, - / from GeneralizableElement / in
boolean is_root, - / from GeneralizableElement / in
boolean is_leaf, - / from GeneralizableElement / in
boolean is_abstract, - / from GeneralizableElement / in
ModelVisibilityKind visibility, - / from Class / in boolean
is_singleton - ) raises (ReflectiveMofError)
- // end of interface ClassClass
- interface Class ClassClass, Classifier
- boolean is_singleton () raises
(ReflectiveMofError) - void set_is_singleton (in boolean new_value)
raises (ReflectiveMofError)
16UML 2.0 Infrastructure
UML extension mechanisms
Boolean, Integer, ...
Namespace, Classifier, Relationship,
Generalization...
Basic definition of Class ...
Extended notion of Class, Association,...
17New (improved) alignments in 2.0
18Language definition mechanisms
19UML 2.0 Profiles
- Profiles specialize UML for specific domains
- When there is no need to change UML 2.0 metamodel
and semantics, just to extend or customize them - Metamodel concept
- Defined on metamodel
- Used on model
- Excellent mechanism for defining MDA Platforms
- Examples
- OMG standards
- EAI Enterprise Application Integration
- EDOC Enterprise Distributed Object Computing
- CORBA, CCM
- Schedulability, Performance and Time
- Proprietary
- UML-RT UML for Real Time
20UML 2.0 Profile Example
21UML 2.0 Profile Example EJB Platform
22MOF/ QVT (Query-View-Transformations)
- Query Expression evaluated over a model
- Results in one or more instances of types (either
defined in the source model, or in the query
language) - Example 1 List all packages that do not contain
child packages - Example 2 Does attribute A of source model have
public visibility? - View A model completely derived from other model
- Views are usually read-only
- Views are generated by transformations
- A query is a restricted kind of view
- Transformation Generates a target model from a
source model - Relations and Mappings
- Relations specify transformations
- Mappings implement transformations
- A relation can be refined by one or more mappings
23QVT Transformation Requirements
- Configurable
- Parametrizable
- Traceable
- Incrementally consistent
- Bidirectional
- Source-driven, Target-driven, Arbitrary
- One-2-One, One-2-Many, Many-2-One, Many-2-Many
- Declarative, Imperative, or Hybrid definition
- Simple
- Scalable
- Tool supported (fully or partially)
OMG, 2003
24Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
25Beyond technology...
- Too many platforms and technologies
- Distributed Objects, Components, Web services,
... - Not really interoperable!
- Which technology is the best (today)?
- Too fast evolution
- Technologies evolve... and get obsolete very soon
- Which technology will be out tomorrow?
- And how long will it last?
- How to protect my investment in business logic?
- I want my business logic (processes, rules) to be
as independent as possible from the supporting
technologies - So they can separately evolve........ Without
having to start from scratch each time.... And
protecting the investment in each one
26MDA a New Kid in Town
- New orientation for OMG activities
- New step beyond the OMA
- A framework for a set of standards in support of
MDD - Models are centric!
- Target middleware is not important!
- Focus on Platform Independent Models (PIM)
- Without middleware details
- Abstract Platform Specific Models (PSM)
- Including all middleware details
- Define PIM to PSM transformations
27MDA principles
- Inspired by
- The widespread public acceptance of UML
- OMG moving beyond middleware (CORBA)
- The availability of mature MDD technologies
- Purpose
- Enable inter-working between complementary tools
- Foster specialization of tools and methods
- Provide guidance for MDD
- MDA overview papers and resources
- http//www.omg.org/mda
28MDA (expected) benefits
- Protects software investment from technological
changes and evolutions - preserves PIMs when new middleware appears!
- Allows to handle larger and more complex systems
- Through separation of conceptual levels/concerns
- Allows the integration of separate aspects from
the start, and in a uniform way - security, reliability, performance, ...
- Allows legacy systems to be integrated into the
MDA chain - Allows simulation and automatic implementation
of models
29MDA Concepts (1/2)
- Architecture
- The architecture of a system is a specification
of the parts and connectors of the system and the
rules for the interactions of the parts using the
connectors - Viewpoint
- A viewpoint on a system is a technique for
abstraction using a selected set of architectural
concepts and structuring rules, in order to focus
on particular concerns within that system - View
- A viewpoint model or view of a system is a
representation of that system from the
perspective of a chosen viewpoint - Implementation
- An implementation is a specification, which
provides all the information needed to construct
a system and to put it into operation
30MDA Concepts (2/2)
- Platform
- A set of subsystems/technologies that provide a
coherent set of functionality through interfaces
and specified usage patterns that any subsystem
that depends on the platform can use without
concern for the details of how the functionality
provided by the platform is implemented. - Platform Independent Model (PIM)
- A model of a subsystem that contains no
information specific to the platform, or the
technology that is used to realize it. - Platform Specific Model (PSM)
- A model of a subsystem that includes information
about the specific technology that is used in the
realization of it on a specific platform, and
hence possibly contains elements that are
specific to the platform.
31MDA models (1/2)
- Computation Independent Model (CIM)
- A view from a system from the Computational
Independent Viewpoint. - A CIM Focuses on the system and its environment
the details of the structure of the system are
hidden or as yet undetermined. - A CIM is sometimes called a domain model or a
business model, and is specified using a
vocabulary that is familiar to the practitioners
of the domain in question - It may hide much or all information about the use
of automated data processing systems. - Platform Independent Model (PIM)
- A platform independent model is a view of a
system from the platform independent viewpoint. A
PIM exhibits platform independence and is
suitable for use with a number of different
platforms of similar type.
32MDA models (2/2)
- Platform Specific Model (PSM)
- A platform specific model is a view of a system
from the platform specific viewpoint. - A PSM combines the specifications in the PIM with
the details that specify how that system uses a
particular type of platform. - Platform Model (PM)
- A platform model provides a set of technical
concepts, representing the different kinds of
parts that make up a platform and the services
provided by that platform. - It also provides, for use in a platform specific
model, concepts representing the different kinds
of elements to be used in specifying the use of
the platform by an application.
33Examples of MDA models
- CIM
- Priority must be given to shipping the oldest
deliverables - PIM
- The Deliverables are ordered according to date
for shipment - PSM/OOD
- Deliverables are sorted for shipment() in
increasing order, using their attribute date - PSM/OOP
- Use quicksort() to sort Deliverables, using
Deliverable.date as sorting key, before passing
them to shipment()
34Model transformations MDA Pattern
- Model transformation is the process of converting
one model to another model of the same system - The MDA pattern includes (at least)
- a PIM,
- a Platform Model,
- a Transformation, and
- a PSM
35Examples of MDA transformations
36Applying the MDA pattern 1) Marking
UML Profiles can be used to define the marks and
for marking PIMs
MOF QVT languages will define the mappings
37Model mappings and marks
- Mappings
- An MDA mapping provides specifications for
transformation of a PIM into a PSM for a
particular platform. The platform model will
determine the nature of the mapping - Marks
- Model instance mappings define marks
- A mark represents a concept in the PSM, which can
applied to an element of the PIM to indicate how
that element is to be transformed - Templates
- A mapping may also include templates, which are
parameterised models that specify particular
kinds of transformations - These templates are like design patterns, but may
include much more specific specifications to
guide the transformation
38Example of the result of a mapping
- interface MyClass
- int getAttributeOne()
- void setAttributeOne(int v)
- int oneOperation()
39Result of a transformation template using a
Security Profile (example)
40Marks
- Marks distinguish multiple possible targets
- Kinds of marks
- Discriminators and enumerators
- isRemote isBoolean
- Quantities
- ( if ( numInstances lt Q and frequency lt F)
LinkedList HashTable ) - Inputs
- ( append db_ to all operation names )
- ...
Local Invocation
Invocation
ltltisLocalgtgt
ltltisRemotegtgt
PIM
PSM
Remote Invocation
Mellor, 2003
41Applying the MDA pattern 2) Metamodel
transformation
MOF QVT languages define the transformations
42MDA Transformations detailed
Bezivin, 2004
43Example of transformation
UML
Attribute name String type String
AtoX
44The relation and the mapping
relation AtoX domain (UML.Attribute) name
n, type t domain (XML.Element)
name "Attribute", attrs
(XML.Attribute) name "name", value n,
(XML.Attribute) name "type", value t
mapping MAtoX refines AtoX domain
(UML.Attribute) name n, type t body
(XML.Element) name "Attribute",
attrs (XML.Attribute) name "name",
value n, (XML.Attribute) name
"type", value t
45A transformation rule (1/2)
- Transformation ClassToClass (UML, UML)
- source c1 UMLClass
- target c2 UMLClass
- source condition -- none
- target condition -- none
- mapping try PublicToPrivateAttribute on
c1.features ltgt c2.features - -- everything else remains the same
-
- Transformation PublicToPrivateAttribute (UML,
UML) source sourceAttribute
UMLAttribute target targetAttribute
UMLAttribute getter UMLOperation
setter UMLOperation source condition
sourceAttribute.visibility VisibilityKindpub
lic
46Transformation rule (2/2)
- target condition targetAttribute.visibility
VisibilityKindprivate and -- define the set
operation setter.name 'set'.concat(targetAttrib
ute.name) andsetter.parameters-gtexists( p
p.name 'new'.concat(targetAttribute.name)
and p.type targetAttribute.type ) and
setter.type OclVoid and -- define the get
operation getter.name 'get'.concat(targetAttrib
ute.name) and getter.parameters-gtisEmpty() and
getter.returntype targetAttribute.type - mapping try StringToString on sourceAttribute.n
ame ltgt targetAttribute.name try
ClassifierToClassifier on sourceAttribute.type
ltgt targetAttribute.type
Kleppe, 2003
47Applying a transformation template
48Applying the MDA pattern 3) Model merging
49Applying the MDA pattern 4) Additional
information
- Example. A particular architectural style may be
specified information may be added to
connectors to specify quality of service.
50Applying the MDA Pattern several times
- The MDA pattern can be has to be
usuallyapplied several times in succession - What is a PSM resulting from one application of
the pattern, will be a PIM in the next
application
51Example A Multimedia Application
Fuentes et al., 2003
52Multi-platform systems
- Many systems are can be built on more than one
platform - An MDA transformation can use marks from several
Platform Models to transform a PIM into a PSM
with parts of the system on several different
Platforms
53Alternative implementations
Fuentes et al., 2003
54Advantages
- Each model is independent from the rest
- Separately defined
- Each model defines its own entities, and
resides at a well-defined level of abstraction - Software development becomes model transformation
- Each step transforms (one or more) PIM at one
level into (one or more) PSM at the next level - ...Until a final system implementation (PSM) is
reached - Transformations can be automated
- We gain modularity, flexibility, and facilitate
evolution - Application models capturing business logic and
IP become corporate assets, independent from the
final implementation technologies
55The MDA Process Summary (1/2)
- A CIM of a system is prepared showing the system
in the environment in which it will operate - That model will help understand exactly what the
system is to do, independently of how the system
is implemented - A PIM is built
- It describes the system, but does not show
details of its implementation in any platform - The architect will then choose a Platform (or
several) - They enable implementation of the system with the
desired architectural qualities - Then,
- a) In model instance mapping, the PIM is marked
the architect marks elements of the PIM to
indicate the mappings to be used to transform
that PIM into a PSM or - b) In Metamodel transformations, a transformation
engine is used
56The MDA Process Summary (2/2)
- Transform the (marked) PIM into a PSM
- This can be done manually, with computer
assistance, or automatically - The input to the transformation is the marked
PIM, and the mapping - The result is the PSM, and the record of
transformation - A PSM may provide more or less detail, depending
on its purpose - A PSM will be an implementation, if it provides
all the information needed to construct a system
and to put it into operation - A PSM can be the PIM of the next iteration of the
MDA process, until a suitable implementation is
reached
57MDA components
Code Text Generators
Transfor- Mations Editors
Model Editors
Transform.Tools
Code Files
MDA bus Model Interchange (XMI, IDL o JMI)
Transform.Repository
Model Validators
Models Repository
Model Weavers
IDE
58Current MDA technologies
- Meta Object Facility (MOF)
- Unified Modelling Language (UML)
- XML Model Interchange (XMI)
- Common Warehouse Meta-model (CWM)
- Software Process Engineering Meta-model (SPEM)
- Action Semantics Language (ASL)
- Query-View-Transformation (QVT)
- Various UML profiles
- EDOC (ECA, CCA),
- UML-RT,
- EJB,
- CCM, ...
.NET
BPML
XLANG
EDOC
59MDA Tools
- ATL ATLAS Transformation Language is language for
general transformation within the MDA framework - MIA Model-in-Action is a tool that implements
the concepts of MDA. - OptimalJ is a MDA tool for J2EE.
- ArcStyler is a MDA tool for J2EE and .NET.
- UMT UML Model Transformation is a tool for model
transformation and code generation of UML/XMI
models - MTL Model transformation at Inria ModelWare
- ModFact is an Open Source project for the MDA at
LIP6 - AndroMDA is an open source code generation
framework that follows the MDA paradigm - Middlegen is a free general-purpose
database-driven code generation engine based on
JDBC , Velocity , Ant and XDoclet - OpenModel is a java-based framework for
generating executable applications from UML
models and it complements ArgoUML - MCC is a MDA tool supporting J2EE and .NET(in the
works). - Codagen Architect is MDA tool for J2EE and .NET.
- UMLX is an experimental graphical transformation
language. - MDA Transf is a MDA transformation engine
- GMT (Generative Model Transformer) is a project
to build MDA tools such as UMLX - JAMDA (Java Model Driven Architecture) is an
open-source framework for building applications
generators which create Java code from a model of
the business domain - PathMATE Model Automation Transformation
Environment is an industry's MDA environment
providing tools for analysis, and model
transformation engine - GReAT is a metamodel based graph transformation
language useful for the specification and
implementation of model-to-model transformation
60Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
61Web Engineering and Applications
- Web Engineering
- The systematic, disciplined, quantifiable
approach to the development, operation and
maintenance of Web applications. - Web Application
- An Information System which uses Web-based
technologies and platforms, and which supports
interaction through Web-based interfaces.
62Web-based Applications
- Web-based Applications Architectural Patterns
- Thin Web Client
- Minimal client-side functionalities (web browser)
- Business logic resides in the server side
- Thick Web Client
- Client-side scripting and custom objects
(controls, applets,...) - A significant amount of business logic resides in
the client - Web Delivery
- Clients participate in a distributed object
systems
Conallen, 2000
63Web-based Enterprise Layers
64Web-based Enterprise Architecture
Applets, Applications
Web Services clients
Browsers
Client Tier
servlets
JSPs
Server Tier
External Web Services
EJBs
DB
J2EE Container
CORBA ORB/CORBA Services
Middleware
Back-end Systems
Application servers
External Web Services
DB
65From three to a six layer architecture
Three layers model Six layers model
(Refined)
66Example A Travel Agent
Bezivin, 2004 many others
67Conceptual model
68Web-Apps Development proposals
- Currently, Web applications can be generated from
models - They are good code generators (i.e., ad-hoc
model compilers) - Web-Apps Modelling (pre-Web Engineering)
- Example Jim Conallens proposal
- Model Web entities (web pages, servers, forms,
etc) - MDD Web Engineering (pre-MDA)
- Examples UWE (ArgoUWE), OO-H (VisualWADE),
OOHDM, OOWS, WSDM, WebML - Model the presentation and navigation aspects
- Their conceptual models capture and successfully
handle the applications structure
69Jim Conallens Model (excerpt)
70OO-H (Object-Oriented Hypermedia)
Object-Oriented Hypermedia Method
71OO-H Domain (Conceptual) Model
72OO-H Navigation Model
73OO-H Presentation Model
74OO-H Final result
75UWE (UML-based Web Engineering)
Koch et al., 2001
76UWE Metamodel (1/2)
77UWE Metamodel (2/2)
78UWE Conceptual model
79UWE Navigational Model
80UWE Presentation model Structural view
81UWE Presentation model User Interface
82Web-Apps Development proposalsSummary
- Web-Apps Modelling (pre-Web Engineering)
- Example Jim Conallens proposal
- Model Web entities (web pages, servers, forms,
etc) - Too low level (basically, useful to model the PSM
only) - MDD Web Engineering (pre-MDA)
- Examples UWE (ArgoUWE), OO-H (VisualWADE) ,
OOHDM, OOWS, WSDM - Model the presentation and navigation aspects
- Their conceptual models capture and successfully
handle the applications structure - Do not address (properly) other aspects business
processes, choreography, distribution, etc. - Ad-hoc code generation (i.e., model compilation)
83Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
84MDA for Web Applications
- MDA is suitable for developing distributed
systems that are made up of components running on
different platforms/tiers. For example, there
may be web tier implemented on ASP.Net, but which
talks to a middle-tier using EJBs, with a
back-end being a Sybase RDBMS. MDA can generate
the software for the tiers, plus the code to glue
it all together. - Haywood, 2004
85Is MDA a right option for you?
- Are models important for you?
- i.e., does your business care about models?
- Are your platforms that unstable?
- Could your development process cope?
- Including your development team... New skills are
required! - Would your business buy it?
- Isnt having two different flavours (Schools) of
MDA somewhat worrying? - Elaborationalists (e.g. Optimal/J, ArcStyler) 70
executable annotated PIMs - Translationists (e.g. Executable UML) 100
executable PIMs - Down at the coal-face, do you honestly
believe it would work? - Will be able to generate code from models, even
when we do not yet agree on how to represent
behaviour?
Dan Haywood, 2004
86The two current MDA approaches
- Models do not contain all the information (e.g.
behaviour) - Missing information is added as refinement in the
PSM or code - Round-trip engineering is sometimes possible
- Models are a complete, executable statement of a
solution - Model compilers translate these models into a
running system - ASL are used to model behaviour
- No manual intervention required
87The MDA way
- Define the system PIMs (structure, behaviour,
navigation, presentation, components,
distribution, ...) - Select the target platform(s)
- Web pages (navigation), Java (Travel Agency),
WSDL and JWSDP (external services banks,
airlines, ...),... - Define the transformations
- Either using transformation rules between the PIM
metamodels (the PIM languages) and the target
platforms metamodels - Or by marking the PIM elements using the marks
defined by the mappings - Apply the mappings to the PIM elements
- Using a transformation engine, or manually
- This will produce a set of elements of different
PSM - Bridges (e.g., calls) between elements in
heterogeneous target PSMs should be defined!
88The Travel Agent Example
Bezivin, 2004 many others
89PIM of the system (structure)
90PIM of the system (Processes excerpt)
(EDOC)
Bezivin, 2004
91Transforming the PIM (structure)
- Metamodel transformations
- An alternative approach to using marks (taken
from the UML Profile that defines the Platform) - More powerful
- More general
- The basis of the QVT proposals
- Currently, the preferred option
- Let us see how to transform the PIM of the system
structure to Java, WSDL, and JWSDP
implementations - Transformations between the different metamodels
should be defined - UMLltgtJava, UMLltgtWSDL, UMLltgtJWSDP,
92UML Metamodel (over-simplified)
93Java Metamodel (simplified)
94UML to Java transformation (ATL)
95WSDL Metamodel
96UML to WSDL transformation (ATL)
97JWSDP Metamodel
98PSM using Java, WS, and JWSDP
99Transforming the PIM (behaviour)
- Metamodel transformations seem to be appropriate
for behaviour as well - No agreed notation for describing behaviour
- State-based approaches (state machines, ASL, SDL)
- Declarative approaches (pre-post, contracts)
- Protocol-based approaches (sequence and
interaction diagrams) - They do not share a common behavioural model
- Either vanilla UML or some UML dialects and
Profiles are commonly used (UML Profile for EDOC,
UML-RT,...)
100PIM of the system (Processes excerpt)
(EDOC)
Bezivin, 2004
101EDOC Process Components to Java
Bezivin, 2004
102MDA-based proposals Summary
- MDA-based (model transformations) ATLASs,
Optimal/J, ArcStyler - Structured model compilation, according to MDA
approach and disciplines - Very good treatment of the business structure
(Conceptual Model) modularity, platform
independence, separation of concerns, .... - Very simplistic treatment of navigation and
presentation - Lack of consensus to model behaviour and
choreography - Optimal/J and ArcStyler are very much focused on
particular technologies (J2EE, .NET)
103And now?
- Define all system PIMs
- Analyse each proposals coverage
- Play with current tools, see how far it can go,
and how much you can integrate it within you
development processes - Try to use each proposal and tool wherever it
shows its strength and benefits - Identify gaps not covered by any of the current
proposals - Research and development activities
- Adapt current proposals to make them conformant
to MDA (and thus make them interoperable, with
modular design, etc.) - Develop new proposals that fill the gaps
- Work on more tools
104Models (PIMs) of a Web Application
105Models covered by Conallen
106Models covered by UWE
107Models covered by OO-H
108Models covered by Optimal/J
109Models covered by ATLAS works
110Lets try to do it right!
- Define all system PIMs
- Use/adapt each proposal to model the aspects it
is more suitable, e.g. - OO-H or UWE can model navigation and presentation
- But adapt them so they do not generate code in an
ad-hoc manner, but according to the MDA
principles - ATL can be used for metamodel transformations
(between the models generated by each proposal) - Optimal/J and ArcStyler can generate the EJB or
.NET code - But adapt them so they can generate other
platforms code more naturally - Conallens proposal can model the PSM
- ...And the gaps?
111Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
112Next steps
MDA is still in its infancy...
- Define and implement MDA components
- Model Editors and Builders
- Model Compilers
- Model Transformers and Weavers
- Transformation Languages and Engines (QVT)
- Sort out the Behaviour, Choreography,
Distribution, Transactions,... - Agree on a set of behavioural notations with
well-defined semantics - Agree on notations for expressing choreography
- Be able to deal with the aspects at different
conceptual levels (CIM, PIM, PSM) - Deal with COTS and legacy applications
- MDA seems to imply a top-down development
process. What do we do with re-use? - Extra functional requirements? ....
- Architecture and Architectural styles? ...
113Agenda
- Introduction Models and Metamodels
- MDA primer
- Web-based Applications
- Applying MDA to Web-based Applications
- What is left, and what is next
- Conclusions
114Conclusions
- MDA seems to be the right way to go
- Conceptually clean and well defined
- Protect investment and IP by separating the
business model from the supporting technologies - Model centric!
- But there is still a long way ahead
- (see previous slides)
- and MDA is not the panacea
- Many sceptical positions and critiques
- No manual coding is not 100 achievable in
general - We need to identify the domains in which MDA can
be effectively used, and develop tools for it
(e.g., Web-based systems) - Research is required!
115Bottom line Ideas to take home with you
- Capture each system concern (subject matter) in
an independent model - Presentation, navegation, business processes,
business rules, functionality, ... - Each models deals with an independent subject
matter, each one is platform independent - Decomposition should aim at modular separation
of concerns (changes in one subject matter do
not need to imply changes in models of other
concerns) - Use mappings between the models representing
each concern - Refinements, abstractions, representations,
migrations,... - Models and Mappings become your CORPORATE
ASSETS - Use tools to automate the mappings
116Basic References Models and MDA
- J. Bézivin. In Search of a Basic Principle for
Model Driven Engineering. Upgrade 5(2)21-24,
2004. - D. Frankel. Model Driven Architecture Applying
MDA to Enterprise Computing. J.W. Sons, 2003. - L. Fuentes, A. Vallecillo. An Introduction to
UML Profiles. Upgrade 5(2)6-13, 2004. - L. Fuentes, M. Pinto, A. Vallecillo. "How MDA
Can Help Designing Component- and Aspect-based
Applications". In Proc. of EDOC 2003, Brisbane,
Australia, Sept. 2003. - T. Gardner et al. A review of OMG MOF 2.0
Query/Views/Transformations Submissions and
Recommendations towards the Final Standard. July
2003. www.omg.org/docs/ad/03-08-02.pdf - D. Haywood. MDA in a nutshell. May 2004.
http//theserverside.com/articles/ - A. Kleppe, J. Warmer, W. Bast. MDA Explained
The Model Driven Architecture, Practice and
Promise. Addison-Wesley, 2003. - A. McNeile. MDA The Vision with the Hole?,
2003. http//www.metamaxim.com/download/documents/
MDAv1.pdf - A. McNeile, N. Simmons. Methods of behaviour
modelling, 2004. www.metamaxim.com - S. Mellor, M. Balcer. Executable UML A
Foundation for Model Driven Architecture.
Addison-Wesley, 2002. - S. Mellor, MDA Distilled. www.projtech.com
- OMG. MDA Guide. OMG doc. ab/2003-05-01.
- OMG. Model Driven Architecture. OMG doc.
ormsc/2001-07-01. - Ed Seidewitz. What Models Mean. IEEE Software
20(5)26-32, Sep/Oct 2003. - B. Selic. The Pragmatics of Model-Driven
Development. IEEE Software 20(5)19-25, Sep/Oct
2003. - D. Thomas. MDA Revenge of the Modellers or UML
Utopia? IEEE Software 21(4)15-17, May2004. - J. Warmer, A. Kleppe. The Object Constraint
Language Getting Your Models Ready for MDA,
Second Edition, Addison-Wesley, 2003.
117Basic References Models Web Eng.
- L. Baresi, F. Garzotto, P. Paolini. Extending
UML for Modelling Web Applications. In Proc. of
34th HICSS, 2001. - J. Bézivin et al. An Experiment in Mapping Web
Services to Implementation Platforms. Research
Report04.01, Univ. Nantes, March 2004. - S. Ceri, P. Fraternali, A. Bongio. Web Modelling
Language (WebML) A modelling language for
designing Web sites. In Proc. of the 9th WWW
Conference, May 2000. - J. Conallen. Building Web Applications with
UML. Addison-Wesley, 2000. - J. Gomez, C. Cachero, O. Pastor. On Conceptual
Modelling of Device-independent Web Applications
Towards a Web Engineering Approach. IEEE
Multimedia 8(2)20-32, 2001. - N. Koch, A. Kraus, R. Hennicker. The Authoring
Process of the UML-based Web Engineering
Approach. In Proc. of IWWOST 2001, Valencia,
Spain, 2001. - N. Koch, A. Kraus. Towards a Common Metamodel
for the Development of Web Applications. In
Proc. of ICWE 2003, LNCS 2722, pp. 497-506, 2003. - N. Koch et al. Modelling Web Business Processes
in Web Application Models. In Journal of Web
Engineering 3(1)22-49, 2004. - P-A. Muller, P. Studer, J. Bézivin. Platform
Independent Web Application Modelling. In Proc.
of UML 2003, LNCS 2863, pp. 220-233, 2003. - D. Schwabe, L. Esmeraldo, G. Rossi, F. Lyardet.
Engineering Web Applications for Reuse. IEEE
Multimedia, Special issue on Web Engineering,
1(3)20-31, 2001. - D. Schwabe, G. Rossi. Designing Hypermedia
Applications using OOHDM. In Proc. of Workshop
on Hypermedia Development Processes, Methods and
Models (Hypertext98), 1998. - D. Schwabe, O. Pastor (eds.). Proc. of IWWOST
2001. http//www.dsic.upv.es/west/iwwost01 - O. de Troyer, S. Casteleyn. WSDM A user-centred
design method for Web sites. In Proc. of the 7th
WWW Conference, May 1998.
118End of Presentation
ICWE'04
http//www.lcc.uma.es/av/misConfs/ICWE2004/