Company - Model-driven Implementation of 101companies Case study
This DSL was build to implement a number of features for the 101companies project. It demonstrates the application of MDSD based on EMF
and generative technologies of the Dropsbox.
The implementation realises the features following features of 101companies:
- Company - EMF metamodel for companies specifications, built using TextEcore
- Cut - operation to cut salaries of all employes, built using eJava
- Total - attribute to aggregate total salaries, built using JastEMF
- Serialization - serialisation of companies models to XMI/text syntax, built using EMF/EMFText
- Vizualisation - visualisation of comanies models, built using a model transformation to the DOT language
- Depth - operation to calculate company and department depth, built using eJava
- Mentoring - cross references in company models to declare employees mentor, built using EMF and EMFText
- Precedence - constraint to ensure that salary of manager is bigger than salary of his employees, built using JastEMF
- Parsing - parsing of textual notation for companies, built using EMFText
In addition to these standard 101companies features the implementation also contibutes
- Rename Refactoring - refactoring to rename company elements, built with Refactory
- Extract Subdepartment - refactoring to extract subdepartments, built with Refactory
- (Meta) Feature - Product-line that enables the derivation of variants of our 101companies implementation, built with FeatureMapper
Screenshot
CS Specification
company.text.cs
Metamodel
company.text.ecore
comapny.genmodel
Plugins
org.emftext.language.company
org.emftext.language.company.resource.company
org.emftext.language.company.resource.company.ui
CW