Framework-specific modeling language: Difference between revisions

Content deleted Content added
initial content
 
(24 intermediate revisions by 11 users not shown)
Line 1:
A '''framework-specific modeling language'''<ref name="fsmlsWithRte">M. Antkiewicz, K. Czarnecki. ''Framework-Specific Modeling Languages with Round-Trip Engineering''. In O. Nierstrasz, J. Whittle, D. Harel, G. Reggio, editors, MoDELS 2006 - Model Driven Engineering Languages and Systems, 9th International Conference, Genoa, Italy, October 2006.</ref> ('''FSML''') is a kind of [[___domain-specific modeling language]] which is designed for an [[Application framework| object-oriented application framework]].
=Definition=
 
A Framework-Specific Modeling Language (FSML) is a kind of [[Domain-specific modeling language | Domain-Specific Modeling Language]] which is designed for an [[Application_framework | Object-Oriented Appliaction Framework]].
FSMLs define ''framework-provided abstractions'' as FSML ''concepts'' and decompose the abstractions into ''features''. The features represent implementation steps or choices.
 
The features represent implementation steps or choices.
A FSML concept can be configured by selecting features and providing values for features.
Such a concept configuration represents how the concept should be implemented in the code. In other words, concept configuration describes how the framework should be ''completed'' in order to create the implementation of the concept.
In other words, concept configuration describes how the framework should be ''completed'' in order to create the implementation of the concept.
 
==Applications==
FSMLs are used in [[Modelmodel-driven_developmentdriven | Model-Driven Developmentdevelopment]] for creating models or specifications of software to be built.
FSMLs enable
* the creation of the models from the framework completion code (i.e.that is, automated [[Reverse_engineering | reverse engineering]])
* the creation of the framework completion code from the models (i.e.that is, automated forward engineering)
* code verification through constraint checking on the model
* automated [[Roundround-trip_engineeringtrip | Round-Trip Engineeringengineering]]
 
==Examples==
''Eclipse Workbench Part Interaction FSML''
<ref name="wpiFsml">M. Antkiewicz, K. Czarnecki. ''Eclipse Workbench Part Interaction FSML''. Technical Report 2006-09, Electrical & Computer Engineering, University of Waterloo, 2006.</ref>
<ref name="wpiDemo">M. Antkiewicz. ''Round-Trip Engineering of Eclipse Plug-Ins Using Eclipse Workbench Part Interaction FSML''. In OOPSLA'06 Companion, OOPSLA, Portland, Oregon, USA, Oct 22-26, 2006.</ref>
 
An example FSML for modeling Eclipse Parts (that is, editors and views) and Part Interactions (for example listens to parts, requires adapter, provides selection).
The prototype implementation supports automated round-trip engineering of Eclipse plug-ins that implement workbench parts and part interactions.
 
==See also==
*[[General-purpose modeling]] (GPM)
*[[Model-driven engineering]] (MDE)
*[[Domain-specific language]] (DSL)
*[[Model-driven architecture]] (MDA)
*[[Meta-Object Facility]] (MOF)
 
==References==
{{Reflist}}
 
[[Category:Specification languages]]
[[Category:Modeling languages]]