software development automation

Software Development Automation: Low Code and MDA

The software development automation has constantly experienced a constant search to improve the productivity and quality of all processes, playing a key role in the introduction of more and more efficient development tools. 

In this context, alternatives such as low code and MDA have appeared in recent times. What are these initiatives and why do they accelerate software development and the creation of custom tools, and ultimately facilitate the digital transformation of businesses? In this article, we're going to answer these questions and more.

Low Code

Low code has become a true revolution in the context of software development automation.

Furthermore, it is estimated that by 2025 70% of new applications will be built using low-code development tools, according to data provided by Gartner (a spectacular growth considering that in 2020 less than 25% of applications were created using low-code).

What is it and when is it used?

The low code concept arises from the need to speed up software development and starts from a simple premise: much of the application code is repetitive and, therefore, can be generated automatically.

Thus, low-code development (Low-code App Development, or LCAD) is based on the use of patterns to generate code aimed at improving productivity in software development.

Unlike the traditional perspective (which is based on the manual introduction of code by expert developers), low code development seeks to reduce manual operations for the development of a specific application.

In this way, the code is written "behind the scenes", that is, behind modules, which can be used to generate software more quickly and intuitively. Derivatives, gradients, and optimizations are managed automatically, so the workload for developers is significantly reduced. In addition, among the additional benefits of low code for software development, the following stand out:

  • Minimization of development and maintenance times, promoting an iterative and agile perspective that easily incorporates the changing preferences of users and of the project executives themselves, who are empowered to participate in the development process.
  • Reduction of the costs linked to the creation, implementation, and maintenance.
  • Increase of productivity
  • Reduction of possible human errors. By becoming largely an automated project, the role of the human team is often reduced to making adjustments and looking for more customized software.


The development of software based on MDA (Model-Driven Architecture) has also brought about an unstoppable revolution by reducing the time and resources required in these processes.

What is MDA and when is it used?

The MDA or Model Driven Architecture® concept is an approach to software development and implementation created by the OMG (Object Management Group) consortium, again with the aim of accelerating and simplifying processes.

Part of the domain engineering processes seeks to make abstractions at all levels of the systems to later produce code from these abstract and human-generated diagrams.

To do that, structuring models or guidelines are provided that can be applied to the development of business software beyond the chosen technological platform. Thus, users can design systems only based on domain modeling, transforming the technical elements needed for the operation within different software platforms.

Thus, the MDA domain object model is known as the PIM (Platform Independent Model), which means that it is done independently of any technology or programming language, which is then transformed into specific models called the Platform Specific Model.

This is how it works: the application model is created when the application logic and its semantics are specified. From this moment, it is possible to generate the application by creating executable code or by interpreting the model. In any case, it will be the meta-model that governs the code and its components, in addition to the elements that must be specified.

Low Code vs. MDA Development

Both low code and MDA represent two proposals to simplify software development automation.

However, it is important to understand the difference between both initiatives: low code is a development model that uses the MDA paradigm.

In other words, the MDA could be considered as the roots that make low code developments possible, which, in turn, is based on additional systems, such as graphical user interfaces, among others.

Both development models are based on the idea that developer productivity (and agility in software development) could be greatly improved by greater abstraction of processes and higher-quality domain-specific languages.

Thus, low code generates domain-specific languages from the model-based abstraction of the MDA.

Lean Factory: icaria technology for companies

Lean Factory is the low code tool developed by icaria. It is aimed at facilitating processes for large information systems.

Through this low code tool, which uses the MDA as a paradigm, we help companies reduce costs and time in the development of information structures.

Although one of the main doubts concerning low code and MDA paradigms is that they can only be used to work on simple applications, at icaria Lean Factory we have made sure to guarantee maximum usability.

To achieve this, the platform generates the APIs and the necessary code that allows the extension methods and classes that are part of the application. This enables the developer to extend the base code in a simple way, being able to pay attention to the complexity of the algorithm. Additionally, our icaria TDM and icaria GDPR platforms also use Lean Factory as core in their code, also looking to extend low code capabilities.

Some of the key features of the Lean Factory include:

  • Software development without programming, allowing the construction of systems from functional perspectives
  • Ability to cover the complete life cycle, applying an evolutionary and simple maintenance
  • Ease of teamwork, being able to incorporate all the departments that have an interest in the development
  • Automatic code generation resulting in higher software quality and reduced development times
  • Multi-platform application, both web and mobile or in the cloud

In this way, Lean Factory makes it easier for companies to develop faster and more personalized software, making use of the most advanced low-code models.