Integranova MES (Model Execution System) is a set of tools that truly industrialize software development using models as the primary input artifact.
Integranova Partners & Customers mainly adopt this paradigm to develop information systems in a repeatable and predictable way, with high and consistent quality levels all while increasing development speed and productivity. But time and again they have found other use case scenarios in which Integranova does come in handy. Here is a recollection of a some of them.
Generate full applications
Naturally, this is the most common scenario for Integranova: generating full applications or information systems. As Integranova Modeler lets you define the functionality of an information system at a high level of abstraction yet with high expressive power, most of the times our Customers leverage these capabilities to create full applications comprising one or several frontends (web and/or mobile), the backend layer and the database layer.
As this scenario is quite straightforward, we will not discuss it further just now. Let’s explore other use cases in which users are realizing value.
Build functionality on top of existing databases
Our Partners and Customers have may times worked in projects where there was a database to preserve. Processes are of paramount importance, of course, but data is perhaps one of the most precious assets of any organization, as that is the foundation to derive information, generate intelligence and assist in decision making.
Do Customers stop using Integranova in such projects and tackle them using more conventional development approaches? No, sir. Integranova is well equipped to work in that kind of situations.
Integranova Modeler lets you connect to an existing database, explore its structure (i.e., tables, fields, constraints…etc.) and produce a model out of it. So instead of starting out with a blank page, the definition of the structure of the data is created in an automated fashion. And then, the model can be completed by adding the functionality (read “behavior and business rules”) to manipulate that data, as well as the interaction mechanisms (read “frontend scenarios”) to operate and query that data.
When the Integranova Transformation Engines translate the model (created from the existing database and augmented with functionality and user interface elements), the generated code is ready to work on top of the existing database.
You might be thinking “good thing I will not lose my existing data, but what if I also have some functionality at the database layer?”. Integranova is also prepared to deal with that: the tool can integrate existing stored procedures and database functions with the generated code, all at the model level. In other words, you can map services and queries defined in your model to stored procedures or database functions so that the generated code will not implement the functionality of the mapped service or query, but instead rely on the existing implementation of the stored procedure or database function your model element is mapped to.
Migrate and update existing applications and systems
A natural corollary of the previous use case scenario is that Integranova can be used not only in “greenfield development” situations, but also to migrate and update existing applications and systems.
Not only you can reuse and work on top of existing databases, but you can also use Integranova to help you navigate technological upgrade projects.
You might be wondering if Integranova performs any kind of reverse engineering of legacy code, and the answer is it does not (and we have already analyzed this topic with multiple companies in different counties and industries, although we can always explore it again if you are interested… let us know). Regardless, that does not mean that Integranova has not been able to add value to the equation in this kind of projects. It in fact has turned the whole cost-time-benefit analysis from unaffordable (and all too common situations like “we’d better live with our legacy system as-is and perform only essential maintenance”) to feasible (allowing companies to evolve their processes as needed by the business, which of course is key for every business to improve competitiveness).
This is how these scenarios have most commonly been approached: When faced with a migration project Customers first do an analysis of the current situation to identify the components and modules of the system that needs to be migrated or updated (paying attention to the interfaces and interactions taking place between each component) and decide on an order in which every component or module should be migrated.
Customers then tackle the migration of every component by creating a model (or part of a model, for that matter) that represents its functionality. They also model the interfaces that component has with other parts of the overall system. Once that model is completed, they leverage Integranova Transformation Engines to generate code for the upgraded version of the component, which can be tested (in parallel to the original module, if so desired) to ensure it behaves as expected, including interaction with other parts of the overall system. Once the upgraded component is certified to behave as expected, it can replace the original component, so the overall system continues to operate seamlessly.
This incremental approach can be followed until all components of the overall system have been upgraded or migrated.
Sometimes, Customers use Integranova as a solution for rapid prototyping.
No software solution is perfectly conceptualized in one shot. It typically comprises several iterations until “you get it right”. While Customers use Integranova Modeler to incrementally build the specification of the system to be developed, they realize they can also use Integranova Transformation Engines to “animate the specification” by rapidly generating source code that will behave as your specification dictates. The running version of the specification (*) can then be put through a validation process, to detect any possible deviation, identify missing features, …etc., and then rapidly gather that feedback and go back to the drawing board (read “Integranova Modeler”) to correct or augment the specification, thus starting the next iteration in the development lifecycle. Keep on iterating until the concept reaches a validated status.
(*) Note that this will be comprised of completely functional artifacts, not just mockups with limited functionality, or code components that are basically code skeletons which, at best, perform basic CRUD functionality but do not go beyond that. The “running version of the specification” generated by Integranova is, in fact, a fully functioning piece of software.
Build backend applications
Last, but not least, another use case scenario Customers have chosen time and again is using only part of the code generation features that Integranova offers. Specifically, those related to the generation of backend applications.
Some Customers for various reasons have some other solutions/technology for the frontend. While in some other cases, Customers want to build software that will not have a frontend, but rather expose functionality that will be consumed by other components of their software ecosystem.
In many of these situations, our Customers have benefited from our Transformation Engines to automatically generate the backend code to take care of all the heavy lifting related to complex business rules while exposing its functionality via REST APIs that can be consumed by either their frontend code or by other backend components.
Mix and match
As projects may have different requirements and circumstances, so will be the use case scenarios for Integranova.
Of course, Integranova is no silver bullet, and there will be projects not suited for it.
There will be projects where Integranova will fit like hand in glove.
And there will be projects in which Integranova will not be the perfect solution for every aspect, phase, or component of the project, but chances are users will still be able to leverage Integranova to tackle some part of the project and reap the benefits of increased quality and productivity.
More details on future 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.