A platform-independent model (PIM) in
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
is a model of a
software system
A software system is a system of intercommunicating components based on software forming part of a computer system (a combination of hardware and software). It "consists of a number of separate programs, configuration files, which are used to se ...
or
business system
Business is the practice of making one's living or making money by producing or buying and selling products (such as goods and services). It is also "any activity or enterprise entered into for profit."
Having a business name does not separat ...
that is independent of the specific technological platform used to implement it.
The term platform-independent model is most frequently used in the context of the
model-driven architecture
Model Driven Architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
approach. This model-driven architecture approach corresponds to the
Object Management Group
The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.
Business activities
The goal of the OMG was a common portabl ...
vision of
model-driven engineering
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract re ...
.
The main idea is that it should be possible to use a
model transformation language to transform a platform-independent model into a
platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indis ...
. In order to achieve this transformation, one can use a language compliant to the newly defined
QVT
QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group.
Overview
Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
standard. Examples of such languages are
VIATRA
VIATRA
is an open-source model transformation framework based on the Eclipse Modeling Framework (EMF) and hosted by the Eclipse Foundation.
VIATRA supports the development of model transformations with specific focus on event-driven,
reactive t ...
or
ATLAS Transformation Language
ATL (ATLAS Transformation Language) is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the AtlanMod team (previously called ATLAS Group). In the field of Model-Driven Engineering (M ...
. It means execution of the program is not restricted by the type of
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
used.
Related concepts
*
Domain-specific modelling
*
Eclipse Modeling Framework
Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model.
From a model specification described in XML Metadata Interchange ...
*
Generic Modeling Environment
Generic Modeling Environment (GME) is a model-integrated program synthesis tool for creating domain-specific models of large-scale systems. GME allows users to define new modeling languages using UML-based metamodels. GME was developed by the In ...
*
Graphical Modeling Framework
The Graphical Modeling Framework (GMF) is a framework within the Eclipse platform. It provides a generative component and runtime infrastructure for developing graphical editors based on the Eclipse Modeling Framework (EMF) and Graphical Editing ...
*
Interaction Flow Modeling Language
The Interaction Flow Modeling Language (IFML) is a standardized modeling language in the field of software engineering. IFML includes a set of graphic notations to create visual models of user interactions and front-end behavior in software system ...
*
Kermeta
Kermeta is a modeling and programming language for metamodel engineering.
History
The Kermeta language was initiated by Franck Fleurey in 2005 within thTriskellteam of IRISA (gathering researchers of the INRIA, CNRS, INSA and the University of Re ...
*
KM3
*
Meta-modeling
A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
*
Model Transformation Language
*
OCL
*
Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indis ...
*
SmartQVT
*
SysML
The Systems Modeling Language (SysML) is a general-purpose modeling language for systems engineering applications. It supports the specification, analysis, design, verification and validation of a broad range of systems and systems-of-systems.
S ...
*
Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
*
XMI
References
{{Unreferenced, date=November 2008
Software architecture