Vous êtes sur la page 1sur 56

Lycée: lissane eddine laayoune

Filière: BTS DSI

Atelier de génie logiciel

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:

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

5
I.3- objectifs:
Activité:
 Seulement 15 % des applications écrites

sont mises en place et fonctionnent !


(selon des enquêtes réalisées aux USA)

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

 Fonctionnalités Le système qui est fabriqué répond aux


besoins des utilisateurs
 La qualité correspond au contrat de service initial
 Les coûts restent dans les limites prévues au départ.
 Les délais restent dans les limites prévues au départ.

Règle du CQFD : Coût Qualité Fonctionnalités Délai.

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

 séparation des problèmes

 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é

diviser pour régner

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é

Un système est modulaire s’il est composé


de sous-systèmes plus simples(modules)

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.

« Que doit-on faire et qui utilisera le


produit ? ».

25
Analyse des besoins

 Mise du logiciel dans son contexte :


type de produit , les objectifs des
clients.
 Etude de l’existant :
 Etude des produits similaires dans le
marché
 Critiquer les produits concurrents
 Etude du processus/logiciels existants à
l’entreprise
26
Spécification Globale
(Conception préliminaire)
 C'est une description de haut niveau du
produit, en termes de « modules » et
de leurs interactions.

« ce que doit faire le logiciel »

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:

 La validation est basée sur les besoins que le


produit doit satisfaire, et permet de mettre en
évidence de défauts.
Valider c'est répondre à la question : "Faisons
nous le bon produit?"
 La vérification a pour fonction la mise en

évidence d'erreurs.
Vérifier c'est répondre à la question "Faisons
nous le produit correctement?"
33
Maintenance et assistance:

 Les défauts du logiciel rencontrés, soit pendant la


phase de test soit après sa diffusion, doivent être
enregistrés dans un système de suivi.
 Il faudra affecter un ingénieur logiciel pour la
prise en charge de ces défauts, qui proposera de
modifier soit la documentation du système, soit la
définition d'un module ou la réalisation de ce
module.

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

Projets de petite taille


Analyse des besoins

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

peut se terminer avant qu’un document


soit validé
 Les progrès sont tangibles (pour

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 »

(variante du modèle en cascade)


L'assurance qualité est le processus qui permet de vérifier en continu
la qualité du produit à fur et à mesure de sa fabrication.

Le modèle en V met l'accent sur ce processus. Il confronte les


différents niveaux de test avec les phases de projet de même niveau.
Ceci permet à chaque étape de définir non seulement les fonctions,
mais également les critères de validation.

La cohérence entre les deux éléments permet de vérifier en continu


que le projet progresse vers un produit répondant aux besoins
initiaux.

Ce modèle est adapté aux projets de taille et de complexité moyenne.


39
Le 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

 La première version constitue le noyau


 Les versions suivantes s’appuient sur l’existant et
étendent l’architecture
 Chaque version donne lieu à un cycle de vie complet

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:

Un cycle de vie apporte stabilité, contrôle et


organisation des activités
 meilleure estimation des coûts et besoins

 meilleure coordination

 meilleure productivité

 meilleure visibilité et compréhension

49
IV- spécification

50
IV.1- définition (spécification)

 Tout produit complexe à construire doit


d’abord être spécifié ; par exemple un pont
de 30 mètres de long, supportant au moins
1000 tonnes, construit en béton, etc. Ces
spécifications peuvent être considérées
comme un contrat entre un client et un
producteur
 De manière générale une spécification décrit
les caractéristiques attendues (le quoi) d’une
implantation (le comment).
51
IV.2 Les techniques de spécification pour
les phases d’analyse

 Les spécifications en langue naturelle: elles


manquent de structuration, de précision et sont
difficiles à analyser.
 Les spécifications semi formels: pour spécifier
des systèmes par des langages spécialisés(ADA, UML,
DFD,…).
 Formelle : quand la syntaxe et la sémantiques sont
définies formellement par des outils mathématiques

52
IV.3 Les diagrammes de flots de données
(DFD)

 Il s’agit d’une technique semi-formelle


et opérationnelle. Les DFD décrivent
des collections de données manipulées
par des fonctions.
 Les données peuvent être persistantes
(dans des stockages) ou circulantes
(flots de données).

53
Diagramme DFD
La représentation graphique classique distingue :
 les fonctions par des cercles

 les stockages par des boîtes ouvertes

 les flots par des flèches

 les entités externes par des rectangles

54
Exemple: DFD d’un guichet bancaire

Vérifier les Clients


carte informations du
+passwd client

Les infos
correctes
Client Somme à tirer Comptes
Choisir la
somme

Solde Argents
argent
suffisant
sortir
l’argent
55
IV.4 diagramme de contexte

 Au niveau le plus abstrait, on peut se


contenter des entités à l’interface
(‘acteurs’) et des flots qu’ils
s’échangent, sans décomposition en
fonctions. On parle alors de ‘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.

 Un étudiant se présente au guichet pour emprunter un livre, donne à


l'employé de la bibliothèque la référence du livre voulu.
 l'employé demande à l'étudiant sa carte qui sera saisie à l’aide d’un
lecteur optique (lecture du code à barres).
 Il vérifie ensuite si le livre est déjà emprunté ou non.
 Si le livre est présent dans la bibliothèque, il le donne à l'étudiant et
met à jour la base de données.
 Si le livre est emprunté, il retourne à l'étudiant la date à laquelle il
pourra avoir le livre. Il met à jour ensuite le statut du livre dans la
base de données.
1- Donner le DFD?
2- Donner le diagramme de contexte?

58
Correction:
1-Diagramme DFD

Date de retour Mise à jour


emprunté
existe

Ref livre Vérifier


Etudiant l’existence du Livres
carte
livre

Date de Non existe


réservé
disponibilité

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