Vous êtes sur la page 1sur 61

mahaamami@gmail.

com
Pré-requis
• Systèmes d’information
• Systèmes informatiques
• Conception et programmation orientée objet
• Réseaux informatiques
• Base de données
• Gestion de production

15/04/2010 Cours génie logiciel 2


Objectifs du cours

• Etre capable de définir les principes et les


techniques du génie logiciel

• Comprendre la valeur ajoutée de génie


logiciel

15/04/2010 Cours génie logiciel 3


Références
• Beugnard, A. (1998). Introduction au génie
logiciel. ENST Bretagne.
• Di gallo, F. (2001). Cours de génie logiciel.
CNAM Bordeaux.
• Lonchamp, L. (2003). Cours génie logiciel.
CNAM – Nancy.
• Notes de cours de Mme Latifa Rabii

15/04/2010 Cours génie logiciel 4


PLAN
• Chapitre 1 : Introduction
• Chapitre 2 : Définitions et principes
• Chapitre 3 : Modélisation des processus
• Chapitre 4 : Techniques de spécification
• Chapitre 5 : Techniques de conception
• Chapitre 6 : Processus qualité

15/04/2010 Cours génie logiciel 5


Chapitre 1 : Introduction

• Section 1 : Rappels
• Section 2 : Définition d’un logiciel
• Section 3 : Domaines d’application du logiciel
• Section 4 : Crise du logiciel
• Section 5 : Solution

15/04/2010 Cours génie logiciel 6


Rappels
• Un système d’information : est l’ensemble des
éléments participants à la gestion, au stockage,
au traitement, au transport et à la diffusion de
l’information au sein de l’organisation
• Un système informatique : est l’ensemble des
équipements destinés au traitement
automatique de l’information permettant
d’acquérir, de stocker, de traiter et de
communiquer des données

15/04/2010 Cours génie logiciel 7


Définition d’un logiciel (1/3)
• Un logiciel est un système d’information
automatisé
• Un système d’information automatisé est
l’ensemble des moyens et des méthodes qui
se rapporte au traitement automatisé des
données. Il constitue la partie logicielle du
système informatique

15/04/2010 Cours génie logiciel 8


Définition d’un logiciel (2/3)
Système
d’information

Système
informatique

Système
d’information
automatisé
(logiciel)

15/04/2010 Cours génie logiciel 9


Définition d’un logiciel (3/3)
• Un logiciel est un produit qui couvre un
ensemble organisé de :
– Programmes
– Procédés
– Documentation
– Services

15/04/2010 Cours génie logiciel 10


Caractéristiques du logiciel
• Un objet immatériel
• Ne s’use pas
• Le logiciel est facile à reproduire
• Ses fonctionnalités sont difficiles à figer au
départ et souvent remises en cause
• La plupart des logiciels sont personnalisés

15/04/2010 Cours génie logiciel 11


Domaines d’application du logiciel
• Système • Embarqué (Embedded)
– Compilateurs (A-0 System) – Programme FPGA
– Editeurs – Auto-contrôle
– Gestion de fichiers • Scientifique
• Temps réels (Real-time) – Simulation
– Contrôle de machine – Conception assisté par
ordinateur
• Affaires (Data – Calcul numérique intensif
processing)
• Bureautique
– SGBD (Oracle)
– ERP (SAP) • Intelligence artificielle
– Système expert

15/04/2010 Cours génie logiciel 12


Crise du logiciel (1/4)
Systèmes
personnels
Orientation
Systèmes objet
distribués Systèmes
Multi-usagers Applications experts
Temps-Réel embarquées
Distribution Quatrième époque
Base de données
limitée
Progiciel Troisième époque
Logiciel
personnalisé
Deuxième époque

Première époque

1950 1960 1970 1980 1990

15/04/2010 Cours génie logiciel 13


Crise du logiciel (2/4)

15/04/2010 Cours génie logiciel 14


Exemples d’échec de logiciel
• Perte de la première sonde Mariner vers
Venus suite à une erreur de programmation
dans un programme Fortran
• Abandon du projet d’informatisation de la
bourse londonienne après 4 ans de travail et
100 M£ de pertes
• Retard (2 ans) du premier vol de l’Eurofighter
 Causes
15/04/2010 Cours génie logiciel 15
Crise du logiciel (3/4)
• Difficulté de maîtrise des coûts (200 millions
de dollars pour fabriquer OS-360)
• Difficulté de maîtrise des délais de réalisation
(2 ans de retard pour les premiers
compilateurs PL/1, Algol 68, ADA)

15/04/2010 Cours génie logiciel 16


Crise du logiciel (4/4)
utilisé
3% après
modif.
19% utilisé,
modif.
Abandonné
utilisé avec
47% 2% succès

payé, non
livré

29% livré, utilisé


sans
succès
Rapports au congrès américains sur les logiciels

15/04/2010 Cours génie logiciel 17


Solution
En octobre 1968 lors d’une conférence de l’OTAN à Garmisch-Partenkirchen en
Allemagne

15/04/2010 Cours génie logiciel 18


Chapitre 2 : Définition et principes

• Section 1 : Définition du génie logiciel


• Section 2 : Vue globale
• Section 3 : Principes du génie logiciel

15/04/2010 Cours génie logiciel 19


Définition du génie logiciel (1/3)

Génie Génie Génie civil


mécanique électrique

Génie logiciel

15/04/2010 Cours génie logiciel 20


Définition du génie logiciel (2/3)
Parallèle avec le génie civil

Plan
Outils

15/04/2010 Cours génie logiciel 21


Définition du génie logiciel (3/3)
• Ensemble de moyens mis en œuvre pour la
construction de logiciels
• Le processus visant la résolution de problèmes
posés par un client par le développement et
l’évolution de systèmes logiciels de grande
taille et de haute qualité en respectant les
contraintes de coûts et de temps
Coût Délai
Règle CQFD

Qualité Fonctionnalité
15/04/2010 Cours génie logiciel 22
Principes du génie logiciel
• Rigueur
• Séparation de problèmes en sous problèmes
• Modularité
• Généricité
• Construction incrémentale
• Application du changement

15/04/2010 Cours génie logiciel 23


Vue globale
Gestion d’acquisition

*
Client
Besoins

Gestion de projet
*
*
Utilisateur Gestionnaire

Acceptation

*
Développeur

* Stakeholders

15/04/2010 Cours génie logiciel Génie logiciel 24


Chapitre 3 : Modélisation des
processus

• Section 1 : Processus de gestion


• Section 2 : Processus de production
• Section 3 : Modèles de cycle de vie

15/04/2010 Cours génie logiciel 25


Processus de gestion
Estimation, planification, suivi, …

Processus qualité
Documentation

Processus de production
Analyse
Conception
Réalisation
Exploitation
Cycle de vie

15/04/2010 Cours génie logiciel 26


Processus de gestion
• Organisation du projet
– WBS (Work breakdown Structure)
– PBS (Product breakdown Structure)
– OBS (Organisation breakdown Structure)
• Planification du projet
– Ordonnancer les taches (Pert, Gantt …)
– Suivre Cahier des charges
– Réviser
• Estimation des coûts
– Délais
– Budget
– Effort

15/04/2010 Cours génie logiciel 27


Processus de production : Cycle de vie
du logiciel
• Enchaînement des activités de
développement du logiciel

Exploitation et
Analyse Conception Codage Test
Maintenance

Gestion de projet

Spécification

Assurance qualité

Documentation

Validation et vérification 28
Modèle de cycle de vie : Le modèle en
cascade
Etude préliminaire

Analyse

Conception du système

Conception détaillée

Programmation et tests unitaires

Intégration et tests d’intégration

Installation

Exploitation et maintenance

15/04/2010 Cours génie logiciel 29


Modèle de cycle de vie : Le modèle en
cascade
Avantages
 Découpage des taches simple et intuitive
 Responsabilité humaine facile à associer
 Production de la documentation
 Maintenance facile
Inconvénients
 Risques d’erreurs
 Difficulté d’avoir tous les besoins du client
15/04/2010 Cours génie logiciel 30
Modèle de cycle de vie : Le modèle en
Temps V
Préparation / Validation
Etude
Maintenance
préliminaire
Préparation / Validation
Tests
Analyse
d’acceptation
Préparation / Vérification
Conception Tests
architecturale d’intégration
Préparation / Vérification
Conception
Tests unitaires
détaillée

Abstraction
Codage

15/04/2010 Cours génie logiciel 31


Modèle de cycle de vie : Le modèle en
V
Avantages
 Réaliser les propriétés du logiciel
 Meilleur préparation aux tests
 Contrôle de qualité sur chaque phase
Inconvénients
 Difficile à appliquer rigoureusement
 Validation des étapes adjacentes est mal
préparée
15/04/2010 Cours génie logiciel 32
Modèle de cycle de vie : Le modèle
incrémental
Etude de faisabilité

Conception architecturale

Conception détaillée

Codage et intégration

Itération Implémentation

Livraison du version i
du logiciel
15/04/2010 Cours génie logiciel 33
Modèle de cycle de vie : Le modèle
incrémental
Avantages
 Appliquer pour un logiciel de grande taille
 Réduire les délais de livraison
Inconvénients
 Maintenance exhaustive
 Risques d’interruption de développement

15/04/2010 Cours génie logiciel 34


Modèle de cycle de vie : Le modèle de
prototypage
Analyse et spécification des besoins

Conception et réalisation

Evaluation du prototypage

Révision et modification du prototype

Documenter et compléter la définition des besoins

15/04/2010 Cours génie logiciel 35


Modèle de cycle de vie : Le modèle de
prototypage
Avantages
 Se concentrer sur les points critiques
 Un modèle évolutif
 Simplifier l’élaboration des besoins
 Aider à l’élaboration de l’interface H/M
Inconvénients
 Problème de gestion de projet

15/04/2010 Cours génie logiciel 36


Chapitre 4 : Techniques de
spécification

• Section 1 : Définition et types de spécification


• Section 2 : Styles de spécification

15/04/2010 Cours génie logiciel 37


Définition et types de spécification
(1/2)
• La spécification décrit les caractéristiques
attendues (le quoi) d’une implantation (le
comment)
• On distingue 3 types de spécification :
– Spécification des besoins

Exigences fonctionnelles et non fonctionnelles

Phase d’analyse des besoins

Utilisateur final Concepteur

15/04/2010 Cours génie logiciel 38


Définition et types de spécification
(2/2)
– Spécification d’une architecture du système

Architecture en modules

Phase de conception générale


Concepteur Programmeur

– Spécification technique d’un module

Architecture du module

Phase de conception détaillée


Concepteur Programmeur
15/04/2010 Cours génie logiciel 39
Styles de spécification

Spécification informelle (Langue naturelle)

Formalité Spécification semi – formelle (Modèles


graphiques)

Spécification formelle (Langage Z)

Opérationnel (Description du
comportement désiré)
Caractère
Déclaratif (Description des propriétés
désirées)

15/04/2010 Cours génie logiciel 40


Styles de spécification : DFD
• Une technique semi-formelle et
opérationnelle
• La représentation graphique distingue :
 Les fonctions par
 Les données stockées
 Les flux par
 Les entités externes par
 Exemple

15/04/2010 Cours génie logiciel 41


Styles de spécification : Schéma Entité
Relation
• Une technique semi formelle et déclarative
• Les concepts du modèle de base sont :
– Les entités
Entité Relation
– Les relations Attributs
Attributs
– Les attributs
Exemple
Etudiant Est inscrit Filière

ID ID
Nom Libellé
15/04/2010
Adresse Cours génie logiciel 42
Styles de spécification : Langage Z
• Un langage formel qui utilise
– Les notions ensemblistes, le calcul des
propositions…
– Les relations et les fonctions
– Les suites

15/04/2010 Cours génie logiciel 43


Styles de spécification : Langage Z
 Exemple : Enregistrement des passagers à
bord d’un avion
1. Déclaration des variables
– [PERSONNE] : Ensemble des personnes
identifiées de manière unique
– Capacité : N Capacité de l’avion
2. Définition de l’état du système

15/04/2010 44
Styles de spécification : Langage Z
3. Description de l’état initial

4. Description de l’évolution du système

15/04/2010 Cours génie logiciel 45


Styles de spécification : Langage Z
5. Description des opérations

15/04/2010 Cours génie logiciel 46


Chapitre 5 : Techniques de conception

• Section 1 : Définition et approches


• Section 2 : Approche fonctionnelle
• Section 3 : Approche à objet
• Section 4 : Exercice

15/04/2010 Cours génie logiciel 47


Définition et approches
• La conception propose une solution au
problème spécifié lors de l’analyse
– Une architecture de l’application (logicielle et
physique)
– Une description détaillée des modules
• On distingue deux approches de conception
– L’approche fonctionnelle
– L’approche à objets

15/04/2010 Cours génie logiciel 48


Définition et approches : Approche
fonctionnelle
• Dans l’approche fonctionnelle
– Un module est un sous-système
– La relation de base est la relation de
décomposition
 Exemple : Gestion de bibliothèque

Gestion de
Système bibliothèques

Gestion des Gestion de


Fonction 1 Fonction 2 ouvrages prêts

Sous Sous Sous Sous Gestion Gestion de Gestion des Gestion des
fonction 11 fonction 12 fonction 21 fonction 22 d’acquisition réparation emprunts réservations

15/04/2010 Cours génie logiciel 49


Approche fonctionnelle : Les
diagrammes de structure
• Une organisation hiérarchique et fonctionnelle
des systèmes
• La représentation graphique distingue :
– Les modules par
– La relation d’appel entre modules par
– Les flux de données par

15/04/2010 Cours génie logiciel 50


Définition et approches : Approche à
objets
• Dans l’approche à objets
– Les modules sont les objets concrets ou abstraits
du domaine de l'application
– La relation de base est la relation d'utilisation (par
appel de service)
 Exemple : Gestion de bibliothèque

Réservation Emprunt

2. Modifier état
1. Modifier état
Ouvrage

15/04/2010 Cours génie logiciel 51


Exercice (1/3)
• Soit un vérificateur d’orthographe qui cherche
chaque mot d’un document dans un dictionnaire.
Les mots trouvés sont considérés comme
corrects. Les mots non trouvés apparaissent à
l’écran et l’utilisateur prend une décision : soit ils
sont corrects et sont ajoutés au dictionnaire, soit
ils sont incorrects et ajoutés avec la correction à
un fichier des mots à corriger.
1. DFD ?
2. Diagramme de structure ?
15/04/2010 Cours génie logiciel 52
Exercice (2/3)
1. Correction : DFD

15/04/2010 Cours génie logiciel 53


Exercice (3/3)
2. Correction : Diagramme de structure

54
Chapitre 6 : Processus qualité

• Section 1 : Définitions
• Section 2 : La documentation

15/04/2010 Cours génie logiciel 55


Définitions

Qualité
Validité Réaliser exactement les tâches
définies dans la spécification
Fiabilité Assurer de manière continue
le service attendu
Robustesse Fonctionner même dans des
conditions anormales
Extensibilité Facilité d'adaptation du
logiciel aux changements de
spécification
Réutilisabilité Etre réutilisé en tout ou partie
Efficacité Bien utiliser les ressources
matérielles

15/04/2010 Cours génie logiciel 56


Assurance Planification Contrôle
qualité qualité qualité

• Assurance qualité : concerne la définition de la


manière dont l’entreprise comptait atteindre la
qualité
• Planification qualité : sélection de procédures et
standards appropriées pour un projet bien
déterminé
• Contrôle qualité : implique l'observation du
processus de développement pour assurer que
les procédures d'assurance qualité ont été suivies
15/04/2010 Cours génie logiciel 57
La documentation

Analyse des
Conception
• Rapport besoins • Dossier • Dossier de
d’analyse • Cahier des d’analyse • Dossier de programmation …
charges • Plan de conception
• Plan qualité validation • Plan de test par
Etude Analyse du modules Programmation
préliminaire système et tests unitaires

15/04/2010 Cours génie logiciel 58


Annexe : Atelier de génie logiciel
(CASE)
• Un logiciel (Outils) aidant à la réalisation de
logiciels
• Il est basé sur des méthodologies qui
formalisent le processus logiciel
• Il contribue à l'amélioration de la productivité
et de la qualité du logiciel
Exploitation
Analyse Conception Codage Test et
Maintenance

Editeur de Editeur de Debuggers


Compilateur
texte et de texte et de Outils de Logiciel de
Générateurs
diagrammes diagrammes génération gestion de
d'interfaces
de tests configuration
59
Complexité d’un logiciel
45
40
35
Probabilité d’échec

30
25
20
15
10
5
0
160 640 1300 2600 5100
Taille du logiciel (mesurée en points de fonction)

15/04/2010 Cours génie logiciel 60


Thèmes de recherche
• Les techniques de vérification du logiciel
• Le cycle de vie des systèmes critiques
• La documentation
• La qualité du logiciel
• Audit et sécurité du logiciel

15/04/2010 Cours génie logiciel 61

Vous aimerez peut-être aussi