Automating IT development
Pulling itself by its tail off the ground is a dream in the natural world, but reality in the software world.
Approaching the making of software as an automated activity has disruptive effects on quality, cost, maintainability, speed of creating software, and facilitates making applications that are too costly to make manually.
Enabling automation by a framework at meta level.
The Datatweb system composes software code pieces and patterns, in the broad sense of the meaning of this word, to a complete application by usage of an explicit meta framework.
The process of making software is automated by focussing on assembling code patterns by a meta model and a meta framework on top of a software framework.
This allows to make applications that are very hard to make manually in a cost effective way.
These generated applications are definitively beyond competition what concerns quality, cost, maintainability and speed of creating software, when comparing to manual creation of software.
The technical meaning of a meta framework should be understood in the same sense as the technical meaning of a software framework, only the matter it acts upon, namely software itself in this case, is different.
Additionally, simple mathematical algorithms are used in the meta framework to structure the code patterns.
Datatweb is a fully implemented system ready for commercialisation.
Bootstrapping is a very effective way to introduce disruptive technological advances.
Composing software by using software, is another step in the bootstrapping processes that have occured all along the evolution of software history.
Bootstrapping is an old and proven recipe in the history of computer science.
As a reminder, think on an early historical bootstrap : the first software compiler had to be made 'manually'. After that, the making of compilers was a lot easier by writing compilers in the language that compilers transformed to machine code.
This next step in bootstrapping can be seen as the automation of the work of software developers.
However, the work of software developers remains of the same importance as before.
Manually written code might become even more important because the code that is automated still takes manually crafted software as basis.
This makes the importance of being able to make high quality software much bigger, since all derived software is based on it.
An important difference is that software developers can focus on the creative aspect of making software.
The repetitive aspects, the aspects of imposing (mathematical) structuring of pieces of code, the creation of complete applications by binding all pieces of code together by the meta framework are automated.
The whole process of creating software manually is captured in a software applications generating framework.
Implementation patterns and its usage patterns are abstracted and glued together by the Datatweb application generation meta framework.
The Datatweb framework takes care of instantiating all software pieces and gluing together all interactions of all the software pieces.
To guarantee consistency, incorporating everything in a single meta model is crucial to capture the software production process as a whole.
When suitable, a mathematical algorithm is used for structuring the assembly of code patterns.
Datatweb has identified abstraction patterns needed at the meta level and developed the software technology enabling the translation of these concepts to software that generates concrete applications.
Datatweb has elevated the writing of software to the meta level, making the creation of concrete application software more resembling to a 'Production Process', more in the sense it is conceived in the mechanical and electronic industries.
Essential in the whole process of software generation, is that not a single line of a concrete application is written manually. Any manually written code, would break the automation process.
Analogy with mechanical systems.
The added value of Datatweb can be illustrated by an analogy with mechanical systems :
Compare a software framework with a flexible mechanical system where components can be plugged in to modify the behavior of the machine.
In comparison with a mechanical system, the 'plugging in' of components in a software system is a difficult and error prone procedure that requires skilled and experienced developers :
Extending, modifying and even using a software framework requires knowledge of the exact behavior of the influenced code but also the effects on other parts of the system.
The Datatweb system automates creating software source code, that makes use of software frameworks, for making complete applications.
Datatweb is like a machine that fabricates other machines or even, in a more sophisticated way, if such a thing might exist, like a machine that can assemble in a flexible way different types of other machines.
Mathematics or pragmatics ?
During the construction of Datatweb, the need arose at some places to use a mathematical algorithm to structure code patterns.
This does not make Datatweb a mathematical construction.
However, inspiration has been sought in mathematical principles. A very rewarding mathematical principle is to look for the most fundamental abstractions and to search for a minimal but sufficient set of concepts that become the building stones for a (mathematical) system.
To tackle complex problems, the problems must be reduced to their essentials. This has inspired the search for a concretely usable mechanism to separate internals from structure.
In Datatweb care has been taken not to introduce unnecessary abstractions.
A mechanism to build structure, to attach abstractions of concepts in the structure and to attach a meta code implementation of the abstractions to the structure is built into Datatweb.
This is a method to consolidate the efforts of software developers and to freeze the result of their thought patterns in a meta code framework.