Model-Driven Code Generation, as the term name aptly indicates, is a set of tools, frameworks technologies… aimed at automatically
producing code from models.
It sounds very ambitious, and it is indeed.
You can find Model-Driven Code Generation proposals under different names: Model-Driven Development, Model-Driven Architecture,
Model-Based Code Generation,
…and even the – lately more fashionable terms of – No-Code and Low-Code.
Buzzwords and jargon aside, at the end of the day, it all boils down to using models as the primary artifact to build software.
Sounds crazy? Well…if you look at domains such as Embedded Systems and Real-Time Systems, you will find that there are tools that truly
deliver to what they promise. Generating code from models in any of these domains has been a working reality for some years now.
Problems start to appear when you move to a different domain such as information systems or business applications. Model-Driven Code Generation
has traditionally failed to succeed in this area.
Integranova Model Execution System, however, does deliver on its promises of automatically generating 100% of the code for an information
system – including,
but not limited to, database/persistence layer access, business logic and graphical user interface/front-end – all from models.
You can use Integranova Modeler to create conceptual, platform-independent models, that represent the information systems you want
to develop from three different points of view:
- The structural point of view, in which you describe the structure of the data your information system will manage.
- The behavioral point of view, in which you describe the services that the information system will provide to query
and manipulate the data it manages, including all sorts of complex business rules, and
- The interaction point of view, in which you describe the interaction scenarios that the information system will
provide to present the data it manages to its users and to allow its users execute processes to manipulate that data.
Any definition in your Integranova models will be platform-independent, which means you do not include – or concern about, for that matter
–any low-level detail such as programming languages, frameworks, or architecture. The exact same model can be automatically transformed targeting
different programming languages (e.g., C#, Java), frameworks (e.g., .NET, Spring Boot) or architectures (e.g., desktop, web or mobile).
The three main modeling perspectives let you cover the three main areas of any information system: the persistence layer (usually a database) that
will make your data persistent, the business logic layer that will implement all the functionality of your system, and the presentation layer that
will let end-users interact with your system.
The modeling patterns and primitives you will find in Integranova Model Execution System will let you express complex business logic rules,
ensuring that you can fully define the functionality of the system you want to build.
This completeness also means that the generated code will be fully functional: contrary to what most other tools provide (e.g., code skeletons
which need to be completed at a later stage once the generation process has completed), Integranova Transformation Engines (or Code Generators)
produce code that is ready to compile and deploy and does not need to be completed.
The automated nature of the Integranova Transformation Engines ensures consistent, repeatable results, increasing the overall quality and
productivity of your development endeavors.
Integranova Model Execution System produces code that does not rely on any proprietary library or runtime, so you are free to maintain and
evolve it your own way, using more traditional approaches and tools. But once you get used to it and start reaping its many benefits, chances
are you will choose to join the Model-Based Code Generation philosophy.
And, by the way, if you are a developer do not get scared away by the automated code generation features of Integranova MES. We never intend
to replace developers, we just want to empower them and make them more productive, letting them focus on *what* they want to build and not so much on *how*
it will be built.
By having Integranova Model Execution System as part of their toolset, developers can undertake bigger and more complex projects. Our experience has
consistently shown us how projects where you would typically have to set up a team of 4 to 6 developers could be tackled by 1 or at most 2 developers
. We have also seen, time and again, that in every development iteration it was usually us having to wait for customer feedback on the functionality
delivered rather than the customer waiting for us to deliver the next planned version (in the most extreme cases, we were delivering versions faster
than the customer could even test).
Your mileage may vary but, in any case, you will experience a significant increase in productivity which will naturally translate into faster time-to-market
and last, but not least, a reduction of human-induced errors to marginal levels.
If projects can be developed by smaller teams at a fraction of the cost – both in terms of time and money – you may be tempted to think you need less people
to do the same job…but chances are you will end up using the same team to deliver more projects and therefore boost your revenue
If any of this sounds interesting, stay tuned for more posts on Integranova Model Execution System.
If you are eager to learn more about Integranova MES or would like to see a live demo, feel free to contact us.