Very happy to announce the signature of a new partnership between CEA List and my SOM team at Universitat Oberta de Catalunya to collaborate on the integration of Artificial Intelligence in software development tools. This agreement aims to extend our preliminary ideas on the cognification of model-driven software engineering.
Read the following press release for more details on the ambition of the project (yes, I know, all very abstract / generic at the moment, I’ll keep refining this post with our progress on the project).
We live in a software-enabled world.
Software is everywhere: in your laptop, your phone, your car, your washing machine and all kinds of IoT devices you have at home. It is the infrastructure that powers our digital society even if its instrumental role in the modern digital economy is often overlooked.
And yet, software development is in a permanent state of crisis. Improvements in programming tools, languages and methods have not been able to keep up with the increasing complexity, demands and trust we expect from all running software. And this complexity will increase even further in the coming years with the need to develop software that connects to all kinds of IoT devices, is able to process vast amounts of Big Data almost in real-time and that integrates Artificial Intelligence (AI) components for all kinds of reasoning and recognition tasks. As a result, a significant number of software projects are unsuccessful, fail shortly after its initial release or become vulnerable to security attacks (e.g. malicious code injections). To change this situation, CEA List and UOC decided to join forces into a combined R&D partnership, named Model-IA.
Centaur developers, software bots and human creativity
An incremental improvement on current software development tools and techniques is not enough to correct this situation. Instead, Model-IA advocates for a radical shift in the way software is developed and maintained thanks to the integration of AI techniques in all software development tools and processes. AI holds the promise of disruptive improvements in productivity and quality of software development.
In our vision, all development tasks will be conducted by a mixed team of centaur developers and pure software bots. Bots will take care alone of simple and repetitive tasks (where they can easily outperform humans) saving time for humans to spend on more creative endeavours. Centaur developers could rely on the AI components for advice and suggestions while still retaining full control of the process and the final decision.
Combining Artificial Intelligence and model-based engineering
Moreover, this collaboration will not take place at the code level. Building complex systems requires a higher-level view of the system-to-be. Model-IA will integrate AI components at the very beginning of the development process, when the system is modeled, analyzed and simulated before the actual coding phase starts, to maximize its impact. As such, Model-IA will be the first tool ever combining AI and model-based engineering and aspires to become a leader in the emerging space of Intelligent IDEs that focus on improving the productivity of individual developers by helping them to find and reuse existing code. Model-IA will be able to suggest improvements on your models based on general knowledge available online, prevent potential errors by continuously monitoring your actions or automatically choose and apply the best refactorings on your behalf.
There is no silver bullet for software development but we believe that our vision of centaur developers combined with swarms of bots offers a decent chance of success. And with a global cost of software development estimated to be over one trillion dollars, we believe this project can have a significant impact on the growth of Europe’s ICT. This is a high-risk project that requires mixing techniques from a number of fields but it holds the promise of a breakthrough in software development needed to cope with the growing complexity of new software systems.
 The most powerful systems being developed today combine artificial and human intelligence. These systems are called centaurs and were initially popularized in chess
 Same as any other kind of engineering project, software is represented as a set of models, each model describing a different perspective / dimension of the software. Models can be used only as an analysis and discussion tool but also as a blueprint, the starting point of a (semi) automatic code generation process