Consistency, at design, architecture and code levels, is an important ingredient of successful development projects. Developers use patterns, best-practices and partial code generators to achieve consistency at these levels. But often the consistency cannot be guaranteed and/or enforced. By using a software factory, it is possible to specify portions of the target software architecture by means of pre-defined model transformations and code generators.
In big systems, much of the code can be very similar. Copy-paste programming is an often used -but for a lot of reasons wrong- practice employed to speed up the development. This is the practice of copying similar code adapting where needed usually resulting in hard to adapt and maintain code-base. Using a model-driven approach in combination with custom code generators (in the context of a software factory), developers no longer need to use copy-paste programming. Instead, custom model-driven code generators are created that can generate all required code.
Software Factories are comprised of both model transformations as well as code generators. Additional components, such as user-defined UI, automatically generated wizards and settings, can also be included into the Software Factory. With Software Factories, it is possible to generate a complete application from a user-defined platform independent domain model or from a user-defined DSL.
With Software Factories, it is possible to:
In this short talk, we will look at how a software factory can indeed make your development process faster, better and more consistent. We will do so by touching upon the concepts of an automated software factory as well as briefly showing how a software factory works in practice.
Dr. Bastiaan Schönhage is currently working as Product Manager for OptimalJ in Compuware's Product Management & Strategy department. Prior to that Bastiaan was the lead developer for several projects at the Amsterdam Development Lab including the OptimalJ built on Eclipse project. Before joining Compuware he worked at Object Technology International (fully-owned subsidiary of IBM) where he worked on a European Research (IST) project for component-based development in the embedded market (PECOS). Dr. Schönhage is the recipient of both an MSc and a PhD from the Vrije Universiteit in Amsterdam.