Nowadays the automation of activities in various sectors is widely accepted and desirable. The aim is to deliver the highest quality product as quickly as possible using the lowest amount of energy and resources possible. This trend can also be observed in connection with software development.
Enterprise software development offers several challenges related to maintainability, transparency, clarity, code quality and testability, all of which can be tackled by automating certain development steps.
During the development of different products we often perceive how hard and cumbersome it can be to maintain thousands of lines of legacy code. Also, creating a new software product usually involves a lot of activities where special knowledge is not needed, e.g. implementing classes in the new product.
Domain-Driven Design as software development approach which is becoming more popular allows us to create well formalized models with high information to support code generation.
In the first part of my thesis I do a short examination about the theory of Domain-Driven Design and related solutions. I discuss the topic of modeling and meta-modeling and the theory of code generation as well.
Later I describe in detail the design and creation of a flexible, easily extensible code generation support framework which is capable of generating source code in different programming languages from the same source UML model. I also introduce the necessary meta-models and the different transaction steps between them. Finally I create a small demo application where the source code – apart from the small business logic – and the NHibernate files to access the database is produced using the code generator.