Académique Documents
Professionnel Documents
Culture Documents
LE GÉNIE LOGICIEL
Introduction au GL
GI 21 Meriem ZAOUI – Génie Logiciel 2
Définition
Le génie logiciel est un domaine des sciences de
l’ingénieur dont l’objet d’étude est la conception, la
fabrication et la maintenance des systèmes
informatiques complexes.
GI 21 Meriem ZAOUI – Génie Logiciel 3
Système ?
Système informatique?
▪ Le SYSTÈME INFORMATIQUE est l’ensemble des éléments
destinés à traiter automatiquement l’information (acquérir,
stocker, traiter et communiquer des données).
Système informatique?
▪ Systèmes informatiques =
▪ 80 % de logiciel et 20 % de matériel
Le logiciel
▪ Un logiciel est un système d’information automatisé
Caractéristiques du logiciel
▪ Un produit immatériel
Domaines d’application
• Système • Embarqué (Embedded)
• Compilateurs • Programme FPGA (circuit
• Editeurs intégré)
• Gestion de fichiers • Auto-contrôle
Domaines d’application
• Logiciels de gestion • Logiciel d’application
• Gestion comptable (bureautique)
• Gestion commerciale • Les traitements de
• Gestion de stock texte(Microsoft Word..)
• Les tableurs(Lotus , Excel…)
• Logiciel industriel • Logiciels de présentation
• CAO : Conception Assistée par (PowerPoint…)
Ordinateur.
• FAO : Fabrication Assistée par • ……..
Ordinateur.
• MAO: Maintenance Assistée par
Ordinateur.
• DAO : Dessin Assisté par
Ordinateur.
GI 21 Meriem ZAOUI – Génie Logicie – Chap 1l 14
Crise du logiciel
• Systèmes
L’évolution du logiciel est liée personnels
à l’évolution du matériel • Orientation
• Systèmes objet
distribués • Systèmes
• Multi-usagers experts
• Temps-Réel • Applications
• Distribution • Base de embarquées Quatrième époque
limitée données
• Logiciel • Progiciel Troisième époque
personnalisé
Deuxième époque
Première époque
Crise du logiciel
▪ Il y a eu une prise de conscience dans les années 70, appelée la crise
du logiciel, car à cette époque le coût de construction du logiciel est
devenu plus important que le coût de la construction du matériel.
GI 21 Meriem ZAOUI – Génie Logiciel – Chap 1 17
Crise du logiciel
▪ Trois constatations :
• Le logiciel n’était PAS FIABLE
• Il était difficile de réaliser dans des DÉLAIS prévus des logiciels
satisfaisant leurs cahiers des charges
• Les COÛTS sont largement dépassés
GI 21 Meriem ZAOUI – Génie Logiciel 18
Pourquoi ?
Quelles sont les causes de ces
« défaillances »?
GI 21 Meriem ZAOUI – Génie Logiciel 23
Importance de la qualité
▪ Fiabilité + Sureté + Sécurité des logiciels
• Transports automobile, ferroviaire, aéronautique
• Contrôle de processus industriels, nucléaire, armement
• Médical : imagerie, appareillage, télésurveillance
• e-commerce, carte bancaire sans contact, passeport électronique
➔ Le Génie logiciel
GI 21 Meriem ZAOUI – Génie Logiciel 26
Le GÉNIE LOGICIEL?
• Solutions :
• Distinguer analyse et réalisation
• Décomposer le système
• Utiliser une approche de haut niveau
GI 21 Meriem ZAOUI – Génie Logiciel 30
• Délais de + en + courts
• Solutions :
• Technologie unifiant le vocabulaire
• Méthode, démarche de travail
CHAP 2
GÉNIE LOGICIEL : PRINCIPES ET
ACTIVITÉS
GI 21 Meriem ZAOUI – Génie Logiciel 32
Introduction
▪Le logiciel est un produit complexe.
« La qualité du processus de fabrication est garante de la qualité
du produit »
Règle générale
Maitriser la complexité
➔
DÉCOMPOSITION
GI 21 Meriem ZAOUI – Génie Logiciel 34
Introduction
Objectif : avoir des procédures systématiques pour des
logiciels de grande taille afin que
• la spécification corresponde aux besoins réels du client
• le logiciel respecte sa spécification
• les délais et les coûts alloués à la réalisation soient respectés
➔ Améliorer la qualité
Réduire les délais
Optimiser les coûts
GI 21 Meriem ZAOUI – Génie Logiciel 35
◼ Conception
◼ Programmation/Codage
◼ Intégration
◼ Vérification et Validation
◼ Maintenance
GI 21 Meriem ZAOUI – Génie Logiciel 36
Quelques chiffres
• Programmation : 10 à 20%
• Spécification et conception : environ 40%
• Validation et vérification : de l’ordre de 40%
GI 21 Meriem ZAOUI – Génie Logiciel 37
◼ Caractéristiques :
→ parler métier (avec client et utilisateurs) et non informatique
→ faire des entretiens, questionnaires
→ observation de l’existant, étude de situations similaires
Spécification •
•
Spécification
Conception
• Programmation
• Intégration
• Vérification et Validation
◼ But : • Maintenance
◼ Données :
→ résultats de l’analyse des besoins + faisabilité informatique
◼ Remarques :
→ pas de choix d’implémentation
→ (parfois) un manuel de référence préliminaire
GI 21 39
Conception •
•
Spécification
Conception
• Programmation
• Intégration
• Vérification et Validation
◼ But : • Maintenance
◼ Travail :
→ enrichir la description de détails d’implémentation
→ pour aboutir à une description très proche d’un programme
◼ 2 étapes :
→ conception architecturale
→ conception détaillée
GI 21 40
Programmation •
•
Spécification
Conception
• Programmation
• Intégration
• Vérification et Validation
◼ But : • Maintenance
◼ Résultat :
→ ensemble de programmes
→ ensemble de bibliothèques / modules
→ documentés (ex : commentaires)
◼ Remarque :
→ activité la mieux maîtrisée et outillée (parfois automatisée)
GI 21 Meriem ZAOUI – Génie Logiciel 41
• Analyse des besoins
◼ Gestion de configurations :
→ gérer les composants logiciels (programmes, bibliothèques, …)
→ maîtriser leur évolution et leurs mises à jour
GI 21 Meriem ZAOUI – Génie Logiciel 42
V&V •
•
•
Spécification
Conception
Programmation
• Intégration
• Vérification et Validation
• Maintenance
Vérification
◼ Types de tests :
→ test unitaire : composants isolés
→ test d’intégration : composants assemblés
→ test système : système installé sur site
→ test d’acceptation : testé par l’utilisateur
GI 21 Meriem ZAOUI – Génie Logiciel 44
Validation
◼ But :
→A-t-on décrit le bon système ?
→Le logiciel répond t-il à l’attente des utilisateurs et aux exigences
de l’environnement?
◼ Moyens :
→ revues et inspection de spécification
→ prototypage rapide
→+ les tests
GI 21 Meriem ZAOUI – Génie Logiciel 45
Documentation
▪ Tous les documents générés après chaque activité ou phase
+
▪ Les manuels d'utilisation et d'exploitation doivent être prêts
au plus tard lors de l'installation
Documentation : exemples
• Rigueur
• Modularité
• Abstraction
• Séparation des préoccupations
GI 21 Meriem ZAOUI – Génie Logiciel 52
Principes : la Rigueur
▪ Ingénieur = rigueur + précision
▪ Deux remarques
• La rigueur ne tue pas la créativité
• Rigueur n’est pas égal à formel (=précision)
GI 21 Meriem ZAOUI – Génie Logiciel 53
Principes : La Modularité
▪ On recherche
• Faible couplage
• Forte cohésion
GI 21 Meriem ZAOUI – Génie Logiciel 54
Principes : l’Abstraction
▪ Organiser les informations (ou les modules) suivant
différents niveaux d’organisation
• Définition de niveaux de généralisation
• A un niveau donné, on ne considère que les informations
ayant le même « niveau sémantique »
• Exemple : Ne considérer que l’interface ou les données ou la
sécurité
• Un niveau doit être compréhensible, homogène, complet
▪ On recherche
• Des niveaux bien découplés
• Le passage d’un niveau à l’autre doit être facile
GI 21 Meriem ZAOUI – Génie Logiciel 55
▪ Exemples
• Séparation des rôles des différents acteurs
• Séparation des phases de développement
• Exemple : Se concentrer uniquement sur la sécurité