The notions of “platform” and “platform model” have a fundamental role to play in the MDA vision of software engineering, since they form the basis for distinguishing between Platform Independent Models (PIMs) and Platform Specific Models (PSMs) and for defining the input that allows transformation tools to map PIMs into PSMs. However, the de facto notions of platform and platform model that prevail in the MDA community today are overly narrow and only vaguely defined. In the MDA literature, the basic capability that an artifact is required to have to be characterized as a platform is the ability to support the execution of a software application. Beyond that, there is no consensus on what features a platform should possess or what form platform models should take. One school of thought holds that a platform model is essentially a Domain Specific Language (DSL) and that MDA technology is essentially about the definition and use of DSLs, but this fails to capture some important properties that are usually associated with the notion of platform. In this chapter we explain why this is the case and discuss what information a generalized platform notion should encapsulate and what form a model of such a platform should take. We present a notion of “latform” based on four minimalistic, orthogonal elements: Language, predefined types, predefined instances and patterns, and explain how this notion can be applied to contemporary software platforms such as Java, J2EE and .NET.
[1]
Gabriel A. Wainer,et al.
A Model-Driven Technique for Development of Embedded Systems Based on the DEVS Formalism
,
2005,
Model-Driven Software Development.
[2]
Douglas C. Schmidt,et al.
A Model-driven Development Environment for Composing and Validating Distributed Real-time and Embedded Systems : A Case Study ∗
,
2004
.
[3]
David Robson,et al.
Smalltalk-80: The Language and Its Implementation
,
1983
.
[4]
Dániel Varró,et al.
Using Graph Transformation for Practical Model-Driven Software Engineering
,
2005,
Model-Driven Software Development.
[5]
Bernhard Rumpe,et al.
Defining UML family members using prefaces
,
1999,
Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32.
[6]
Imed Hammouda.
A Tool Infrastructure for Model-Driven Development Using Aspectual Patterns
,
2005,
Model-Driven Software Development.
[7]
Jack Greenfield,et al.
Software factories: assembling applications with patterns, models, frameworks and tools
,
2004,
OOPSLA '03.
[8]
Andreas Metzger,et al.
A Systematic Look at Model Transformations
,
2005,
Model-Driven Software Development.
[9]
Shane Sendall,et al.
Supporting Model-to-Model Transformations: The VMT Approach
,
2003
.
[10]
Colin Atkinson,et al.
Aspect-Oriented Development with Stratified Frameworks
,
2003,
IEEE Softw..