Vous êtes sur la page 1sur 68

Université de Nouakchott

Faculté des Sciences et Techniques

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

À la fin de ce cours, vous serez capable de :


1. Saisir ce que désigne le génie logiciel et à quoi il sert
2. Identifier les principaux objectifs de génie logiciel
3. Comprendre les différentes phases de réalisation de logiciels
4. Appréhender ce qu’est la conception et ses approches
5. Pouvoir réaliser les principaux diagrammes UML
6. Distinguer les modèles de cycle de développement
7. Pratiquer la méthodologie Scrum via Trello

3
Chapitre 1 : Notions de base
Qu’est-ce qu’un logiciel ?

➔ Définition : ensemble de programmes1 informatiques


➔ Formats : code source ou fichier exécutable
➔ Catégories :
1. Logiciel applicatif :
● Application destinée à l’utilisateur final
● Éditeur de texte, navigateur web, lecteur multimédia, jeu vidéo, etc
2. Logiciel système :
● Gère le matériel, fournit un environnement d'exécution de logiciels
applicatifs
● Système d’exploitation, pilote, gestion2 de disque, etc

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

➔ Software crisis : Les années soixante


➔ Symptômes :
● Les logiciels consommaient énormément de ressources
● Ils tombaient également souvent en panne
● Le délai de réalisation dépasse le calendrier prévu
● Le coût dépasse le budget envisagé
● La mise en production souffrait de dommages matériels et perte de vie
➔ Solution ? Besoin d'une approche déterminant l'ensemble des bonnes
pratiques de réalisation des logiciels
➔ D’où vient le génie 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

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

Documentation et Spécifications des besoins


déploiement du logiciel

Cycle de vie de
logiciel
Vérification Conception

Tests et validation Modélisation des exigences


du logiciel

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

L’objectif de ce chapitre est de :


➔ Comprendre ce qu’est la conception et ses principales approches
➔ Distinguer les principaux diagrammes UML
➔ Comprendre quand est-ce que faire recours à ces diagrammes
● Diagramme de cas d’utilisation
● Diagramme d’activité ou de séquence
● Diagramme de classes
➔ Saisir à quoi servent-ils
➔ Savoir comment les réaliser
➔ Pouvoir concevoir ces diagrammes à partir des scénarios d’utilisation
➔ Pratiquer ces diagrammes à travers un logiciel de modélisation

11
Que signifie la conception ?

➔ Linguistiquement : percevoir, réaliser ou encore


former des idées.
➔ Techniquement : traduire du texte en schéma.

“Ce que l’on conçoit bien s’énonce clairement”.


Art poétique de Nicolas Boileau.

12
Principales approches de conception

Unified Modeling Language (UML)

Business Process Model and Notation (BPMN)

Systems Modeling Language (SysML)

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

Visual Paradigm : www.visual-paradigm.com

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

Les principaux éléments d’un diagramme de cas d’utilisation sont:


➔ Système
➔ Cas d’utilisation
➔ Acteur
● Acteur primaire
● Acteur secondaire
➔ Relation
● Association
● Inclusion
● Extension
● Généralisation
17
Notation 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

➔ Système : Un guichet automatique bancaire


➔ Cas : Retirer de l’argent
➔ Détails:
Le client se rend au GAB, accède à son interface d’accueil puis
choisit l’option « Retirer de l’argent ». Le système vérifie les
informations et tire la somme indiquée. Le client récupère le
montant et retourne à l’interface d’accueil du GAB.

19
Premier exemple
Guichet Automatique Bancaire

Retirer de l’argent

Client

20
Deuxième exemple
Guichet Automatique Bancaire

Retirer de l’argent

Recharger son tel

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

Recharger son tel

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

Payer en cash Payer en ligne

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

Merci de consulter la fiche du TP numéro 1.

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

État initial État final Action Se connecter

Transition : plusieurs possibilités, un seul choix. Il en existe deux types.


Transition séquentielle Transition conditionnelle
Action Action
source source

Contraintes

Action Action Action Action


cible possible possible possible

30
Vocabulaire d’éléments de base

Synchronisation : plusieurs possibilités, plusieurs choix.

Il en existe deux types :


➔ Disjonction (fork)
● Une barre dont sort plusieurs transitions ;
● Ça permet de déclencher plusieurs actions parallèlement ;
➔ Conjonction (join)
● Plusieurs transitions entrantes menant à une seule sortante sous
forme de barre ;
● On clôture si tous les sous-traitements s’achèvent.

31
Exemple

Internaute Firebase JavaMail API

Créer un Vérifier le
compte code OTP

Envoyer le Envoyer le
code OTP par code OTP par
SMS mail

32
Travail pratique

Merci de consulter la fiche du TP numéro 2.

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

Entités d’interaction Lignes de vie Flèches

Méthode évoquée
Objet: Classe
Valeur de retour
Acteur

Zones d’activation Cadres d’interaction


alt
[condition 1]

[condition 2]
[sinon]

35
Exemple

36
Travail pratique

Merci de consulter la fiche du TP numéro 3.

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

Les principaux éléments d’un diagramme de classes sont:


➔ Objet
➔ Classe
➔ Relation

39
Vocabulaire d’éléments de base - Objet

Caractéristiques d’objet: MonCompteBMCI : Compte


➔ Identité (nom)
nom=« Moustapha Salem »
➔ État (attributs) devise=MRU
solde=1000
➔ Comportement (opérations)
déposer(montant:float)
retirer(montant:float)
solde():float

40
Vocabulaire d’éléments de base - Classe

Classe : regroupement d’objets de même nature


MonCompteBIS : Compte

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

Visibilité d’attributs et d’opérations:


➔ Private : − Compte
➔ Package (default) : ∼
− identifiant : int
➔ Protected : # − devise : Devise
➔ Public : +
− solde : float
+ déposer(montant:float)
+ retirer(montant:float)
Partout : + + solde():float
Sous-classes : #
Package : ∼
Classe : −

42
Vocabulaire d’éléments de base - Relation

Chaque relation est munie d’un nom et des multiplicités.


Enseignant Matière

nom : string 0..3 Dispense 1..* code : string


prénom : string intitulé : string
grade : string filière : string

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

➔ Système de gestion de bibliothèque


➔ Les utilisateurs peuvent s’inscrire pour emprunter des ouvrages
➔ Les ouvrages sont stockés à un emplacement défini par un numéro de
travée et un numéro d’étagère
➔ On distingue deux types de ressources : livre et revue
➔ Chaque ouvrage a une caution, un utilisateur peut emprunter un
exemplaire s’il a la caution nécessaire sur son compte

44
Correction de l’exercice (1/3)

Utilisateur Exemplaire

nom : string 0..1 * code_barre : int


solde : float retour : Date
1..* 1..*

1 1
Livre Revue Emplacement

titre : string titre : string * 1 travée : int


auteur : string volume : int étagère : int
ISBN: int parution: Date 1
caution: float caution: float

45
Vocabulaire d’éléments de base - Relation

Les principales relations utilisées en diagramme de classes sont :


➔ Association binaire
➔ Association réflexive
➔ Classe-association
➔ Association n-aire
➔ Association multiple
➔ Navigabilité
➔ Agrégation
● Agrégation faible
● Composition

46
Association réflexive

Relation d’une classe vers elle-même.


parents
Personne
2
nom : string
prénom : string
naissance : Date enfants
*

47
Classe-association

Instance unique de la classe-association pour chaque couple d’objets.


Personne Entreprise
nom : string
1..* * nom : string
prénom : string ville : string
naissance : Date

Emploi

intitulé : string
début : Date
fin : Date

48
Association n-aire

Relation reliant plus de deux classes.

Enseignant Etudiant

1 1..*

Cours

49
Association multiple

Plusieurs relations entre deux classes.

Personne Appartement

nom : string 1 propose * adresse : string


prénom : string pièces : int
naissance : Date * loue * loyer : float

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

Exemple : listes simplement chaînées

Liste Nœud
rôle tète
1 0..1 0..1
contenu : int Suivant

51
Agrégation

➔ Dissymétrique : une classe est dominante sur l’autre


➔ De type composant-composite.

On distingue:
Agrégation faible Composition
Liste de 1..* 1
* 1..* Morceau Morceau Album
lecture

52
Héritage de classes

Principe : regrouper les classes partageant des attributs et des opérations et


les organiser en arborescence.

CompteCourant CompteÉpargne

identifiant : int identifiant : int


devise : Devise devise : Devise
solde : float solde : float
plafond : float
découvertAutrorisé : float taux : float
fraisDécouvert : float
déposer(montant:float)
déposer(montant:float) retirer(montant:float)
retirer(montant:float) solde():float
solde():float calculer Interets():float

53
Héritage de classes

Principe : regrouper les classes partageant des attributs et des opérations et


les organiser en arborescence.
Compte

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

nom : string 0..1 * code_barre : int


solde : float retour : Date
1..* 1..*

Emprunt

retour : Date

0..1 0..1
Livre Revue Emplacement

titre : string titre : string * 1 travée : int


auteur : string volume : int étagère : int
ISBN: int parution: Date 1
caution: float caution: float

*
55
Correction de l’exercice (3/3)

Utilisateur Exemplaire

nom : string 0..1 * code_barre : int


solde : float
1..*

Emprunt 1
Ressource Emplacement
retour : Date
titre : string * 1 travée : int
caution : float étagère : int

Livre Revue

titre : string titre : string


auteur : string volume : int
ISBN: int parution: Date
caution: float caution: float 56
Travail pratique

Merci de consulter la fiche du TP numéro 4.

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

L’objectif de ce chapitre est de :


➔ Saisir l’utilité des cycles de développement
➔ Distinguer les principaux modèles des cycles de développement
➔ Comprendre le principe de fonctionnement du modèle en cascade,
du cycle en V et du cycle en spirale

60
Pourquoi les cycles de développement ?

On fait recours aux cycles de développement pour pouvoir réaliser efficacement un


projet. Pour ce faire, les cycles fournissent différentes réponses aux principales
questions, à savoir :
‒ Début : d’où commence-t-on ?
‒ Méthodologie : comment organiser les différentes tâches à réaliser ?
‒ Évaluation : quelle est la stratégie d’estimation des risques ?
‒ Flexibilité : comment gérer les rectifications ?
‒ Portée du projet : le modèle est-il efficace pour les projets de grande taille ?
Les petits projets ?
‒ Travail en équipe : Est-il possible de travailler, parallèlement, sur différentes
tâches du projet ?

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

Programmation Tests Tests unitaires, tests d'intégration


et tests fonctionnels

Sécurité Contre-attaques Simulation d’attaques

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

Merci de consulter la fiche du TP numéro 6.

68

Vous aimerez peut-être aussi