1 Emeric ROLLIN 1 Génie Logiciel GENIE LOGICIEL
2 Emeric ROLLIN 2 Génie Logiciel PLAN Présentation La Qualité, les Méthodes Les Outils
3 Emeric ROLLIN 3 Génie Logiciel Introduction Tant qu'il n'y avait pas de machines, la programmation n'était pas un problème; quand nous avons eu quelques ordinateurs de faible puissance, la programmation devint un problème moyen et maintenant que nous avons des ordinateurs gigantesques, la programmation est devenue un problème tout aussi gigantesque. En ce sens, l'industrie de l'électronique n'a pas résolu un seul problème, elle n'a fait qu'en créer - elle a créer le problème de l'utilisation de son propre produit. E.W. Dijkstra Discours du prix Turing, 1972 Présentation
4 Emeric ROLLIN 4 Génie Logiciel Définition Discipline qui vise le développement de logiciels complexes à l'aide d'outils et de méthodes. Présentation
5 Emeric ROLLIN 5 Génie Logiciel Contraintes sur les projets conformité délai qualité réutilisabilité spécifications non figées équipe de développement Présentation
6 Emeric ROLLIN 6 Génie Logiciel Objectifs du Génie Logiciel Maîtriser le développement de logiciels en terme : –de difficulté, –de qualité, –de coûts et délais. L'activité de développement de logiciels est entrée dans une ère industriel. Il faudrait pouvoir développer du logiciel comme on fabrique des bouteilles en verre… Présentation
7 Emeric ROLLIN 7 Génie Logiciel Quelques principes de Génie Logiciel Abstraction et dissimulation de l'information Modularité - Découpage en modules Testabilité Traçabilité Présentation
8 Emeric ROLLIN 8 Génie Logiciel Cycle de vie du logiciel (simplifié) PlanificationExploitation Spécification Conception Codage Tests Validation Présentation
9 Emeric ROLLIN 9 Génie Logiciel La Qualité : pourquoi ? u complexité des applications u instabilité des spécifications u manque de rigueur dans la réalisation u prise en compte anarchique des modifications La Qualité, les méthodes
10 Emeric ROLLIN 10 Génie Logiciel La Qualité : qu'est ce que c'est ? Application d'une méthodologie de conduite de projet définissant des processus. La Qualité, les méthodes
11 Emeric ROLLIN 11 Génie Logiciel Principe du découpage des travaux Un logiciel se découpe en unité de taille décroissante u le "projet" u les "phases" –spécification –planification –réalisation –exploitation u les "étapes" qui sont des subdivisions des phases. Chaque étape se concrétise toujours par un ou plusieurs produits formalisés clairement référencés (documents, supports magnétiques,...) La Qualité, les méthodes
12 Emeric ROLLIN 12 Génie Logiciel Principe des contrôles Les contrôle s'exercent tout au long du projet, sur 2 plans : u Contrôle qualité –certification du respect de règles générales et spécifiques. –assurance que le processus de développement se déroule, étape par étape, conformément au plan de développement logiciel. –il s'exerce lors de revues internes, au terme de chaque étape sur des produits finis. Le passage à l'étape suivante est conditionné par l'obtention de résultats satisfaisants au contrôle de tous les produits de l'étape. u Contrôle des coûts et des délais –il s'effectue à intervalles rapprochés pendant toute la durée du projet. Il consiste à mesurer le degré d'avancement des travaux en coûts et délais, puis à le comparer aux prévisions consignées dans le documents de planification. Tout écart significatif peut ainsi être détecté suffisamment tôt pour qu'il soit possible d'entreprendre des actions tendant au respect des engagements. La Qualité, les méthodes
13 Emeric ROLLIN 13 Génie Logiciel Principe des modifications La prise en compte d'une modification peut intervenir quel que soit le degré d'avancement du projet. Aucune phase, ni étape n'est spécifiquement consacrée aux modifications. La procédure de modification se déroule en 2 temps : u Prise en compte de la modification : –constat de non conformité ou demande d'évolution, provenant de l'utilisateur, du demandeur, du réalisateur. –écriture d'une fiche de modification du produit de l'étape la plus en amont concernées par la modification. u Réalisation de la modification : –reprise de toutes les étapes dont les produits sont remis en cause, en commençant par la plus en amont de celles-ci. La Qualité, les méthodes
14 Emeric ROLLIN 14 Génie Logiciel Spécification globale du système 1.2 Spécification opérationnelle du logiciel 1.3 Spécification fonctionnelle du logiciel 2.1 Vérification de la faisabilité technique 2.2 Définition des moyens techniques 2.3 Planification du développement 2.4 Réexamen du pla qualité logiciel 3.1 Conception globale 3.2 Conception détaillée 3.3 Codage et tests unitaires 3.4 Tests d'intégration 3.5 Tests fonctionnels 3.6 Validation du logiciel 4.1 Intégration du système 4.2 Suivi du logiciel QualitéCoûts et délais Reprise de toutes les étapes concernées Spécificati on Planification Réalisation Exploi tation Côntrole Modification La Qualité, les méthodes
15 Emeric ROLLIN 15 Génie Logiciel Les méthodes Quelques méthodes classiques : u ERA (Entité Relation Association) u HOOD u MERISE u SADT/SART u BOOCH u OMT (Object Modeling Technique) u UML (Unified Modeling Language) La Qualité, les méthodes
16 Emeric ROLLIN 16 Génie Logiciel Quelques méthodologies « client » u -DoD-STD-2167A (Defense system software development / U.S. Department of Defense) u -ESA PSS-05-0 (ESA Software Engineering Standards / Agence SpatialeEuropéenne) u -GAM-T17 (Méthodologie de développement des logiciels intégrés / Délégation Générale pour l'Armement) u -RTCA DO-178-B (Etude et homologation du logiciel des systèmes et équipements de bord) La Qualité, les méthodes
17 Emeric ROLLIN 17 Génie Logiciel u Système d'exploitation hôte/cible u Editeurs - Traitements de texte u Compilateurs u Editeur de liens u Outils d'aide à la production Les outils
18 Emeric ROLLIN 18 Génie Logiciel u Debugger symbolique u Gestion de configuration u Outils de spécifications et de conception u Modélisation et prototypage u Gestion de projet u Outils de contrôle qualité u Traçabilité des requirements u... Les outils
19 Emeric ROLLIN 19 Génie Logiciel Ne jamais oublier Un logiciel c'est : –la documentation complète et pas seulement le manuel utilisateur –le produit u exécutable, u objets, u etc. –les archives u sources, u objets, u outils de développement, u documentation, u etc.