Chapitre 1
Chapitre 1
&
CONCEPTION ORIENTEE OBJET
Pr Nidal LAMGHARI
[email protected]
2020-2021
2 Introduction
Nidal LAMGHARI
1. Introduction
3
Principe de la modélisation
Enjeux modélisation orientée objet
UML : Présentation, Les principaux diagrammes UML
Les 4+1 Vues de Kruchten
Phases de la modélisation : Modèle linéaire
Rôle de l'expression des besoins : Règles de gestion,
contraintes fonctionnelles, Exemple
Rôle de l'analyse
Rôle de la conception
Nidal LAMGHARI
1. Introduction
4
Nidal LAMGHARI
1. Introduction
5
Nidal LAMGHARI
1. Introduction
6
Enjeux de la modélisation
Une simplification du monde réel
Relier le modèle au monde réel par la notion d’objet
Nidal LAMGHARI
1. Introduction
7
Enjeux de la modélisation
Prédire un fonctionnement ou des événements à venir.
Mieux comprendre, expliquer et maitriser le
fonctionnement d’un système
Faciliter sa réalisation puis sa maintenance.
Nidal LAMGHARI
1. Introduction
8
Enjeux de la modélisation
Le code source d’un système logiciel = un modèle du
système.
ne fournit qu’un seul niveau d’abstraction=niveau de
la mise en œuvre sur une infrastructure matérielle
particulière
Les développeurs
Un modèle = un langage commun connu par tous les
intervenants et privilégié pour communiquer.
Nidal LAMGHARI
1. Introduction
9
Enjeux de la modélisation
De disposer d’un langage commun entre les différents
intervenants, de la maitrise d’ouvrage (MOA) à la
maitrise d’œuvre (MOE).
La MOA : experts métier
est le commanditaire du projet.
Il connait exactement les besoins mais il n’a pas toujours les
compétences techniques pour la réalisation.
La MOE : développeurs
s’occupe de la réalisation technique du projet.
Soit réalise elle-même le projet
Soit elle sous-traite une partie ou la totalité du projet.
Nidal LAMGHARI
1. Introduction
10
Enjeux de la modélisation
Qui doit modéliser alors?
Ilest préférable que la modélisation soit réalisée par la
maîtrise d'ouvrage (MOA).
La MOE doit intervenir dans le modèle quand on doit
introduire les contraintes propres à la plateforme
informatique.
Nidal LAMGHARI
1. Introduction
11
Enjeux de la modélisation OO
Indépendance du modèle par rapport aux fonctions
demandées
Capacité d’adaptation et d’évolution du modèle quand
des fonctionnalités sont modifiées ou ajoutées
Rechercher les objets du système puis leurs interactions
Nidal LAMGHARI
1. Introduction
12
Enjeux de la modélisation OO
Modélisation = démarche antérieure à l’implémentation
La description de la POO nécessite un travail
conceptuel :
définitiondes classes, de leurs relations,
des attributs,
des opérations (implémentées par des méthodes),
des interfaces,
...
Il faut organiser ses idées, les documenter, organiser la
réalisation, définir des modules, ...
Nidal LAMGHARI
1. Introduction
13
UML: Historique
Nidal LAMGHARI
1. Introduction
14
UML: Présentation
Unified Modeling Language
Langage unifié pour la modélisation objet
Langage universel de modélisation objet
Notation, un outil de communication visuelle (diagrammes)
Langage de modélisation des applications construites à
l’aide d’objets
N’est pas un langage de programmation
Indépendant d’un langage de programmation
N’est pas un processus de développement
La version actuelle de UML est disponible sur le site de
l’OMG: www.omg.org
Nidal LAMGHARI
1. Introduction
15
UML: Présentation
N’est pas une méthode
A été adopté par toutes les méthodes orientées objet
UML est dans le domaine public ; c’est un standard
Est un langage pour :
Visualiser
Chaque symbole graphique possède une sémantique
Spécifier
De manière précise et complète, sans ambiguïté
Construire
Une partie du code des classes peut être générée automatiquement
Documenter
Les différents diagrammes, notes, contraintes, exigences sont conservés dans
un document
Nidal LAMGHARI
1. Introduction
16
UML: Diagrammes
Les 14 diagrammes peuvent être regroupés selon les trois
aspects suivants :
Les aspects fonctionnels :
Qui utilisera le logiciel et pourquoi faire ?
Comment les actions devront-elles se dérouler ?
Quelles informations seront utilisées pour cela ?
Les aspects liés à l’architecture (statique) :
Quels seront les différents composants logiciels à utiliser (base de
données, librairies, interfaces, etc.) ?
Sur quel matériel chacun des composants sera installé ?
Les aspects dynamiques :
Quels sont les différents états que peut prendre un objet, dans quel
ordre ?
Quels sont les enchaînements de messages envisageables...
Nidal LAMGHARI
1. Introduction
17
UML: Diagrammes
Cas Machine à
d’utilisation Activités Classes Objets
états
Nidal LAMGHARI
1. Introduction
19
SeNidal
rapporte aux objets actifs et
LAMGHARI Ressources matérielles et
aux interactions implantation logicielle
1. Introduction
20
Le cycle de vie:
Les étapes du développement d'un logiciel, de sa
conception à sa disparition
Permettre la validation du développement logiciel
= la conformité du logiciel avec les besoins exprimés
Permettre de détecter les erreurs au plus tôt
Nidal LAMGHARI
1. Introduction Production
Traduction
Vérification
Spécifications
dansdes
Recueil
de
un LP
Définition
delaet de
Déploiement
informations
Actions
des
de
la
conformité
formalisation
chaque
l'interfaçage
sous-
de
du
21 fonctionnalités
correctives
l'architecture
nécessaires
sur site duet
des
ensemble
logiciel
des
des
différents
besoins
sousaux
du
générale
définies
collectives
logiciel
pour lors
du
Le cycle de vie: étapes spécifications
modules
ensembles
du
logiciel
clientdu
l'utilisation
logiciel
de la du
implémentés
initiales
logiciel
conception
logiciel
Le cycle de vie:
Le cycle de vie permet de prendre en compte, en plus
des aspects techniques, l'organisation et les aspects
humains
Il existe plusieurs modèles de cycle de vie:
Cycle en cascade
Cycle en V
Cycle en spirale
Cycle par incrément
Nidal LAMGHARI
1. Introduction
23
Le cycle de vie:
Nidal LAMGHARI
1. Introduction
24
Nidal LAMGHARI
1. Introduction
25
Nidal LAMGHARI
1. Introduction
26
Nidal LAMGHARI
1. Introduction
27
Nidal LAMGHARI
1. Introduction
28
Nidal LAMGHARI
1. Introduction
30
Rôle de l’analyse:
Traduire dans un langage près de celui des informaticiens les
modèles exprimés dans l’expression des besoins
L’analyse ne prend en considération que des entités du domaine
(métier)
Elle sert d’interface, avec l’expression des besoins, aux dialogues
avec les clients et les utilisateurs
Elle sert de support pour la conception, l’implantation et la
maintenance
Le modèle de l’analyse décrit le problème
ce que doit faire le système et
comment il le fait tel que vu d’un point de vue métier
sans spécifier la solution technique (avec les canevas logiciels)
Analyse = LE-QUOI
Nidal LAMGHARI
1. Introduction
31
Rôle de l’analyse:
Nidal LAMGHARI
1. Introduction
32
Rôle de la conception:
Organiser le développement du système informatique
Adresser des questions comme les dépendances entre
modules, la configuration, la gestion des versions
Distribuer physiquement les différentes parties
logicielles du système
Définir les langages de programmation, les schémas de
bases de données pour la persistance des données, etc.
Nidal LAMGHARI
1. Introduction
33
Rôle de la conception:
Le modèle de la conception décrit la solution
comment le problème est résolu
Conception = LE-COMMENT
La conception sert de support pour l’implantation et la
maintenance
Le modèle de la conception n’est pas destiné à être
compréhensible par les utilisateurs mais par les
développeurs
Nidal LAMGHARI
1. Introduction
34
Questions
Le code source d’une application est-il un modèle de
l’application ?
UML est-il un processus de développement ?
Nidal LAMGHARI
1. Introduction
35
Nidal LAMGHARI
1. Introduction
36
Nidal LAMGHARI
1. Introduction
37
Nidal LAMGHARI
1. Introduction
38
Nidal LAMGHARI
1. Introduction
39
Mavoiture.volume_essence==0
Nidal LAMGHARI
1. Introduction
40
Nidal LAMGHARI
1. Introduction
41
Nidal LAMGHARI
1. Introduction
42
Nidal LAMGHARI
1. Introduction
43
Nidal LAMGHARI
1. Introduction
44
Nidal LAMGHARI
1. Introduction
45
Nidal LAMGHARI
1. Introduction
46
Principes de l’OO:
L’OO est basé sur les concepts suivants:
L’encapsulation
L’héritage
Le polymorphisme
Nidal LAMGHARI
1. Introduction
47
Nidal LAMGHARI
1. Introduction
48
Nidal LAMGHARI
1. Introduction
49
Nidal LAMGHARI
1. Introduction
50
Nidal LAMGHARI
1. Introduction
51
Nidal LAMGHARI
1. Introduction
Nidal LAMGHARI