Using ChatGPT, Simulink, and C/C++ efficiently in software product line development – with iCon-L
iCon-L is a tool that provides comprehensive support for product line development. It enables programmed components to be assembled into complete products using a graphical technical language – exactly what you would expect from a powerful product line configurator.
In classic software product line development, a distinction is made between:
- Domain Engineering
- Application Engineering
As well as the areas:
- Problem Space
- Solution Space
ProSign adds a third, crucial process to this structure: Hardware Abstraction Layer Engineering (HAL Engineering).
This enables true hardware independence in the product line concept.
In the variability model, the symbols and interfaces (inputs and outputs, parameters) of the software components are defined, thereby determining the variability of the components.
Furthermore, the transformational approach is usually chosen at the model level and a core model (core architecture) is created for the product line. The symbols for the elementary function blocks can be created using XML or a special language.
The software components are implemented during the domain engineering process. The developer is free to make their own decisions here.
They can:
- write C/C++ code manually;
- use existing code;
- use code generated by code generators such as Simulink;
- generate the code for the function blocks using AI such as ChatGPT.
Especially in small, isolated problem areas, AIs still generate manageable code that can be adequately verified.
When using old or generated code, a wrapper usually has to be developed. The AI can be trained so that a wrapper is not necessary.
During configuration in the application engineering process, the actual product is configured based on the core architecture and the symbols for the specified software components.
For configuration purposes, it is possible to:
- remove components from the core architecture or to add components to the core architecture;
- change the connections between the components;
- change the parameters of the components according to the specific product.
During product generation, a module connection list is created as a machine-readable configuration and transferred to the target system.
In this context, the target system calls up the instances of the software components.
Thanks to the separate HAL engineering process, the application model can be run on all systems for which a corresponding runtime kernel exists. Product line development is therefore also hardware-independent within certain limits.
iCon-L takes software product line development into practice – open to modern tools, open to the future.
(Publ. 24.04.2025 on Linkedin)
