Вы находитесь на странице: 1из 61

mahaamami@gmail.

com

Pr-requis
Systmes dinformation Systmes informatiques Conception et programmation oriente objet Rseaux informatiques Base de donnes Gestion de production

15/04/2010

Cours gnie logiciel

Objectifs du cours
Etre capable de dfinir les principes et les techniques du gnie logiciel Comprendre la valeur ajoute de gnie logiciel

15/04/2010

Cours gnie logiciel

Rfrences
Beugnard, A. (1998). Introduction au gnie logiciel. ENST Bretagne. Di gallo, F. (2001). Cours de gnie logiciel. CNAM Bordeaux. Lonchamp, L. (2003). Cours gnie logiciel. CNAM Nancy. Notes de cours de Mme Latifa Rabii

15/04/2010

Cours gnie logiciel

PLAN
Chapitre 1 : Introduction Chapitre 2 : Dfinitions et principes Chapitre 3 : Modlisation des processus Chapitre 4 : Techniques de spcification Chapitre 5 : Techniques de conception Chapitre 6 : Processus qualit

15/04/2010

Cours gnie logiciel

Chapitre 1 : Introduction
Section 1 : Rappels Section 2 : Dfinition dun logiciel Section 3 : Domaines dapplication du logiciel Section 4 : Crise du logiciel Section 5 : Solution

15/04/2010

Cours gnie logiciel

Rappels
Un systme dinformation : est lensemble des lments participants la gestion, au stockage, au traitement, au transport et la diffusion de linformation au sein de lorganisation Un systme informatique : est lensemble des quipements destins au traitement automatique de linformation permettant dacqurir, de stocker, de traiter et de communiquer des donnes
15/04/2010 Cours gnie logiciel 7

Dfinition dun logiciel (1/3)


Un logiciel est un systme dinformation automatis Un systme dinformation automatis est lensemble des moyens et des mthodes qui se rapporte au traitement automatis des donnes. Il constitue la partie logicielle du systme informatique

15/04/2010

Cours gnie logiciel

Dfinition dun logiciel (2/3)


Systme dinformation Systme informatique

Systme dinformation automatis (logiciel)


15/04/2010 Cours gnie logiciel 9

Dfinition dun logiciel (3/3)


Un logiciel est un produit qui couvre un ensemble organis de :
Programmes Procds Documentation Services

15/04/2010

Cours gnie logiciel

10

Caractristiques du logiciel
Un objet immatriel Ne suse pas Le logiciel est facile reproduire Ses fonctionnalits sont difficiles figer au dpart et souvent remises en cause La plupart des logiciels sont personnaliss

15/04/2010

Cours gnie logiciel

11

Domaines dapplication du logiciel


Systme
Compilateurs (A-0 System) Editeurs Gestion de fichiers

Embarqu (Embedded)
Programme FPGA Auto-contrle

Temps rels (Real-time)


Contrle de machine

Scientifique
Simulation Conception assist par ordinateur Calcul numrique intensif

Affaires (Data processing)


SGBD (Oracle) ERP (SAP)

Bureautique Intelligence artificielle


Systme expert
Cours gnie logiciel 12

15/04/2010

Crise du logiciel (1/4)


Systmes distribus Applications embarques Troisime poque Systmes personnels Orientation objet Systmes experts Quatrime poque

Distribution limite Logiciel personnalis Premire poque

Multi-usagers Temps-Rel Base de donnes Progiciel Deuxime poque

1950
15/04/2010

1960

1970
Cours gnie logiciel

1980

1990
13

Crise du logiciel (2/4)

15/04/2010

Cours gnie logiciel

14

Exemples dchec de logiciel


Perte de la premire sonde Mariner vers Venus suite une erreur de programmation dans un programme Fortran Abandon du projet dinformatisation de la bourse londonienne aprs 4 ans de travail et 100 M de pertes Retard (2 ans) du premier vol de lEurofighter Causes
15/04/2010 Cours gnie logiciel 15

Crise du logiciel (3/4)


Difficult de matrise des cots (200 millions de dollars pour fabriquer OS-360) Difficult de matrise des dlais de ralisation (2 ans de retard pour les premiers compilateurs PL/1, Algol 68, ADA)

15/04/2010

Cours gnie logiciel

16

Crise du logiciel (4/4)


3% 19% utilis aprs modif. utilis, modif. Abandonn utilis avec succs

47%

2%

pay, non livr 29%


livr, utilis sans succs

Rapports au congrs amricains sur les logiciels


15/04/2010 Cours gnie logiciel 17

Solution
En octobre 1968 lors dune confrence de lOTAN Garmisch-Partenkirchen en Allemagne

15/04/2010

Cours gnie logiciel

18

Chapitre 2 : Dfinition et principes


Section 1 : Dfinition du gnie logiciel Section 2 : Vue globale Section 3 : Principes du gnie logiciel

15/04/2010

Cours gnie logiciel

19

Dfinition du gnie logiciel (1/3)

Gnie mcanique

Gnie lectrique

Gnie civil

Gnie logiciel

15/04/2010

Cours gnie logiciel

20

Dfinition du gnie logiciel (2/3)


Parallle avec le gnie civil

Plan Outils

15/04/2010

Cours gnie logiciel

21

Dfinition du gnie logiciel (3/3)


Ensemble de moyens mis en uvre pour la construction de logiciels Le processus visant la rsolution de problmes poss par un client par le dveloppement et lvolution de systmes logiciels de grande taille et de haute qualit en respectant les contraintes de cots et de temps
Cot
Rgle CQFD
15/04/2010

Dlai

Qualit

Cours gnie logiciel

Fonctionnalit

22

Principes du gnie logiciel


Rigueur Sparation de problmes en sous problmes Modularit Gnricit Construction incrmentale Application du changement

15/04/2010

Cours gnie logiciel

23

Vue globale
* Besoins *

Gestion dacquisition

Client Gestion de projet

Utilisateur
Acceptation

Gestionnaire

* Dveloppeur

* Stakeholders
15/04/2010 Cours gnie logiciel

Gnie logiciel

24

Chapitre 3 : Modlisation des processus


Section 1 : Processus de gestion Section 2 : Processus de production Section 3 : Modles de cycle de vie

15/04/2010

Cours gnie logiciel

25

Processus de gestion
Estimation, planification, suivi,

Processus qualit
Documentation

Processus de production
Analyse Conception Ralisation

Exploitation
Cycle de vie

15/04/2010

Cours gnie 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 Rviser
Cahier des charges

Estimation des cots


Dlais Budget Effort

15/04/2010

Cours gnie logiciel

27

Processus de production : Cycle de vie du logiciel


Enchanement des activits de dveloppement du logiciel
Exploitation et Maintenance

Analyse

Conception

Codage

Test

Gestion de projet Spcification Assurance qualit Documentation Validation et vrification


28

Modle de cycle de vie : Le modle en cascade


Etude prliminaire Analyse

Conception du systme
Conception dtaille Programmation et tests unitaires Intgration et tests dintgration Installation Exploitation et maintenance
15/04/2010 Cours gnie logiciel 29

Modle de cycle de vie : Le modle en cascade


Avantages Dcoupage des taches simple et intuitive Responsabilit humaine facile associer Production de la documentation Maintenance facile Inconvnients Risques derreurs Difficult davoir tous les besoins du client
15/04/2010 Cours gnie logiciel 30

Modle de cycle de vie : Le modle en V Temps


Etude prliminaire Prparation / Validation Maintenance Prparation / Validation Tests dacceptation

Analyse
Prparation / Vrification

Conception architecturale

Prparation / Vrification

Tests dintgration

Conception dtaille Codage

Tests unitaires Abstraction

15/04/2010

Cours gnie logiciel

31

Modle de cycle de vie : Le modle en V


Avantages Raliser les proprits du logiciel Meilleur prparation aux tests Contrle de qualit sur chaque phase Inconvnients Difficile appliquer rigoureusement Validation des tapes adjacentes est mal prpare
15/04/2010 Cours gnie logiciel 32

Modle de cycle de vie : Le modle incrmental


Etude de faisabilit

Conception architecturale

Conception dtaille

Codage et intgration

Itration

Implmentation Livraison du version i du logiciel

15/04/2010

Cours gnie logiciel

33

Modle de cycle de vie : Le modle incrmental


Avantages Appliquer pour un logiciel de grande taille Rduire les dlais de livraison Inconvnients Maintenance exhaustive Risques dinterruption de dveloppement

15/04/2010

Cours gnie logiciel

34

Modle de cycle de vie : Le modle de prototypage


Analyse et spcification des besoins
Conception et ralisation Evaluation du prototypage

Rvision et modification du prototype


Documenter et complter la dfinition des besoins
15/04/2010 Cours gnie logiciel 35

Modle de cycle de vie : Le modle de prototypage


Avantages Se concentrer sur les points critiques Un modle volutif Simplifier llaboration des besoins Aider llaboration de linterface H/M Inconvnients Problme de gestion de projet
15/04/2010 Cours gnie logiciel 36

Chapitre 4 : Techniques de spcification


Section 1 : Dfinition et types de spcification Section 2 : Styles de spcification

15/04/2010

Cours gnie logiciel

37

Dfinition et types de spcification (1/2)


La spcification dcrit les caractristiques attendues (le quoi) dune implantation (le comment) On distingue 3 types de spcification :
Spcification des besoins
Exigences fonctionnelles et non fonctionnelles

Phase danalyse des besoins


Utilisateur final
15/04/2010 Cours gnie logiciel

Concepteur
38

Dfinition et types de spcification (2/2)


Spcification dune architecture du systme
Architecture en modules Phase de conception gnrale Concepteur Programmeur

Spcification technique dun module


Architecture du module Phase de conception dtaille Concepteur
15/04/2010 Cours gnie logiciel

Programmeur
39

Styles de spcification
Spcification informelle (Langue naturelle)
Spcification semi formelle (Modles graphiques)

Formalit

Spcification formelle (Langage Z)


Oprationnel (Description du comportement dsir)

Caractre

Dclaratif (Description des proprits dsires)


15/04/2010 Cours gnie logiciel 40

Styles de spcification : DFD


Une technique semi-formelle et oprationnelle La reprsentation graphique distingue :
Les fonctions par Les donnes stockes Les flux par Les entits externes par

Exemple
15/04/2010 Cours gnie logiciel 41

Styles de spcification : Schma Entit Relation


Une technique semi formelle et dclarative Les concepts du modle de base sont :
Les entits Les relations Les attributs
Entit Attributs Relation Attributs

Exemple
Etudiant
ID Nom Adresse Est inscrit

Filire ID Libell

15/04/2010

Cours gnie logiciel

42

Styles de spcification : 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 gnie logiciel

43

Styles de spcification : Langage Z


Exemple : Enregistrement des passagers bord dun avion 1. Dclaration des variables
[PERSONNE] : Ensemble des personnes identifies de manire unique Capacit : N Capacit de lavion

2. Dfinition de ltat du systme

15/04/2010

44

Styles de spcification : Langage Z


3. Description de ltat initial

4. Description de lvolution du systme

15/04/2010

Cours gnie logiciel

45

Styles de spcification : Langage Z


5. Description des oprations

15/04/2010

Cours gnie logiciel

46

Chapitre 5 : Techniques de conception


Section 1 : Dfinition et approches Section 2 : Approche fonctionnelle Section 3 : Approche objet Section 4 : Exercice

15/04/2010

Cours gnie logiciel

47

Dfinition et approches
La conception propose une solution au problme spcifi lors de lanalyse
Une architecture de lapplication (logicielle et physique) Une description dtaille des modules

On distingue deux approches de conception


Lapproche fonctionnelle Lapproche objets
15/04/2010 Cours gnie logiciel 48

Dfinition et approches : Approche fonctionnelle


Dans lapproche fonctionnelle
Un module est un sous-systme La relation de base est la relation de dcomposition
Exemple : Gestion de bibliothque
Systme
Gestion de bibliothques

Fonction 1

Fonction 2

Gestion des ouvrages

Gestion de prts

Sous fonction 11

Sous fonction 12

Sous fonction 21

Sous fonction 22

Gestion dacquisition

Gestion de rparation

Gestion des emprunts

Gestion des rservations

15/04/2010

Cours gnie logiciel

49

Approche fonctionnelle : Les diagrammes de structure


Une organisation hirarchique et fonctionnelle des systmes La reprsentation graphique distingue :
Les modules par La relation dappel entre modules par Les flux de donnes par

15/04/2010

Cours gnie logiciel

50

Dfinition et approches : Approche objets


Dans lapproche 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 bibliothque Rservation 1. Modifier tat Emprunt

2. Modifier tat
Ouvrage

15/04/2010

Cours gnie logiciel

51

Exercice (1/3)
Soit un vrificateur dorthographe qui cherche chaque mot dun document dans un dictionnaire. Les mots trouvs sont considrs comme corrects. Les mots non trouvs apparaissent lcran et lutilisateur prend une dcision : soit ils sont corrects et sont ajouts au dictionnaire, soit ils sont incorrects et ajouts avec la correction un fichier des mots corriger. 1. DFD ? 2. Diagramme de structure ?
15/04/2010 Cours gnie logiciel 52

Exercice (2/3)
1. Correction : DFD

15/04/2010

Cours gnie logiciel

53

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

54

Chapitre 6 : Processus qualit


Section 1 : Dfinitions Section 2 : La documentation

15/04/2010

Cours gnie logiciel

55

Dfinitions
Qualit
Validit Fiabilit Robustesse Extensibilit Raliser exactement les tches dfinies dans la spcification Assurer de manire continue le service attendu Fonctionner mme dans des conditions anormales Facilit d'adaptation du logiciel aux changements de spcification Etre rutilis en tout ou partie Bien utiliser les ressources matrielles

Rutilisabilit Efficacit

15/04/2010

Cours gnie logiciel

56

Assurance qualit

Planification qualit

Contrle qualit

Assurance qualit : concerne la dfinition de la manire dont lentreprise comptait atteindre la qualit Planification qualit : slection de procdures et standards appropries pour un projet bien dtermin Contrle qualit : implique l'observation du processus de dveloppement pour assurer que les procdures d'assurance qualit ont t suivies
15/04/2010 Cours gnie logiciel 57

La documentation

Rapport danalyse

Analyse des besoins

Cahier des charges Plan qualit

Dossier danalyse Plan de validation


Analyse du systme

Conception

Etude prliminaire

Dossier de conception Plan de test par modules

Dossier de programmation

Programmation et tests unitaires

15/04/2010

Cours gnie logiciel

58

Annexe : Atelier de gnie logiciel (CASE)


Un logiciel (Outils) aidant la ralisation de logiciels Il est bas sur des mthodologies qui formalisent le processus logiciel Il contribue l'amlioration de la productivit et de la qualit du logiciel
Analyse Conception Codage Test Exploitation et Maintenance
Logiciel de gestion de configuration

Editeur de texte et de diagrammes

Editeur de texte et de diagrammes

Compilateur Gnrateurs d'interfaces

Debuggers Outils de gnration de tests

59

Complexit dun logiciel


45 40 35 Probabilit dchec 30 25 20 15 10 5 0 160 640 1300 2600 5100 Taille du logiciel (mesure en points de fonction)
Cours gnie logiciel 60

15/04/2010

Thmes de recherche
Les techniques de vrification du logiciel Le cycle de vie des systmes critiques La documentation La qualit du logiciel Audit et scurit du logiciel

15/04/2010

Cours gnie logiciel

61