Académique Documents
Professionnel Documents
Culture Documents
2
Principes et problématique du génie logiciel.
20%
Matériels
Logiciel
80%
3
Principes et problématique du génie logiciel.
Le développement d’un logiciel est une phase absolument cruciale qui monopolise l’essentiel du
coût d’un produit et conditionne sa réussite et sa pérennité.
4
Principes et problématique du génie logiciel.
5
Principes et problématique du génie logiciel.
60%
50%
40%
30%
20%
10%
0%
2011 2012 2013 2014 2015
6
Principes et problématique du génie logiciel.
7
Principes et problématique du génie logiciel.
8
Principes et problématique du génie logiciel.
• Erreurs humaines;
• L’augmentation des coûts ; Génie logiciel
• Les difficultés de maintenance et d’évolution ;
• La non fiabilité ;
• Négligence de la phase d'analyse des besoins du client
• Le non respect des spécifications ;
• Le non respect des délais.
• Ne répond pas aux besoins Idée : appliquer les méthodes classiques d'ingénierie au domaine du logiciel
9
Principes et problématique du génie logiciel.
Génie logiciel
10
Principes et problématique du génie logiciel.
11
Principes et problématique du génie logiciel.
12
Principes et problématique du génie logiciel.
l’analyse du besoin
13
Principes et problématique du génie logiciel.
Spécification
14
Principes et problématique du génie logiciel.
Conceptualisation
15
Principes et problématique du génie logiciel.
Développement
16
Principes et problématique du génie logiciel.
Validation et vérification
17
Principes et problématique du génie logiciel.
Maintenance
18
Principes et problématique du génie logiciel.
19
Principes et problématique du génie logiciel.
20
Principes et problématique du génie logiciel.
21
Principes et problématique du génie logiciel.
Choix du formalisme
22
Principes et problématique du génie logiciel.
23
Principes et problématique du génie logiciel.
24
Principes et problématique du génie logiciel.
1. ROULER EN VOITURE:
1. METTRE MOTEUR EN MARCHE:
1. METTRE CONTACT
2. DÉMARRER MOTEUR
2. DÉMARRER VOITURE:
1. METTRE POINT MORT
Pour décrire, on utilise le verbe.
2. PASSER LA PREMIÈRE
3. EMBRAYER EN ACCÉLÉRANT
3. ROULER:
1. ACCÉLÉRER
2. FREINER
3. PASSER VITESSE
25
Principes et problématique du génie logiciel.
Rouler en voiture
26
Principes et problématique du génie logiciel.
Les fonctions sont interdépendantes : une simple mise à jour du logiciel à un point
donné, peut impacter en cascade d'autres fonctions.
27
Principes et problématique du génie logiciel.
28
Principes et problématique du génie logiciel.
29
Principes et problématique du génie logiciel.
T T
D D
La fonctionnalité du logiciel émerge alors de
l’interaction entre les différents objets qui le T T
constituent.
30
Principes et problématique du génie logiciel.
T T
Exemples de langages orientés-objet :
SmallTalk, C++, Java, …
31
Principes et problématique du génie logiciel.
T
Protection des données (encapsulation)
Organisation hiérarchique (héritage)
D D
T T
32
Principes et problématique du génie logiciel.
OBJET
Entité / chose liée au domaine d’application. Un objet peut représenter n’importe quelle
chose du domaine d’application que nous voulons clairement identifier.
33
Principes et problématique du génie logiciel.
OBJET
Entité / chose liée au domaine d’application. Un objet peut représenter n’importe quelle
chose du domaine d’application que nous voulons clairement identifier.
34
Principes et problématique du génie logiciel.
OBJET
Entité / chose liée au domaine d’application. Un objet peut représenter n’importe quelle
chose du domaine d’application que nous voulons clairement identifier.
Autre exemple :
Objet : monCarré
longeurCôté : 10
Attributs positionX : 100
positionY : 200
35
Principes et problématique du génie logiciel.
OBJET
Entité / chose liée au domaine d’application. Un objet peut représenter n’importe quelle
chose du domaine d’application que nous voulons clairement identifier.
36
Principes et problématique du génie logiciel.
OBJET
Entité / chose liée au domaine d’application. Un objet peut représenter n’importe quelle
chose du domaine d’application que nous voulons clairement identifier.
37
Principes et problématique du génie logiciel.
Germinal
E. Zola
Le Monde Alice Dupont Anne Durand
Directrice Lectrice
Arsène Deschamps
Le seigneur des anneaux Michel Martin Lecteur
J.R.R.Tolkien Bibliothécaire
38
Principes et problématique du génie logiciel.
LA CLASSE
Des objets similaires peuvent être informatiquement décrits par une même abstraction
: une classe
même structure de données et méthodes de traitement
valeurs différentes pour chaque objet
Classe Lecteur
Classe Livre Classe Employé -nom, prénom
-titre, auteur Classe Journal -nom, prénom, statut
-titre
Germinal
E. Zola
Le Monde Alice Dupont Anne Durand
Directrice Lectrice
Michel Martin
Le seigneur des anneaux
J.R.R.Tolkien 39
Bibliothécaire Arsène Deschamps
Lecteur
Principes et problématique du génie logiciel.
LA CLASSE
Une classe est un type de données abstrait qui précise des caractéristiques (attributs et
méthodes) communes à toute une famille d’objets et qui permet de créer (instancier) des
objets possédant ces caractéristiques.
Classe Lecteur
Classe Livre Classe Employé -nom, prénom
-titre, auteur Classe Journal -nom, prénom, statut
-titre
Germinal
E. Zola
Le Monde Alice Dupont
Directrice
40
Principes et problématique du génie logiciel.
Objets
Classe
LA CLASSE
monCarre
Nom de la classe Carré Instanciation
10
100
longeurCôté
positionX 200
Attributs
positionY
modifierTaille() autreCarre
calculerAire() Instanciation 20
Méthodes déplacer()
dessiner()
100
50
41
Principes et problématique du génie logiciel.
L’ABSTRACTION
Le principe de l’abstraction se traduit par l’extraction des concepts généraux sur lesquels
raisonner, puis instancier les solutions sur les cas particuliers
Exemple : dans l’objet monCarré, nous n’avons pas défini un attribut appelé couleur.
Doit-on en conclure que notre abstraction de l’objet monCarré est incomplète ou pas
bonne ?
42
Principes et problématique du génie logiciel.
L’ABSTRACTION
Exemple : dans l’objet monCarré, nous n’avons pas défini un attribut appelé couleur.
Doit-on en conclure que notre abstraction de l’objet monCarré est incomplète ou pas
bonne ?
Pas nécessairement
Cela dépend de la nature de l’application pour laquelle nous avons besoin de l’objet monCarré
et du niveau d’abstraction exigé.
43
De la programmation structurée à l’approche orientée objet
Approche procédurale :
"Que doit faire mon programme ?"
Approche orientée-objet :
"De quoi doit être composé mon programme ?"
Cette composition est conséquence d'un choix de modélisation
fait pendant la conception
44
Principes et problématique du génie logiciel.
45
Pour programmer une application, il ne convient pas de se
lancer tête baissée dans l’écriture du code : il faut d’abord
organiser ses idées, les documenter, puis organiser la
réalisation en définissant les modules et étapes de la
réalisation. C’est cette démarche antérieure à l’écriture que
l’on appelle modélisation ; son produit est un modèle.
En génie logiciel :
• Modélisation = spécification + conception
• Aider la réalisation d'un logiciel à partir des besoins du client
46
Principes et problématique du génie logiciel.
Choix d’une méthodologie
47
Principes et problématique du génie logiciel.
Choix d’une méthodologie
48
Principes et problématique du génie logiciel.
Choix d’une méthodologie
49
Principes et problématique du génie logiciel.
Choix d’une méthodologie
50
Principes et problématique du génie logiciel.
51
Principes et problématique du génie logiciel.
Choix d’un processus
Processus ou cycle de vie
52
Principes et problématique du génie logiciel.
Choix d’un processus
• Un procédé logiciel (software process) est un ensemble d’activités conduisant à la
production d’un logiciel.
• Ils sont aussi appelés cycle de vie d’un logiciel (SDLC)
• Un procédé définit les étapes qui le composent ainsi que leur enchaînement
• Les Cycles de vie de logiciels sont complexes et dépendent fortement des acteurs qui
dirigent les activités
• Les activités des procédés ne peuvent être automatisées mais il y a des outils de support,
appelés outils CASE (Computer-Aided Software Engineering)
53
Principes et problématique du génie logiciel.
Choix d’un processus
54
Principes et problématique du génie logiciel.
Choix d’un processus
• Il existe deux types de méthodes:
Méthodes
classique
Méthodes
agiles
55
Principes et problématique du génie logiciel.
Choix d’un processus
• Il existe deux types de méthodes:
Méthodes
• Aucun modèle n’est meilleur que l’autre
classique
• Le choix se fait selon certains critères tels que
Quelle
la nature du projet, sa taille, la nature du client
méthode
et les compétences de l’équipe
choisir?
Méthodes
agiles
56
Principes et problématique du génie logiciel.
Choix d’un processus
Modèle en cascade
57
Principes et problématique du génie logiciel.
Choix d’un processus
Modèle en V
58
Principes et problématique du génie logiciel.
Choix d’un processus
Modèle en Y
59
Pour programmer une application, il ne convient pas de se
lancer tête baissée dans l’écriture du code : il faut d’abord
organiser ses idées, les documenter, puis organiser la
réalisation en définissant les modules et étapes de la
réalisation. C’est cette démarche antérieure à l’écriture que
l’on appelle modélisation ; son produit est un modèle.
En génie logiciel :
• Modélisation = spécification + conception
• Aider la réalisation d'un logiciel à partir des besoins du client
60
UML: Unified Modeling language
Langage :
● Syntaxe et règles d'écriture
● Notations graphiques normalisées
… de modélisation :
● Abstraction du fonctionnement et de la structure du système
● Spécification et conception
… unifié :
● Fusion de plusieurs notations antérieures : Booch, OMT, OOSE
● Standard défini par l'OMG (Object Management Group)
● Dernière version : UML 2.5.1 (7/ 2017)
61
Juin 1999 UML 1.3
UML 0.9
Booch’93 OMT-2
MODÉLISATION GRAPHIQUE:
63
UML: Unified Modeling language
64
Diagramme UML
Classe Objet Use case Etats-transitions Séquence Collaboration Activité Composant Deploiement
65
DEMARCHE GENERALE
La démarche proposée est parfois appelée "Approche dirigée par les cas". Elle consiste en:
66
Acteur
s
1
Cas d'utilisation Diagrammes de
2 collaboration
3
Scénarios
4 Démarche dirigée
par les cas
67
UML: Unified Modeling language
68
Principes et problématique du génie logiciel.
Principes de base
69
Principes et problématique du génie logiciel.
Principes de base
● Couplage: « Une entité (fonction, module, classe, package, composant) est couplée à une autre si
elle dépend d’elle. »
● Couplage faible: « Désigne une relation faible entre plusieurs entités (classes, composants),
permettant une grande souplesse de programmation, de mise à jour.
Ainsi, chaque entité peut être modifiée en limitant l ’ impact du changement au reste de
l’application. »
● Le couplage fort: « Au contraire, tisse un lien puissant qui rend l’application plus rigide à
toute modification de code. »
•
70
Principes et problématique du génie logiciel.
Couplage fort
•
71
Principes et problématique du génie logiciel.
Couplage faible
•
72
Principes et problématique du génie logiciel.
Couplage
•
Mesure de l’interdépendance relative entre modules.
73
Principes et problématique du génie logiciel.
Cohésion
En général, il y a cohésion procédurale lorsque des procédures (ou fonctions) sont
•
ensemble dans un même module parce qu’on veut qu’elles interviennent dans un
ordre précis par rapport à un produit et/ou l ’ accomplissement d ’ un travail. Ces
fonctions n’ont pas nécessairement de relations entre elles. Toutefois, si on modifie
l’ordre, le module peut devenir dysfonctionnel.
Exemple :
lire_chaine_caractere() lire_notes()
valider_chaine_caractere() calculer_Moyenne()
afficher_chaine_caractere() Afficher_Moyenne()
74
Principes et problématique du génie logiciel.
•
Dans une bonne décomposition modulaire, la
cohésion doit être la plus élevée possible et le
couplage le plus faible possible.
75
De la programmation structurée à l’approche orientée objet
LA DÉCOMPOSITION FONCTIONNELLE
76
De la programmation structurée à l’approche orientée objet
LA DÉCOMPOSITION FONCTIONNELLE
77
De la programmation structurée à l’approche orientée objet
78
Les concepts objet
L’ENCAPSULATION
79
Les concepts objet
L’ENCAPSULATION
L'encapsulation permet de définir des niveaux de visibilité des éléments de la classe. Ces
niveaux de visibilité définissent les droits d'accès aux données selon que l'on y accède par une
méthode de la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque. Il
existe trois niveaux de visibilité:
•publique: les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes
d'une classe définie avec le niveau de visibilité public. Il s'agit du plus bas niveau de protection
des données
•protégée: l'accès aux données est réservé aux fonctions des classes héritières, c'est-à-dire
par les fonctions membres de la classe ainsi que des classes dérivées
•privée: l'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit du niveau
de protection des données le plus élevé.
80
Les concepts objet
L’HÉRITAGE
On parle d’héritage lorsque l’on a affaire à des objets et des classes et de généralisation /
spécialisation uniquement pour des classes.
· l’héritage simple
· l’héritage multiple
On va factoriser les attributs et les méthodes communs à plusieurs classes dans une classe
principale : on parle de généralisation. Les classes dérivées deviennent des sous-classes : on parle
de spécialisation.
81
Les concepts objet
L’HÉRITAGE
Personne
CompteBancaire
Nom
Prénom Montant
Adresse
Age
Généralisation CompteChèque CompteEpargne
ChangerNom
ChangerAdresse Intérêts
ChangerAge
ChèquierEmis
Débiter(1) Débiter(2)
Professeur Etudiant
Statut Filière
Matière
ChangerFilière
ChangerStatut Spécialisation CompteChèqueRémunéré
ChangerMatière
82
Les concepts objet
L’HÉRITAGE
Intérêts de l’héritage :
• L’héritage permet la réutilisation du code. En effet lorsque l’on va instancier une classe
spécialisée, le code des attributs et des méthodes de la classe héritée ne seront pas
implémentés à nouveau.
• L’autre avantage de l’héritage et qu’il permet l’organisation hiérarchique des classes. C’est
à dire qu’il rend plus aisé l’exploration et la maintenance d’une bibliothèque de classe pour
une équipe de développement.
83
Les concepts objet
LE POLYMORPHISME
n° immatriculation
AccélérerAFond AccélérerAFond
84
Les concepts objet
LE POLYMORPHISME
85
Les concepts objet
LA SURCHARGE
86
Les concepts objet
LA SURCHARGE
87