Model driven engineering (MDE) aims to shift the focus of software development from coding to modeling. Models being at a higher level of abstraction are easy to understand and analyze for desired properties, leading to better control over software development life cycle. Models are also used to automate generation of implementation artefacts resulting in greater productivity and uniform quality. The focus of the MDE community is largely on exploring modeling languages and model transformation techniques. Not much attention is paid to the issues of scale. Large business applications are typically developed over multiple geographical locations and have a lifecycle running into decades. This puts several additional demands on MDE infrastructure - multi-user multi-site model repository, versioning and configuration management support, change-driven incremental processes etc. We describe our MDE infrastructure, experience of using it to deliver several large business applications over past 15 years, and the lessons learnt.
[1]
David Lorge Parnas,et al.
Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction"
,
2004
.
[2]
Vinay Kulkarni,et al.
Generating Enterprise Applications from Models
,
2002,
OOIS Workshops.
[3]
MOF Query / Views / Transformations
,
2002
.
[4]
Martin Gogolla,et al.
Object Constraint Language
,
2009,
Encyclopedia of Database Systems.
[5]
Reidar Conradi,et al.
Version models for software configuration management
,
1998,
CSUR.
[6]
Martin Gogolla.
Unified Modeling Language
,
2009,
Encyclopedia of Database Systems.
[7]
Vinay Kulkarni,et al.
An abstraction for reusable MDD components: model-based generation of model-based code generators
,
2008,
GPCE '08.
[8]
K. Czarnecki,et al.
Cardinality-Based Feature Modeling and Constraints : A Progress Report
,
2005
.
[9]
Qing Li,et al.
Unified Modeling Language
,
2009
.