Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Introduction to MDA
1. MDA
> Model Driven Architecture
> Orçun Dayıbaş
> December, 2006
> METU, Ankara
2. Agenda
> Introduction
> What is MDA?
> Some Key Terms
> Development Life Cycle
> Meta-modeling Architecture
> Language for PIM
> Conclusion
2
3. Hetereogenity in
Software Development
> Programming Languages
Java, C/C++, C#, COBOL, ADA, V. Basic, Eiffel,
Smalltalk, ...
> Operating Systems
Windows (3.1 -> Vista), MacOS, Unix, Mobile (WinCE,
PalmOS), Embedded, ...
> Networks
Ethernet, IP, FireWire, USB, Bluetooth, HomeRF, ...
> There will be no consensus on below subjects
• Hardware
• Operating System
• Network Protocols
• Programming Languages
3
4. Middleware solution
> Middleware is a software layer that masks hetereogentiy
Placed between operating systems and application
components.
> Middleware itself has various approaches
• CORBA
• COM / DCOM
• Java / EJB
• XML / SOAPNetworks
> No consensus again
None of them will come out on top of others. Hence,
the problem remains.
> Can we agree at a higher level?
OMG says; Yes!
4
5. What is MDA? (1/2)
> Next level of abstraction; model-based development
5
7. MDA in Practice
> Reduced cost and complexity of application development.
• Model-oriented implementation.
> Improved application quality and validation at model
level.
• Constraint based, generated test cases.
> Reuse of business models
> Platform independence
> Rapid inclusion of emerging technologies
• Take a business model (off the shelf).
• Take a implementation model (off the shelf).
• Describe links between them.
• Generate the system.
> Available modelling products
• ArcStyler, iUML, OptimalJ, ...
7
8. Basic Concepts of MDA
> Model
A model is a formal specification of the function,
structure and behavior of a system.
> Models of different systems are structured explicitly into:
• Platform Independent Models (PIM)
• Platform Specific Models (PSM)
> PIM
A “formal” specification of the structure and function
of a system that abstracts away technical detail.
> PSM
Specifies how the functionality specified in a PIM is
realized on a particular platform.
8
9. Developing in MDA(1/2)
> Create the PIM
• All MDA development projects start with the creation
of a PIM.
• PIM at this level represents business functionality and
behavior.
> Create and map the PSM
• After the first iteration, PIM is input to mapping
which will produce PSM.
• PIM can be mapped either to a single platform or to
multiple platforms
PIM
maps to maps to
maps to
CORBA
Model
Java/EJB
Model … Other Model
9
10. Developing in MDA(2/2)
> Generating Application
An MDA tool generates all or most of the
implementation code for the deployment technology
selected by the developer
PIM
maps to maps to
maps to
CORBA
Model
Java/EJB
Model … Other Model
PSMs
CORBA
Imp.
Java/EJB
Imp. … Other Imp.
Implementations 10
12. The Four-Layer
Architecture of OMG(2/2)
> Beyond M3, M4?
Yes, we could build a meta-model of M3, but the
modeling language we use would itself be at M3.
Hence, we do not need new M4.
MOF
(class, attribute, association) M3
UML, CWM
(class, att., assoc., state, ...) M2
Application
(classes, DB tables, ...) M1
Data of the Application M0
(instances, table rows, ...)
12
14. UML as a PIM Language
> UML
• Based on Object Orientation.
• Strong in modeling stractural aspects of the system.
• Weak in modeling behavioral parts.
> xUML (eXecutable UML)
• Plain UML + AS (Action Semantics)
• Relays on state machine approach.
• State machine approach is suitable for specific
domains (esp. embedded).
• The AS language is not a very high-level language.
14
15. COSEML as a PIM
Language
> Decomposition
• Based on Component Orientation.
• In each iteration converges to existent components.
• Weak in modeling behavioral parts.
> Over Specification
• Over-specification of the Component Orientation
provides easier transformation for mapping PIM to
PSM.
> Dynamic or behavioral parts of system
• COSEML needs some action semantics.
15
17. References
> OMG’s MDA An Architecture for Modeling
Desmond D’Souza
> MDA Distilled: Principles of Model-Driven
Architecture
Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise
> OMG’s Model Driven Architecture
Davide Buscaldi
> MDA Explained: Practice and Promise
Anneke Kleppe, Jos Warmer, Wim Bast
> Model-Driven Architecture: Vision,
Standards And Emerging Technologies
John D. Poole
17
Editor's Notes
~3 million COBOL Programmers ~1.6 million VB Programmers ~1.1 million C/C++ Programmers (Department of Defense Survey)
“ The entire history of software engineering is that of the rise in levels of abstraction" said Grady Booch
MDA is a meta-design pattern
Take a model off the shelf. Subset the model as necessary. Take models of the implementation technologies off the shelf. Describe how the models are to be linked. Generate the system.
PIM is expressed using UML. PSM is expressed using UML extended with platform specific profiles.
All MDA development projects start with the creation of a PIM . PIM at this level represents business functionality and behavior, undistorted by technology details MDA application-modeling tools contain modeling tools contain representations of Pervasive Services and Domain PSM Code is partially automatic and partially hand-written PIM can be mapped either to a single platform or to multiple platforms
Re-integration on new platforms can be done by reverse engineering the existing application into a model and redeploy
Can we build a meta-model of M3 ?
M0 contains the data of the application (instance at runtime, or rows in relational database tables). M1 contains the application (the classes of an object-oriented system, or the table definitions of a relational database). M2 contains the metadata that captures the modeling language (UML elements such as Class, Attribute, and Operation). M3 is the meta - meta - data that describes the properties that metadata can exhibit. This is the level at which modeling languages and meta - models operate, providing for interchange between tools. CWM: Common Warehouse Metamodel
MOF is a standard defining a common, abstract language for the specification of metamodels. (MOF: Meta Object Facility) XMI is a standard that maps the MOF to XML (XMI: XML Metadata Interchange) The CWM is metadata standard for data warehousing and business intelligence (CWM: Common Warehouse Metamodel) CWM also is defined by MOF and is drawn by using UML
The weak area in UML is in the behavioral or dynamic part. UML includes many different diagrams to model dynamics, but their definition is not formal and complete enough to enable the generation of a PSM. For example, what code (for any platform) would you generate from an interaction diagram, or from a use case? In xUML, each state is enhanced with a procedure written in the AS. Relying on state machines to specify complete behavior is only useful in specific domains, especially embedded software development. The AS language is not a very high-level language. In fact, the concepts used are at the same abstraction level as a PSM. ou will have to write the same amount of code, at the same level of abstraction.
Due to the domain analysis based decomposition, outputs reusable components. COSEML also need some action semantics for full PIM modeling and automatic PSM converting.