• Aucun résultat trouvé

Apport des méthodes formelles à la conception conjointe

4.3 Vérification formelle

4.3.2 Apport des méthodes formelles à la conception conjointe

Les méthodes formelles sont basées sur des techniques mathématiques pour la description de propriétés dans un processus de conception conjointe de systèmes (matériels/logiciels). Les mé-thodes formelles servent pour la spécification, le développement et la vérification des systèmes d’une façon systématique. Il y a plusieurs raisons pour justifier l’adoption des méthodes formelles dans la conception conjointe, en particulier pour la prévention et la détection d’erreurs.

4.3.2.1 Complétude de la spécification

Dans un processus de conception conjointe, l’utilisation des méthodes formelles a pour but d’assurer que la spécification est conforme à tout ce qui est décrit dans le cahier des charges du système à concevoir. Il est pratiquement délicat d’assurer qu’une spécification non-formelle contienne tout ce qui a été prévu au départ.

En plus, il est difficile de veiller à ce que la spécification ne contienne pas de détails d’implé-mentation. Si elle contient des détails superflous, elle va certainement poser de problèmes d’im-plémentation pour respecter ces spécificités, ce qui peut entraîner des inconvénients sur le plan performance et structure. Une spécification formelle n’est pas totalement à l’abri face à ces pro-blèmes, mais elle en contient conceptuellement peu.

4.3.2.2 Réduction des taux d’erreurs au niveau de la spécification

Dans ce contexte, l’utilisation des méthodes formelles a pour but d’obtenir une spécification qui contient moins d’erreurs. Contrairement à la raison précédente, il ne s’agit pas ici d’inclure ou d’exclure des comportements dans la spécification initiale mais plutôt d’être sûr que ce qui est spécifié est correct. Car tout type d’erreur dans la spécification est susceptible d’aparaître dans la phase d’implémentation et que les conséquences impliquées en matière de coût sont considérables. Ces conséquences se manifestent sous forme de successions de corrections tardives des erreurs dans le processus de développement, ce qui augmente considérablement les coûts.

Sur le plan commercial, il est aussi important d’investir plus d’efforts dans la prévention d’er-reurs afin d’éviter des coûts plus élevés après. Il est surtout nécessaire d’éviter les problèmes de fonctionnalité sur ce premier niveau, puisqu’il est difficile de vérifier des comportements globaux sur un modèle plus détaillé et plus complexe. Des simulations avec des vecteurs de stimuli limités d’une spécification non-formelle ne peuvent pas détecter tous les problèmes. Cependant, avec des méthodes formelles on peut facilement les découvrir.

4.3.2.3 Réduction des taux d’erreurs au niveau de l’implémentation

L’implémentation peut contenir des problèmes, et une bonne partie du développement est consacrée au test et au débogage de cette implémentation. Donc, beaucoup de tests et de simu-lations sont indispensables, les vecteurs de stimuli choisis ne peuvent couvrir l’ensemble des états possibles atteignables du système. Les méthodes formelles représente un complément important pour éliminer plus de problèmes fonctionnels et logiques dans une implémentation.

4.3.2.4 Réduction du coût de développement

L’un des sept mythes évoqués dans [?] dit que les méthodes formelles sont coûteuses à utiliser et que leur utilisation demande beaucoup de temps et d’efforts. Bien que l’utilisation de méthodes formelles prenne beaucoup de temps et coûte de l’argent, son rendement peut être énorme s’il aide à éviter seulement quelques erreurs critiques. En utilisant des méthodes formelles, la phase de spécification du système prend typiquement plus de temps, par contre, avec une spécification plus

claire et plus correcte, l’implémentation, l’intégration et la phase de tests peuvent être effectuées beaucoup plus rapidement.

Il est difficile de mesurer objectivement la productivité de développement et la qualité d’un système pour différentes méthodologies de conception. Cependant, beaucoup d’entreprises utili-sant des méthodes formelles parlent de temps de développements et de coûts réduits par rapport à des méthodologies bien spécifiques.

4.3.2.5 Augmentation de la fiabilité du Système

Le concept de fiabilité n’est pas un sujet primordial pour certains produit comme les lecteurs portable multimédia et les système HI-FI de véhicule. L’utilisateur accepte plus au mois quelques inconvénients, mais trop de fautes et des blocages fréquents vont être une expérience risquée pour le client. Pour des téléphones portables, la fiabilité devient déjâ un sujet crucial et il est considéré comme normal qu’un nouveau téléphone nécessite des mises à jour du fabricant dans les premiers mois pour rectifier des erreurs importantes. Les délais de développement très limités par le marché vont généraliser cette tendance dans les années à venir, on va connaître des mises à jour pour le téléviseur, le récepteurs satéllitaire, les appareils photo, le climatiseur et le chauffage domestique jusqu’au four et la machine à laver.

Même si une multitude d’erreurs peuvent être corrigées avec des modifications de firmware et que les mises à jour vont devenir de plus en plus courantes pour les utilisateurs, chacune cause des coûts au fabricant et diminue la confiance du consommateur dans le produit et dans la marque. La vérification formelle pour les systèmes embarqués de base pourrait contrer cette tendance et permettre au fabricants de livrer des produits d’une qualité supérieure.

Il existe une classe de systèmes complètement différente pour laquelle les méthodes formelles se sont déjà intégrées dans les flots de conception standard, ce sont les systèmes critiques. Des systèmes comme le contrôle des réacteurs nucléaires, des parties critiques d’un avion ou la com-mande de missiles stratégiques nécessitent une fiabilité maximale qui ne peut être atteinte qu’avec l’utilisation de méthodes formelles tout au long du processus de développement. Le succès que les méthodes formelles ont connu dans ces domaines et le manque croissant de fiabilité dans les produits quotidiens mettent en évidence l’inévitable universalisation des méthodes formelles.

4.3.2.6 Respecter les standards

Durant le développement de systèmes et particulièrement à grande échelle, le respect des stan-dards joue un rôle très important. Être en mesure de prouver le respect d’un standard pour des protocoles de bus ou des API standardisés, facilite considérablement l’intégration à grande échelle. Si un standard est bien formulé et si on peut prouver que deux composants respectent celui-ci, on peut supposer que les deux composants vont bien pouvoir communiquer ensemble.

L’utilisation de méthodes formelles peut assurer qu’un composant suit un certain standard d’une façon beaucoup plus fiable que de simples tests ou simulations. Des propriétés formelles

peuvent vérifier les fonctionnalités importantes des interfaces et ainsi valider le respect du stan-dard.