Pr H.LAARAJ
hasLaaraj@gmail.com
http://lewebpedagogique.com/laarajbts
2015/2016
1
Plan du cours
I. Introduction
II. Principes de génie logiciel
III. Modèles , processus
IV. Spécification
V. Atelier de génie logiciel(outils CASE)
2
I.1- activité:
La différence entre un programme et un logiciel?
Programme Logiciel
créer par un individu la fabrication collective
unique difficile
facile concrétisée par les
peut être produit sans documents , conception,
conception programmes et de jeux
de tests
multiples versions 4
I.2- definition:
5
I.3- objectifs:
Activité:
Seulement 15 % des applications écrites
Pourquoi ?
6
Pourquoi?
Retards de livraisons
Dépassements de budgets
Technologies en mutation
Complexité des applications
Evolution des spécifications en cours de
développement
7
Objectifs de GL
assurer que les 4 critères suivants soient satisfaits
8
II- Principes de génie logiciel
10
II.1- sept principes fondamentaux
Cette partie liste sept principes fondamentaux
(proposés par Carlo Ghezzi):
rigueur
modularité
abstraction
anticipation du changement
généricité
construction incrémentale
11
rigueur
le résultat d'une activité de création d’un
logiciel peut être évalué rigoureusement,
avec des critères précis, exact.
En pratique:
Utilisation au maximum de lois
mathématiques précises
Suivi à la lettre de techniques formelles
(MCD, UML,…)
12
séparation des problèmes
C’est une règle de bons sens qui
consiste à considérer séparément
différents aspects d’un problème afin
d’en maîtriser la complexité
13
séparation des problèmes
Séparation dans le temps avec la notion de
cycle de vie du logiciel.
Séparation des qualités que l’on cherche à
optimiser à un stade donné.
Séparation des vues que l’on peut avoir
d’un système.
14
séparation des problèmes
Exemple: Comment créer dynamiquement une page
internet pour visualiser et modifier le contenu d’une BD
sans la bloquer?
Solution:
Décomposition en trois composants:
Modèle: son rôle est gérer le stockage des données.
Vue: son rôle est visualiser les données.
Contrôleur: son rôle est de n’autoriser que les
modifications correctes.
15
modularité
système Module 2
Module 1 Module3
16
abstraction
L'abstraction se réfère à la distinction entre les
propriétés externes d'un système et les détails de sa
composition interne
L'abstraction permet de gérer des systèmes très
complexes en connaissant seulement les choses qui
nous intéressent à un moment donné
Abstraction
17
anticipation du changement
Un logiciel est presque toujours soumis à
des changements continuels
Ceci requiert des efforts particuliers pour
prévoir, faciliter et gérer ces évolutions
inévitables.
18
généricité
Il est parfois avantageux de remplacer la
résolution d’un problème spécifique par la
résolution d’un problème plus général. Cette
solution générique pourra être réutilisée
plus facilement
Des solutions génériques (paramétrables,
adaptables) sont plus facilement réutilisables.
Classes génériques<>, héritage,…
19
construction incrémentale
Un procédé incrémental atteint son but par
étapes en s’en approchant de plus en plus;
chaque résultat est construit en étendant le
précédent.
Par exemple : pour les logiciels plus
complexes on réalise d’abord un noyau des
fonctions essentielles et on ajoute
progressivement les aspects plus secondaires.
20
III modèles
21
III.1 exemple des modèles
Modèles en cascade
Modèles en V
Modèle en spirale
Modèles incrémentaux
…
22
III.2 le cycle de vie d'un logiciel :
Analyse des besoins (Expression des besoins du produit)
Spécification globale (Conception préliminaire, au niveau
système)
Conception architecturale et détaillée
Implémentation (Programmation ou Phase de codage)
Gestion de Configuration et Intégration
Validation et Vérification
Maintenance et Assistance
23
III.3 Répartition de l’effort
24
Analyse des besoins
La première étape du cycle de
développement d'un logiciel consiste à
produire un document qui décrit les
utilisateurs visés et leurs objectifs.
25
Analyse des besoins
27
Conception Architecturale et
Détaillée:
C'est au niveau de la conception détaillée que
chacun des modules énumérés dans le dossier
de conception préliminaire est décrit en détail
Deux choses doivent émerger lors de cette
étape : un diagramme de PERT ou de GANTT,
montrant comment le travail doit être fait et dans
quel ordre, ainsi qu'une estimation plus précise de
la charge de travail induite par la réalisation de
chacun des modules.
28
Implémentation
(Programmation):
Chacun des modules décrits dans le
document de spécification détaillé doit
être réalisé(programmé).
31
Gestion des Configurations et
Intégration:
Appelée aussi phase de déploiement.
Quand tous les modules sont terminés,
l'intégration, au niveau du système, peut
être réalisée. C'est là que tous les modules
sont réunis en un seul ensemble de code
source, compilés et liés pour former un
paquetage qui constitue le système.
32
Validation et Vérification:
évidence d'erreurs.
Vérifier c'est répondre à la question "Faisons
nous le produit correctement?"
33
Maintenance et assistance:
34
III.4 Le Modèle en Cascade:
consiste en une succession de phases dont
chacune est méthodiquement vérifiée avant
de passer à l'étape suivante :
Le principe de modèle en cascade est de
découper le projet en phases distinctes sur le
principe du non-retour. Lorsque une phase
est achevée, son résultat sert de point
d'entrée à la phase suivante.
35
schéma Modèle en cascade
Etude préliminaire
Analyse du système
Conception du système
Développement
Tests
Installation
Maintenance 36
Modèles en Cascade
Avantages
Simple et facile à comprendre
Force la documentation : une phase ne
l’équipe de développement)
37
Modèles en cascade
Limites
Le produit final est la première chose que
voit le client
Ne marche que si les besoins sont stables
et le problème connu
ne traite pas les évolutions
Problèmes découverts en phase de
validation
38
III .5 Modèle en « V »
40
III.6 Modèles incrémentaux
L’environnement technique et économique
évolue
Les besoins et les souhaits des clients
changent
Les priorités du management aussi
les méthodes en cascade ne marchent pas
On ne peut pas attendre de tout savoir pour
commencer
41
Principes des modèles
incrémentaux
Diviser le projet en incréments
Un incrément = une sous partie fonctionnelle
cohérente du produit final
Chaque incrément ajoute de nouvelles fonctions
Chaque incrément est testé comme un produit
final
Les incréments sont définis a priori
42
Modèles incrémentaux
cycle de cycle de
vie vie
complet complet
Version 1 43
Version 2 Version 3
Modèles incrémentaux
Avantages
Une première version du système est fournie
rapidement
Réduit le stress du management !
Les risques d’échec sont diminués
Découverte des problèmes assez tôt
Les parties importantes sont fournies en premier
et seront donc testées plus longuement
Les clients peuvent ajouter des besoins à tous
moments
44
Modèles incrémentaux
Limites
Difficile à définir les incréments:
Difficile de concevoir une architecture
stable dès le début ou facilement
évolutive
Ne traite pas toutes les évolutions,
notamment celles qui remettent en
cause l’architecture
45
Synthèse:
meilleure coordination
meilleure productivité
49
IV- spécification
50
IV.1- définition (spécification)
52
IV.3 Les diagrammes de flots de données
(DFD)
53
Diagramme DFD
La représentation graphique classique distingue :
les fonctions par des cercles
54
Exemple: DFD d’un guichet bancaire
Les infos
correctes
Client Somme à tirer Comptes
Choisir la
somme
Solde Argents
argent
suffisant
sortir
l’argent
55
IV.4 diagramme de contexte
56
Exemple : diagramme de contexte d’un
guichet bancaire
carte
passwd
Client
Somme à tirer
Guichet
argent
57
Exercice: On s'intéresse au processus des emprunts des
livres dans une bibliothèque.
58
Correction:
1-Diagramme DFD
Mise à jour
59
Correction:
2- diagramme de contexte
carte
Ref livre
Etudiant
Date de retour
Bibliothèque
Date de
disponibilité
60
V- Atelier de génie logiciel
AGL ou bien (outils CASE)
61
V.1 – AGL (outils CASE)
Un logiciel (Outils CASE Computer Aided
Software Engineering) 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
Exemple : Windev , visual studio, netbeans, …
62
V.2- les composantes de AGL
Exploitation
Analyse Conception Codage Test et
Maintenance
Debuggers
Editeur de Compilateur Outils de
Editeur de Logiciel de
texte et de Générateurs génération
texte et de gestion de
diagrammes d'interfaces de tests
diagrammes configuration
63