The ICT challenge for Allegio project is to increase the rate of innovation of complex industrial software by improving the software development process. The main emphasis is on finding faults as early as possible in the development process by using modeling techniques. This includes both design models, which are part of the design flow that result in code, and analysis models that evaluate certain aspects, such as performance or correctness. An important challenge is to combine these two types of models in the development process and obtain a smooth integration of, for instance, performance analysis and formal verification.
Another challenge is to incorporate model-based testing techniques based on design models. The challenges mentioned above are motivated by the observation that many companies spend too much time on the software development process. Often there is a very long test and integration phase where many faults have to be corrected and non-functional properties, like safety and performance, have to be established. Although there are many academic methods addressing these challenges, their incorporation in industrial practice is far from trivial and often requires new research. For instance, scalability is a well-known problem; many methods work well on small examples but the application to real world systems with millions of lines of code leads to new challenges. Given the hundreds of man-years invested in existing software archives, it is highly unlikely (because of cost and risk) that the software can be redesigned from scratch. Another blocking factor is that it is difficult to integrate these techniques in a coherent development process.
By enhancing modeling and analysis, Allegio attempts to shorten the testing and integration phase. To model requirements and architectures, the Parallel Object-Oriented Specification Language (POOSL) is used. By means of the simulation possibilities of the POOSL tools, these models are validated using a visualization of the context of the software under development, such as hardware parts and user interaction. To support a combination of design and analysis models, the use of Domain Specific Languages (DSLs) has been proposed. Early fault detection on the DSL level can be obtained by generating analysis models. Moreover, the possibility to define code generation for a DSL is important to obtain industrial acceptance for this technique. The testing process itself is made more efficient by model-based testing techniques that reuse requirements models.
Biggest results so far
A facelift for old software
Industrial software must continuously be maintained to stay in business. On the one hand this is caused by external constraints such as changes in hardware, the advice not to use the outdated Windows XP operating system anymore, or the Millennium Problem. On the other hand this is caused by technology changes within the company.
After several years of maintenance, a software redesign is needed to support further innovation. This is often postponed, because it is time consuming and it does not immediately create new product features. More.
ICT science question: the challenge is to obtain a cost effective solution for the huge industrial problem of maintaining legacy software. Starting from scratch is not acceptable; the domain knowledge must be maintained. As documentation is usually outdated, the legacy software itself becomes the primary information source. This information can be revealed by analyzing the source code and by learning from the observable behaviour.
Involved COMMIT/partners: Philips, ESI.
Early validation of software designs
Many ICT-projects suffer from long delays because of an unpredictably long test and integration phase. The problem is that during this phase many bugs in the computer code have to be corrected. Some bugs might lead to a costly redesign.
To detect faults much earlier during the development process, we propose a modelling approach based on the Parallel Object-Oriented Specification Language (POOSL). The new POOSL interface supports light-weight modelling and fast simulation. In addition, the new interface contains validation checks to detect modelling faults early. More.
ICT science question: the main challenge is to develop a system modelling environment which allows for fast and light-weight modelling early in the development process. In this early stage requirements might not yet be very clear and many decisions have to be taken about the structure of the system, the responsibilities and behaviour of the components, and their interaction.
The modelling environment should also allow industrially scalable simulations. On the other hand, the desire for model validation and analysis requires a proper formal semantics, i.e. a precise language to describe the model. Finally, support for model debugging and visualization of simulations results is required.
Involved COMMIT/partners: ESI, Philips, TU/e.
Automatic testing improves software quality
We develop modelling and testing tools that improve the quality of complex software. Underlying our tools is the so-called ‘model-based’ testing technique. This is a form of testing that is not ad-hoc, but based on validated scientific models. Thanks to this approach we can fully automatize the software testing process.More.
ICT science question: testing complex software touches on many fundamental aspects of computer science: How to deal with the staggering amount of discrete states in which a computer can find itself while running software? How to deal with non-deterministic aspects, with timing of information flows and with data? How can we make our testing tools scalable to ever larger software systems? How can we improve the scientific models with which we describe software?
Involved COMMIT/partners: Axiniti, ESI.