Foundations and Applications of Software Technology | Presentation
Foundations and Applications of Software Technology
Research on software technology encompasses a wide range of topics including Human-Computer Interaction, software components, reactive systems, language technology, and security. The group's approach is characterized by its rigorousness and by the use of abstract modeling methods.
Incompetence reigns in the software industry because current standards in software engineering are pre-scientific: programmers simply don't know how to predict the full behaviour of programs they write. This leads to (costly) trial-and-error development and poor productivity.
FAST members put their energy in inverting this poor situation. Formal methods have since the mid 1980's been adopted as the local flag, under the lemma: "improve practice through theory". However, theories alone don't solve problems: they need to undergo maturation before they can be effectively applied to real situations. The group's experience shows that this process may indeed take several years.
The local approach is that of taking advantage of the theory-practice dichotomy: how can the most theory-inclined be aware of what the real problems are without others bringing such problems indoors? Conversely, how can those less theory-minded be aware of elegant solutions to the problems they meet without sharing ideas and experience with the former?
The vision of the group is that
- formal methods should be studied and applied with various degrees of formality;
- tools should be developed as evidence that formalisms are mature;
- every opportunity to liaise with industry and real clients is not to be wasted, as it may pave way to more specialized collaboration involving formal methods more explicitly.
We do our research with the strong belief that we are contributing to better scientific standards in software design. We are a "rigor first" research group whose increasing visibility at international level provides rewarding evidence that we are pursuing the right way.
The following research challenges have been targetted in recent work:
- How to model, design and reason rigorously about highly complex software systems (including forms of composition, coordination, interaction and deployment)?
- How to derive correct software from abstract models (oriented to critical aspects of system's design such as eg, functionality, security, data quality and usability)?
- How to reconstruct abstract models from the real world (including legacy software and incomplete or inconsistent data sources)?