Program refactoring, program synthesis, and model-driven development
CC'07 Proceedings of the 16th international conference on Compiler construction
Raising family is a good practice
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Use of SPLE to deliver custom solutions at product cost: challenges and a way forward
Proceedings of the 2nd International Workshop on Product Line Approaches in Software Engineering
Early experience with agile methodology in a model-driven approach
Proceedings of the 14th international conference on Model driven engineering languages and systems
A model-driven architectural framework for integration-capable enterprise application product lines
ECMDA-FA'06 Proceedings of the Second European conference on Model Driven Architecture: foundations and Applications
Towards business application product lines
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Cost estimation for model-driven engineering
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
Modern business systems need to cater to rapidly evolving business requirements in an ever-shrinking window of opportunity. Modern business systems also need to keep pace with rapid advances in technology. For developing large and complex applications, industrial practice has traditionally used a combination of non-formal notations and methods. Different notations are used to specify the properties of different aspects of an application and these specifications are transformed into their corresponding implementations through the steps of a development process. The development process relies heavily on manual verification to ensure the different pieces integrate into a consistent whole. This is an expensive and error-prone process demanding large teams with broad-ranging expertise in business domain, architecture and technology platforms. We present a model-driven development approach that addresses this problem by providing a set of modeling notations for specifying different layers of a system namely user interface, application functionality and database; a set of code generators that transform these models into platform-specific implementations; an abstraction for organizing application specification into work-units and an associated tool-assisted development process. Models, being at a higher level of abstraction, are easier to understand and verify for properties of interest. Model based code generation incorporating proven design and architectural patterns results in significant gains in productivity and uniformly high quality. Models defined using these different notations are instances of a single meta model. This enables well-formedness constraints to be specified between different models ensuring their consistency leading to smooth integration of implementations of these models. The approach has been used extensively to construct medium and large-scale enterprise applications resulting in improved productivity, better quality and platform independence. We also discuss issues that need to be addressed for the approach to gain wider acceptance in the industry.