Design and Implementation of Code Generator for Model-Driven Software Development

No Thumbnail Available



Journal Title

Journal ISSN

Volume Title


Addis Ababa University


The field of software development has been in constant improvement since its inception. Several important milestones such as the development of high level languages, provision of better methodologies, improvements in IDEs and the advent of the object oriented approach have been part of a movement toward higher quality and better productivity in software development. The use of modeling to analyze requirements and realize software designs has been one of the significant and impactful additions to a software developer‟s arsenal of tools. UML is a modeling standard that has gained widespread use in software development. Models provide the ability to separate the core functionality of a software system from the implementation details which are platform dependent. The task of adding the implementation details and transforming a model into useable software has traditionally been a manual task. As such, the effort of maintaining both model and code has been a drain on the productivity of developers and has reduced the effectiveness of models. Model driven development is an approach of using models to automatically generate the source code implementation of a software system. The MDA approach has been gaining ground as the model driven approach of choice because of its use of UML and standards based nature. The MDA solution is to generate all code of a system from models and concentrate on maintaining models only. However, due to shortfalls of code generation tools and the UML language itself, true MDA has not been realized. Instead, partial code generation is supported. While this is helpful, the separation between models and code has remained. This project was proposed in the interest of solving this problem. The approach taken in this work is to allow re-integration of generated code into the model and give the developer the opportunity to work on either side of the transformation interchangeably. A prototype has been developed to this end. The prototype has shown the viability of this approach within the context of three major UML diagrams and one output language. Keywords: Software development, Model driven, Code generation



Software Development; Model Driven; Code Generation