| Advantages | Potential |
|---|
increased efficiency, improved productivity, reduced time and expense
| - automation of repeatable processes
- separation of expertise and technology
- abstraction
- formalization and compression of analysis and design results
- reusability (architecture, DSLs, generators, cartridges)
- reduction of routine activities
- automatic generation of tests and documentation
|
| improved quality and servicability | - well-defined, binding architecture
- automated implementation of the architecture
- conservation of expert knowledge
- separation of expertise and technology
- (consistent) quality of generated source code and other generated resources
- easier correction of errors
- consistency between models, applications and documentation
|
| portability | - focus on platform-independent models
- increasing availability of generator cartridges for common target platforms
- increasing importance of transformation languages
|
| flexibility | - option of automating adjustments through the modification of the generator
- early feedback through generated prototypes
|