When we had no computers, we had no programming problem either. When we had a few computers, we had a mild programming problem. Confronted with machines a million times as powerful, we are faced with a gigantic programming problem. E.W. Dijsktra (1986)

L'écriture d'une spécification est une étape cruciale dans la construction d'un logiciel de qualité qui répond à des demandes de sécurité élevées. Les systèmes deviennent de plus en plus complexe, tant du point de vue de leur conception que du point de vue de leur production et de leur maintenance. Dans le même temps, la fiabilité devient une demande de plus en plus pressante et qui dépasse largement le cadre des systèmes critiques où cette propriété est essentielle. De fait, il est nécessaire de mieux en mieux contrôler le développement des systèmes afin de garantir leur fiabilité et leur sécurité. C'est un fait reconnu que le processus de développement, et plus particulièrement ses premières étapes, joue un rôle essentiel dans l'accroissement de la qualité. C'est un investissement critique pour la certification. L'importance du processus est tout aussi important si quand des techniques à base d'assemblage de composants sont utiliséees. Deux défis sont à relever. Primo, la fiabilité de plus en plus grand des composants ne dispense pas de spécifier le plus rigoureusement possible leur assemblage. Deuxio, il y a toujours un fossé entre l'expression des exigences d'un système et sa spécification par un assemblage de composants.     

The process of building specifications is a crucial step in the construction of quality software with high safety requirements. Systems become more and more complex, both from a conceptual point of view and from a production and a maintenance point of view. At the same time, reliability becomes a major requirement, well beyond the field of critical systems where it is essential. Thus it is a necessity to increase the global control of systems development to ensure their reliability and safety. It is well recognized that the development process, and in particular its first step, plays an essential part in increasing confidence level. It is an important asset for the certification issue. This also holds if we intend to use a component-based approach to produce systems. Two challenges must be faced. First, even if components (software or hardware) are more and more reliable, their assembly still needs to be more rigorously specified. Second, a gap still remains between the initial specification of the requirements of a system and its specification by components assembly.