Académique Documents
Professionnel Documents
Culture Documents
Génie Logiciel
Dr Ahmed Mohameden
amed.mohameden@gmail.com
PLAN
➔ Objectifs du module
➔ Chapitre 1 : Notions de base
● Qu'est-ce qu’un logiciel ?
● Crise du logiciel
● Qu'est-ce que le génie logiciel ?
● Cycle de vie de logiciel
➔ Chapitre 2 : Conception de logiciels
➔ Chapitre 3 : Cycles de développement
2
Objectifs du module
3
Chapitre 1 : Notions de base
Qu’est-ce qu’un logiciel ?
1
Suite d’instructions dans un langage de programmation permettant à l’ordinateur d’effectuer une tâche.
2
Défragmentation, partition, nettoyage, etc. 5
Crise du logiciel
6
Qu'est-ce que le génie logiciel ?
➔ Le terme “génie logiciel” a été utilisé pour la première fois3 en 1968 lors de la
Crise du logiciel
➔ Il réfère à l’ingénierie du logiciel, software engineering
➔ L’une des sciences de génie industriel
➔ Concevoir et implémenter efficacement les logiciels, à temps et avec le
moindre budget. 1
Qu
lai
a
Dé
lit
é
Génie
logiciel
3 2
Coût
3
First NATO Software Engineering Conference: http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF
7
Cycle de vie du logiciel
Livraison Analyse
Cycle de vie de
logiciel
Vérification Conception
Développement
Implémentation des
exigences 8
Chapitre 2 : Conception de logiciels
PLAN
➔ Objectifs du chapitre
➔ Que signifie la conception d’un logiciel ?
➔ Principales approches de conception
➔ Qu'est-ce que UML ?
➔ Logiciels de modélisation UML
➔ Diagramme de cas d’utilisation
➔ Diagramme d’activité
➔ Diagramme de séquence
➔ Diagramme de classes
10
Objectifs du chapitre
11
Que signifie la conception ?
12
Principales approches de conception
Architecture-Animate (ArchiMate)
Méthode d'Étude et de Réalisation Informatique pour les Systèmes
d'Entreprise (MERISE)
13
Qu'est-ce que UML ?
?
Principaux diagrammes UML:
➔ Diagramme de cas d’utilisation
➔ Diagramme d’activité
➔ Diagramme de séquence
➔ Diagramme de classes
➔ Diagramme d’objets
➔ Diagramme de composants
14
Logiciels de modélisation UML
Modelio : www.modelio.org
StarUML : www.staruml.io/
PowerDesigner : www.powerdesigner.biz
Lucidchart : www.lucidchart.com
15
Diagramme de cas d’utilisation ?
➔ C’est quoi?
➔ Quand?
➔ Pourquoi?
➔ Comment?
● À quoi sert le système?
● Qui l'utilise?
● Qui peut faire quoi?
16
Vocabulaire d’éléments de base
Système
Cas d’utilisation
l at ion
Re
Cas d’utilisation
Acteur
Cas d’utilisation
18
Scénario d'utilisation
19
Premier exemple
Guichet Automatique Bancaire
Retirer de l’argent
Client
20
Deuxième exemple
Guichet Automatique Bancaire
Retirer de l’argent
Client
Consulter son compte
Effectuer un dépôt
Effectuer un virement
Client de
la banque 21
Généralisation d’acteurs
Guichet Automatique Bancaire
Retirer de l’argent
Client
Consulter son compte
Effectuer un dépôt
Effectuer un virement
Client de
la banque 22
Généralisation d’acteurs
Application e-commerce
Effectuer le
paiement
Parcourir le
catalogue
Client
Ajouter un article au
panier
Visualiser la
commande
Saisir le code de
promo spéciale
Client
premium 23
Généralisation d’acteurs
Application e-commerce
Effectuer le
paiement
Client
Parcourir le
catalogue
Ajouter un article au
panier
Internaute
Visualiser la
commande
Saisir le code de
promo spéciale
Client premium 24
Généralisation des cas d’utilisation
Application e-commerce
Effectuer le
paiement
Client
25
Extension des cas d’utilisation
Application e-commerce
Effectuer le
paiement
Client
<< extends >>
Imprimer le reçu
de facture
26
Inclusion des cas d’utilisation
Application e-commerce
Effectuer le
paiement
Client
<< includes >>
S’authentifier
27
Travail pratique
28
Diagramme d’activité ?
➔ C’est quoi?
➔ Quand?
➔ Pourquoi?
➔ Comment?
● Acteurs : de quelle entité proviennent les actions ?
● États : d’où commence le diagramme ? Et où s’achève-t-il ?
● Actions : de quelles étapes s’agit-il ?
● Transition : comment opter pour une action parmi plusieurs ?
● Synchronisation : comment gérer la disjonction/conjonction des
flots d’exécution ?
29
Vocabulaire d’éléments de base
Contraintes
30
Vocabulaire d’éléments de base
31
Exemple
Créer un Vérifier le
compte code OTP
Envoyer le Envoyer le
code OTP par code OTP par
SMS mail
32
Travail pratique
33
Diagramme de séquence ?
➔ C’est quoi?
➔ Quand?
➔ Pourquoi?
➔ Comment?
● Entités d’interaction : acteurs et objets
● Lignes de vie : portée des instances
● Flèches : échange des messages
● Zones d’activation : intervalles d’exécution d’opérations
● Cadres d’interaction (alt, opt, loop, break, etc) : gestion des détails
algorithmiques
34
Notation d’éléments de base
Méthode évoquée
Objet: Classe
Valeur de retour
Acteur
[condition 2]
[sinon]
35
Exemple
36
Travail pratique
37
Diagramme de classes ?
➔ C’est quoi?
➔ Quand?
➔ Pourquoi?
➔ Comment?
● Composition de la structure
● État et comportement des classes
● Dépendances entre classes
● Types de relations
38
Vocabulaire d’éléments de base
39
Vocabulaire d’éléments de base - Objet
40
Vocabulaire d’éléments de base - Classe
identifiant=267903
devise=FCFA
solde=4190
MonCompteBMCI : Compte
déposer(montant:float) Compte
identifiant=45078 retirer(montant:float)
devise=MRU solde():float identifiant : int
solde=35800 Instances de devise : Devise
solde : float
MonCompteSG : Compte
déposer(montant:float)
retirer(montant:float) déposer(montant:float)
identifiant=048567
solde():float retirer(montant:float)
devise=EUR
solde():float
solde=5900
déposer(montant:float)
retirer(montant:float)
solde():float 41
Vocabulaire d’éléments de base - Classe
42
Vocabulaire d’éléments de base - Relation
Principales multiplicités:
● 1 → Exactement 1
● 0..1 → Au plus 1 (0 ou 1)
● 1..* → Au moins 1 (jamais 0)
● * → 0 ou plus.
43
Exercice
44
Correction de l’exercice (1/3)
Utilisateur Exemplaire
1 1
Livre Revue Emplacement
45
Vocabulaire d’éléments de base - Relation
46
Association réflexive
47
Classe-association
Emploi
intitulé : string
début : Date
fin : Date
48
Association n-aire
Enseignant Etudiant
1 1..*
Cours
49
Association multiple
Personne Appartement
50
Navigabilité
➔ Par défaut, les associations sont navigables dans les deux sens (pas de flèche);
➔ Depuis A, on peut accéder aux objets de B mais pas l’inverse.
A rôle B
rôle
Liste Nœud
rôle tète
1 0..1 0..1
contenu : int Suivant
51
Agrégation
On distingue:
Agrégation faible Composition
Liste de 1..* 1
* 1..* Morceau Morceau Album
lecture
52
Héritage de classes
CompteCourant CompteÉpargne
53
Héritage de classes
identifiant : int
devise : Devise
solde : float
Spécialisation : Généralisation :
raffinement d’une déposer(montant:float) abstraction de classes en
retirer(montant:float)
classe en sous-classe. solde():float super-classe
CompteCourant CompteÉpargne
plafond : float
découvertAutrorisé : float taux : float
fraisDécouvert : float
calculer Interets():float 54
Correction de l’exercice (2/3)
Utilisateur Exemplaire
Emprunt
retour : Date
0..1 0..1
Livre Revue Emplacement
*
55
Correction de l’exercice (3/3)
Utilisateur Exemplaire
Emprunt 1
Ressource Emplacement
retour : Date
titre : string * 1 travée : int
caution : float étagère : int
Livre Revue
57
Chapitre 3 : Cycles de développement
PLAN
➔ Objectifs du chapitre
➔ Pourquoi les cycles de développement ?
➔ Exemples des cycles
● Modèle en cascade
● Cycle en V
● Cycle en spirale
59
Objectifs du chapitre
60
Pourquoi les cycles de développement ?
61
Modèle en cascade
‒ Principe
‒ C’est le cycle le plus intuitif
‒ Réaliser le projet en plusieurs phases qui se succèdent les unes aux autres
‒ Chaque phase est atomique : ne peut pas être scindée
‒ Le résultat d’une phase n’a de sens qu’une fois achevée
‒ Chaque phase dépend de la précédente
‒ Pour chaque phase, on vérifie les prérequis, si tel n’est pas le cas, on revient …
‒ Avantages
‒ Le modèle est tout à fait simple et facile à mettre en œuvre
‒ Les phases sont faciles à dimensionner
‒ Inconvénients
‒ Le modèle en cascade est d’un comportement mono-thread
‒ Lorsqu’une rectification s’avère nécessaire dans les premières phases, toutes les restes sont à
revoir
62
Modèle en cascade
Analyse
Conception
Programmation
Vérification
Sécurité
Déploiement
63
Cycle en V
‒ Principe
‒ C’est une amélioration du modèle en cascade
‒ Chaque phase possède son alter ego de validation
‒ Avantages
‒ Chaque phase est testée avant de passer à la suivante
‒ Inconvénients
‒ Le cycle en V ne supporte pas le travail parallèle
‒ La rectification d’une phase implique la revue de toutes les phases qui suivent
64
Cycle en V
Validation du
Analyse Recette
cahier des charges
Validation Verification de la
Conception
modélisation des
exigeances
Déploiement
65
Cycle en spirale
‒ Principe
‒ Le cycle en spirale reprend le cycle en V
‒ Il consiste à réaliser les tâches de manière itérative et non pas linéaire
‒ Ainsi, il s’agit de développer plusieurs prototypes de sorte que le résultat soit de plus en plus
complet
‒ Avantages
‒ Ce modèle est adéquat pour les projets de grande taille
‒ La structure cyclique fait partie des points forts du modèle
‒ Les conflits entre la partie conception et les exigences sont quasiment exclus grâce aux
contrôles réguliers
‒ Inconvénients
‒ Inadapté aux petits projets aux risques raisonnables
‒ À travers la répétition cyclique, le projet avance relativement lentement vers les objectifs
fixés
66
Cycle en spirale
67
Travail pratique
68