Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Automatic code generation from design patterns
IBM Systems Journal
Effective Java programming language guide
Effective Java programming language guide
Executable UML: A Foundation for Model-Driven Architectures
Executable UML: A Foundation for Model-Driven Architectures
The Object Constraint Language: Getting Your Models Ready for MDA
The Object Constraint Language: Getting Your Models Ready for MDA
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
MDA Distilled
Structured Analysis and System Specification
Structured Analysis and System Specification
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
MCC: a model transformation environment
ECMDA-FA'06 Proceedings of the Second European conference on Model Driven Architecture: foundations and Applications
Hi-index | 0.00 |
A highly significant benefit of MDA is that it raises the level of abstraction at which the soft-ware developer is able to work. However, the languages available to the developer have not seen much change in the last decade. Modeling languages offer high level concepts, but the pre-dominant modeling language (UML) offers too little expressive power to be able to specify a system completely. Meanwhile, the level of abstraction of most programming language con-cepts is the same as 10 to 15 years ago. Although transformation tools may to some extent bridge the gap between modeling and programming languages, in practice the developer still needs to do both modeling and programming. This means switching between the two levels of abstractions, which is difficult for most people. We argue that a general purpose, high level, software language is necessary to get MDA adopted. This language will enable any developer to focus on the problem at hand while the supporting tools – transformation tools or generators- take care of the nitty gritty details. This paper introduces an early version of such a language, which brings together a number of powerful concepts from various sources: UML, OCL, design patterns, existing programming languages, and eventually aspect-oriented languages.