Q&A: Software Engineering

Actifsource code generator for any programming language

We'd like to start a new software project! Is Actifsource suitable for my project?

The model-driven approach helps in any complex software project. As a rule of thumb, answer the following question:

  • Are you or your developers working with the copy/paste/modify approach?

Doing copy/paste/modify means, that there are some prototype implementation, which are copied and modified over and over again. 

copy/paste/modify indicates, that there are redundant system structures, following a higher concept. This concept is called the Meta Model or Meta Domain Model.

Actifsource fits best in new projects, if there are Domain-Objects with zero- or one-to-many relationship to other Domain-Objects.

  • During Requirements Engineering, collect your Domain-Objects
  • Group similar Domain-Objects. This leads to Domain-Classes.
  • Start using actifsource with your Domain-Specific Class-Diagram
  • Write Templates along your Domain-Specific Class-Diagram

We have a mature software! Maintenance is a nightmare! Is actifsource suitable for my project?

Probably. To bring in model-driven techniques in an existing software project is possible but asks for some effort.

Actifsource fits best in exiting projects, if there are proper Interfaces. Interfaces always represents abstractions, on which a domain meta-model is built.

Start with your extracted domain meta-model. Then start writing Templates. The new Templates shall produce the same structure code as the existing handwritten code.

At last, you have to port implementation specific code sections to the protected regions in your generated classes.

And yes, this is quite some work to do. But you have to do it only once. The next refactoring, you will be able to profit from the power of Model Driven Software Design.