Vous êtes sur la page 1sur 27

Introduction au Génie Logiciel

 Application dans la formation GTR :


développement de projet informatique
 Principales références utilisées :
 Jacques Printz : Le Génie Logiciel, collection "Que
sais-je?", PUF, 2001
 Alfred Strohmeier, Didier Buchs : Génie Logiciel :
principes, méthodes et techniques, PPUR, 1996
 M. Lay, Penser Objet avec UML et Java, Dunod
2000
Génie logiciel
 Développement en équipe d'un logiciel
complexe
 Un intervenant = une (petite) partie du travail
 Programmation : entre 15% et 35% du
travail
 Analyse, conception, vérification, gestion de projet
 Complexité croissante des logiciels
 Sécurité
 Coût du logiciel (>> coût du matériel)
Activités du Génie logiciel
(ANSI/IEEE 1002)
 Ingénierie du produit (product engineering)
 Analyse des besoins (requirements analysis)
 Conception (design)
 Codage (coding)
 Intégration (integration)
 Conversion (conversion)
 Débogage (debugging)
 Support du produit (product support)
 Maintenance (maintenance)
Activités du Génie logiciel
(ANSI/IEEE 1002)
 Vérification et validation (verification and
validation)
 Revues et audits (reviews and audits)
 Analyse du produit (product analysis)
 Test (testing)
 Gestion technique (technical management)
 Gestion du processus (process management)
 Gestion du produit (product management)
 Gestion des ressources (resource management)
Facteurs de coûts
 Mal connaître le métier, mal
comprendre l'utilisateur
 Coût de maintenance > coût de
conception
 Prévention des erreurs : des dizaines de
fois moins cher que leur correction
 Plus tôt sont détectées les erreurs,
moins chère est leur correction
Facteurs de qualité
 Qualité externe (client, utilisateur)
 Réalise les tâches attendues (complétude fonctionnelle)
 Est facilement utilisable (utilisabilité)
 Fonctionne même dans les cas atypiques (fiabilité)
 S'adapte à d'autres besoins (adaptabilité)
 Qualité interne (développeur)
 Composants réutilisables (Réutilisabilité)
 Composants documentés selon standards (Traçabilité)
 Bonne utilisation des ressources (Efficacité)
 Adaptation à de nouveaux environnements (Portabilité)
Création de logiciel
Programmation
Analyse des
besoins
Spécifications
Installation

Conception
Gestion

Validation Maintenance
Analyse des besoins
 Fonctionnalités attendues du système
 Point de vue métier, de l'utilisateur
 Aider à formuler le besoin
 Produit un document textuel, avec
schémas, intelligible par le client
 Conduit à la définition du cahier des
charges => les "spécifications"
Spécifications
 Ce que doit faire le système
 Produit un document textuel avec
schémas, lisible par toutes les parties
 Base du contrat commercial
 Base des tests de vérification de la
phase d'installation
Installation
 Dernière étape avant exploitation
 Installer le logiciel dans son
environnement opérationnel
 Vérifier le logiciel dans son
environnement opérationnel
 Organiser la formation
 Planifier la transition
Validations et vérifications
 S'appliquent sur tous les produits
(intermédiaires et final)
 Validation : a-t-on construit le bon
produit ? Critères externes au produit
 Vérification : le produit est-il bien
construit ? Dépend des exigences de
qualité préalablement énoncées
 Notions souvent identiques (même test)
Analyse (début du
développement)
 Parfois confondue avec spécifications
 "Quoi faire" : comprendre le métier
 Premier modèle du système : ce n'est
pas la solution du problème, c'est une
vue externe (tout ce qui peut être perçu
sans rentrer dans la structure interne)
 Doit laisser de la place aux décisions de
conception
Document produit (analyse –
spécification)
 Fonctionalités du logiciel
 Interfaces utilisateurs
 Comportements en cas d'erreurs
 Performances requises
 Interfaces avec autres logiciels
 Interfaces avec le(s) matériel(s)
 Contraintes de réalisations (matériels,
logiciels, normes…)
Autres produits (analyse –
spécification)
 Préparation des procédures de
vérification/validation du logiciel
 plan de validation
 Version provisoire des manuels :
 d'utilisation et
 d'exploitation du logiciel
Conception générale
 Comment réaliser le logiciel ?
 Choix techniques : explorer plusieurs
solutions… Décrire la solution retenue
 Architecture générale
 Composants
 Structures de données
 Fonctionalités
 Interactions entre ces composants
 Tous les éléments de la spécification doivent
être pris en compte
Produits (conception générale)
 Le document décrivant l'architecture
générale
 Un plan d'intégration, avec un plan des
tests d'intégration (procédures de tests,
jeux de données)
Conception détaillée
 Décompose chaque composant en sous-
composants, jusqu'au niveau où le codage
devient facile
 Précise pour chaque composant :
 Son interface
 Les algorithmes
 Le traitement des erreurs
 Produits :
 L'ensemble de ces descriptions
 Le plan des tests unitaires (jeux de données)
Implémentation
 Traduction dans un langage de
programmation
 Mise au point
 Documentation

 Production des données (saisies,


conversions, récupérations)
Documentation
 Les manuels d'utilisation et d'exploitation
doivent être prêts au plus tard lors de
l'installation
 Selon la complexité du logiciel :
 Guide d'installation
 Guide de l'utilisateur
 Guide de l'opérateur
 Manuel de référence
 Documentations des composants logiciels
Maintenance et évolution
 Corrections des erreurs
 Prise en compte de nouveaux cas
d'utilisation
 Ajout de nouvelles fonctionalités
 Dans chaque cas, un "cycle de
développement"
Organiser le développement ("cycle"
de l'analyse à l'installation):
la cascade
Analyse
spécifications

Conception

Programmation

Tests

Installation
Le modèle en V
Installation et
analyse tests de réception

Conception
générale Intégration et tests

Conception
détaillée Tests unitaires

Programmation

Liens de validation
Conception-programmation-
intégration
Installation et
Conception: analyse tests de Intégration:
réception

Système Système
global Conception global
générale Intégration et
tests

Conception
détaillée Tests
unitaires
Détails Détails
précis précis
Programmati
on
Importance de la maintenance
 Première version
 Conception : 40%
 Programmation : 20%
 Intégration : 40%
 Versions suivantes
 Conception : 20%
 Programmation : 20%
 Intégration : 60%
Développement itératif :
maquettes, prototypes…
Installation et
analyse tests de réception

Conception
générale Intégration et tests

Conception
détaillée Tests unitaires

Programmation

Liens de validation Liens de correction


Développement incrémental
 Mêmes motivations que le développement
itératif
 Par incréments
 Démarre après la phase de conception
générale
 Pour chaque incrément, un cycle complet de
conception – implémentation – validation
 Commencer par ce qui sert à tout le reste
Les objets…
 Modularité => programmation par
composants
 Localisation, encapsulation
 Sureté
 Abstraction / spécialisation
 Réutilisabilité

Vous aimerez peut-être aussi