Académique Documents
Professionnel Documents
Culture Documents
Orienteé Object
1
Plan
2
Chapitre 1: Modélisation Orientée
Objet : langages et concepts
3
Lien Informatique et Information
L'informatique s'occupe
• du traitement (par machine),
• de l'enregistrement,
• de la transmission et
• de la représentation de l'information.
4
Information et sa structuration
5
Information et sa structuration
6
Structures de Données
• Deux concepts :
– Représentation types de données
– Abstraction structures de données
7
Objectifs primordiaux
● d'analyse,
● de modélisation
• des données,
• des structures et
• des rapports entre différents éléments dans plusieurs domaines d'application.
8
Objectifs primordiaux
La tâche d'informaticien
9
Modélisation
Problème
Modélisation
Solution informatique
10
Modèle…pourquoi ?
11
Modélisation et monde réel
Un bon modèle doit refléter les propriétés du monde réel qu'il représente.
Concept Réalité
Traduit dans la réalité
Fondement
Morceau
de la
Traduction de la réalité
réalité
Modèle
12
Modèle et Système
La réalité est constituée des choses, des personnes, des processus, des
relations entre ces choses (faits…).
Le modèle quant à lui est la notion de ces choses (réelles ou pensées), des
personnes, des relations entre ces personnes (faits logiquement possibles),
…
13
Méthodologie…pourquoi ?
14
Cycle de vie du logiciel
Modèle en cascade pour le développement logiciel
Analyse
Conception
Implémentation
Test
Maintenance
4 / 40
Cycle de vie du logiciel
Analyse
Conception
Test
Maintenance
4 / 40
Modélisation et philosophie
Langages Orientés-Objet
Modélisation et philosophie
18
Modélisation et philosophie
Déroulement du cours Introduction Concepts Java Remarques
Langages Orientés-Objet
Client
Fournisseur Entreprise
Performance
XX
Input
Output
Achat Expédition
Production
Entrée Sortie
Traitement
ETS 22
Exemple 1: Modélisation d'une entreprise
-approvision
-
Expédition nement Expédition
23
Exemple 1: Modélisation Approvisionnement
d'une entreprise
Fournisseur3270
Magasin L7
Lettre numérisée
Monsieur Y
Liste ToDo
1. Liefe -
Commandes ranten -
Client auswahl
2. Preisver -
handlung
25
Exemple 2 : Modèle de croissance
• Une population est un groupe d'organismes qui vivent ensemble et se reproduisent.
• Quatre facteurs peuvent réguler la taille d'une population : naissances B, morts D,
Immigration I et Emigration E.
• Une population de taille N change donc selon la formule suivante
dN
----- = B – D + I - E
dt
Les modèles simples considèrent une population fermée, avec plus de ressources
accessibles à elle qu'elle ne peut utiliser
dN
----- = B - D = rbN – rdN = (rb-rd)N = sN
dt
st, N
avec comme solution N = N0e 0, population initiale
26
Langages procéduraux et fonctionnels
29
Définition
30
Réseau de Petri: Producteur-Consommateur
Un producteur met des biens dans le magasin et le consommateur les
prend de là.
producteur consommateur
inactif T3 inactif
T1 Marché
actif actif
T4
T2
31
Exemple 2 : Le diagramme de Flux de données
32
Exemple2: Modélisation d'une entreprise
3 composantes : fournisseurs, entreprise, clients.
Client
Fournisseur Entreprise
Performance
XX
Input
Output
Achat Expédition
Production
Entrée Sortie
Traitement
ETS 33
Exemple2: Modélisation d'une entreprise
-approvision
-
Expédition nement Expédition
34
Exemple2: Modélisation Approvisionnement
d'une entreprise
Fournisseur3270
Magasin L7
Lettre numérisée
Monsieur Y
Liste ToDo
1. Liefe -
Commandes ranten -
Client auswahl
2. Preisver -
handlung
• Des entités
● Des associations
● Les attributs ont des noms uniques et qualifient les entités ou les associations
• Complexité ou cardinalité d’une relation. Elle donne le rapport que les entités
entretiennent entre elles,
– soit unique (1 :1),
– un à plusieurs (1 :m) ou
– complexe (n :m).
– Par exemple, une voiture de location peut être louée par personne ou par un seul
client. Mais un client peut louer une ou plusieurs voitures.
Bases de données
• Une agence de voyage installée dans les environs de Maroua loue des véhicules à des touristes
pour des randonnées sahéliennes. Les prix dépendent de la durée de la location et du type de
véhicule.
• Les entités sont les clients et les voitures qui sont reliés par une association « louer ».
Bases de données
Voiture Immatriculation
C004 Marque
Djao Couleur
Loum 77 77 77 77
LT 1222 Q Opel Rouge
C003 NO 2244 T 1
C004 AD 4433 Q 4
C004 AD 4444 T 12
C003 CE 3300 Z 5
Bases de données
Client NrClient Nom Lieu Téléphone
C001 Baba Tignère 22 25 21 31
C002 Fdam Dziguilao 22 29 29 99
C003 Bapetel Ngong 22 27 00 00
C004 Djao Loum 77 77 77 77
Voiture Immatriculation Marque Couleur
Système réel
Analyse
Modèle Conception
Modèle de Réalisation
Modèle de Déploiement
Modèle de
d’Analyse Conception Réalisation Déploiement
UML 0.9
Booch’93 OMT-2
Résumé
• UML est une notation, pas une méthode
• UML est un langage de modélisation objet
• UML convient pour toutes les méthodes objet
• UML est dans le domaine public
Notion de Classe
• Structure d'un objet, c.-à-d. une déclaration de l'ensemble des entités qui
composeront l’objet
• Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule
Notation
un objet est une instanciation (occurrence) d'une classe
➢Publique (+)
les classes peuvent accéder aux données et
Nom_de_la_classe
méthodes d'une classe définie avec le niveau
de visibilité public # Attribut1 : Type
- Attribut2 : Type
…
➢Protégée (#): l'accès aux données est + méthode1 ()
réservé aux fonctions des classes héritières Méthode2 ()
…
GENERALITES :
DEFINITION :
GENERALITES :
• On part d’un scénario (ex : un client achète un objet et paie sur internet)
• Mais il peut y avoir des scénarios liés ex
• échec lors du paiement
• Il s’agit d’un client régulier
• Mais ces scénarios ont le même but : acheter un objet
REPRESENTATION :
Cas d’utilisation
Acteur
UML : DIAGRAMME DE CAS D’UTILISATION
ACTEURS vs UTILISATEURS :
Types d’acteurs :
• Utilisateurs principaux
• Utilisateurs secondaires
• Périphériques externes
• Systèmes externes
UML : DIAGRAMME DE CAS D’UTILISATION
Ensemble des actions réalisées par le système en réponse à une action d’un
acteur
CU1
CUn
CU2
Acteur
UML : DIAGRAMME DE CAS D’UTILISATION
CAS D’UTILISATION
Système Cas d’utilisation
Acteur Principal
Association
CU1
CUn
CU2
Acteur
UML : DIAGRAMME DE CAS D’UTILISATION
EXEMPLE
Créer un
compte
Consulter
un compte
Client
Déposer Retirer de
de l’argent au
l’argent distributeur
Guichetier
Retirer Gérer les
de prêts
l’argent
Directeur
UML : DIAGRAMME DE CAS D’UTILISATION
• Généralisation (generalize)
• Inclusion (include)
• Extension (extend)
UML : DIAGRAMME DE CAS D’UTILISATION
RELATION GENERALIZE
RELATION INCLUDE :
<<include>> Consulter un
compte
Imprimer Solde
Compte
<<include>> Imprimer un
Ticket
UML : DIAGRAMME DE CAS D’UTILISATION
RELATION EXTEND :
<<extend>>
Commander
Commander du vin
Nourriture
Client
<<extend>>
Manger
Nourriture
Boire du vin
UML : DIAGRAMME DE CAS D’UTILISATION
EN RESUME :
• Système = ensemble de cas d’utilisation
• Le système possède les cas d’utilisation mais pas les acteurs
QUAND L’UTILISER ?
• Outil appréciable pour aider à comprendre les requis fonctionnels d’un
système.
• Utile dans les premières phases d’un projet
• Précède les spécifications détaillées
ASTUCES :
• S’aider des flux & des acteurs identifiés dans le diagramme de
communication
• Regrouper ces flux identifiés
• Ne pas descendre trop bas dans la description
UML : DIAGRAMME DE CAS D’UTILISATION
ASTUCES :
• Impossible de décrire tous les scénarios
• Sélection des scénarios optimaux : interaction la plus fréquente
• Sélection des scénarios dérivés : certaines alternatives intéressantes
EXERCICES
Diagrammes de Classes e
d’objets
Introduction
• La construction du diagramme de classes constitue l’objectif de toute démarche de
modélisation « objet »
•Il fournit une représentation abstraite des objets du système qui vont interagir pour
réaliser les cas d’utilisation.
• Le diagramme de classes modélise les concepts du domaine d’application ainsi que les
concepts internes créés dans le cadre de l’implémentation d’une application.
Classe et instance de classe
● Une instance est une réalisation concrète d’un concept abstrait.
Par exemple :
- le téléphone de Jules est une instance du concept abstrait Téléphone
- l’amitié qui lie Jean et Marie est une instance du concept abstrait Amitié
-
● Une classe est un concept abstrait représentant des éléments variés comme :
● d’un état
● d’un comportement
Les objets sont des éléments individuels d’un système en cours d’exécution.
Caractéristiques d’une classe
● État d’un objet
● Comportement d’un objet
État d’un objet
• Les opérations décrivent les éléments individuels d’un comportement que l’on
peut invoquer. Ce sont des fonctions qui peuvent:
• prendre des valeurs en entrée
• modifier les attributs
● produire des résultats
• Une opération est la spécification (i.e. déclaration) d’une méthode. Par abus
de langage (impérialisme Java!) les opérations sont parfois appelées méthodes.
Il y a donc une ambiguïté sur le terme méthode.
• Les attributs, les terminaisons d’associations et les opérations constituent donc les
caractéristiques d’une classe (et de ses instances).
Représentation graphique
Une classe est un « classificateur ». Elle est représentée par un rectangle divisé
en trois à cinq compartiments:
Interdit l’accès aux données par un autre moyen que les services proposés.
Les services accessibles (offerts) aux utilisateurs de l’objet définissent l’interface
de l’objet (sa vue externe).
• un nom de classe,
• un nom d’interface,
• un type de donné prédéfini.
Opération de classe
• Comme pour les attributs de classe, il est possible de déclarer des opérations
de classe.
• Une opération de classe ne peut manipuler que des attributs de classe et
ses propres paramètres.
• Cette méthode n’a pas accès aux autres attributs
• Graphiquement, une opération de classe est soulignée.
Classe active
• Une classe est passive par défaut, elle sauvegarde les données et offre
des services aux autres.
• Graphiquement, une classe active est représentée comme une classe standard
dont les lignes verticales du cadre, sur les côtés droit et gauche, sont doublées.
Notion d’association
• Une association est une relation entre deux classes (association binaire) ou plus
(association n-aire), qui décrit les connexions structurelles entre leurs instances.
• Une association indique donc qu’il peut y avoir des liens entre des instances des
classes associées.
Notion d’association
(remarque)
La question de savoir s’il faut modéliser les associations en tant que tel a longtemps
fait débat. UML a tranché pour la première version car elle se situe plus à un niveau
conceptuel (par opposition au niveau d’implémentation)
Terminaison d’association
Propriétaire d’une terminaison d’association
● Agrégation
● Une agrégation est une association qui représente une relation d’inclusion
● Lorsque l’on souhaite modéliser une relation tout/partie où une classe constitue
● un élément plus grand (tout) composé d’éléments plus petit (partie), il faut utiliser
● une agrégation.
● Graphiquement, on ajoute un losange vide (♦) du côté de l’agrégat. Contrairement
● Composite.
Spécialisation
Démarche descendante, qui consiste à capturer les particularités
d'un ensemble d'objets, non discriminés par les classes déjà identifiées.
La Spécialisation consiste à étendre les propriétés d'une classe,
sous forme de sous-classes, plus spécifiques.
Généralisation
Démarche ascendante, qui consiste à capturer les particularités
communes d'un ensemble d'objets, issus de classes différentes.
La Généralisation consiste à factoriser les propriétés d'un ensemble
de classes, sous forme d'une super-classe, plus abstraite.
Principe de substitution de Liksow
• L'héritage permet la classification des objets.
• Une bonne classification est stable dans le temps et extensible
• Parfois, les critères de classification sont subjectifs.
• Le principe de substitution de Liksow, (1987) permet de déterminer
si une relation d'héritage est bien employée pour la classification :
• Une classe enfant peut redéfinir (même signature) une ou plusieurs opérations
● de la classe parent.
• Sauf indication contraire, un objet utilise les opérations les plus spécialisées
● dans la hiérarchie des classes.
• Une classe peut avoir plusieurs parents, on parle alors d’héritage multiple
• Le langage C++ est un des langages objet permettant son implémentation
● effective, le langage Java ne le permet pas.
Héritage multiple
● Une classe peut avoir plusieurs parents, on parle alors d’héritage multiple
●
● (Le langage C++ est un des langages objet permettant son implémentation effective, le langage Java
● ne le permet pas.)
●
● En UML, la relation d’héritage n’est pas propre aux classes. Elle s’applique à d’autre éléments du langage
● comme les paquetages, les acteurs ou les cas d’utilisation.
Dépendance
• C’est une relation unidirectionnelle exprimant une dépendance sémantique entre
● des éléments du modèle.
● Le diagramme de classes modélise les règles et le diagramme d’objets modélise des faits.
Représentation
• Graphiquement, un objet se représente comme une classe.
• Le compartiment des opérations n’est pas utile.
• Le nom de la classe dont l’objet est une instance est précédé d’un << : >>
● et est souligné.
• Pour différencier les objets d’une même classe, leur nom peut être ajouté
devant le nom de la classe.
• Les attributs reçoivent des valeurs.
Représentation
● Dans un diagrammes d’objets, les relations du diagramme de classes deviennent des liens.
• La relation de généralisation ne possède pas d’instance, elle n’est donc jamais
● représentée dans un diagramme d’objets.
● Graphiquement, un lien se représente comme une relation, mais, s’il y a un nom, il est souligné.
• On ne représente pas les multiplicités.
Dépendance d’instanciation
L'accès aux salles de bain est compris dans le prix de la location d'une chambre.
Certaines chambres comportent une salle de bain, mais pas toutes. Les hôtes de
chambres sans salle de bain peuvent utiliser une salle de bain sur le palier. Ces
dernières peuvent être utilisées par plusieurs hôtes.
Les pièces de l'hôtel qui ne sont ni des chambres, ni des salles de bain (hall
d'accueil, cuisine...) ne font pas partie de l'étude (hors sujet).
Des personnes peuvent louer une ou plusieurs chambres de l'hôtel, afin d'y résider.
En d'autre termes : l'hôtel héberge un certain nombre de personnes, ses hôtes (il
s'agit des personnes qui louent au moins une chambre de l'hôtel...).
Solution