Title: Static modeling, Thu 21.6.2001
1Static modeling, Thu 21.6.2001
G. Falquet, L. Nerima
2References
- Grady Booch, James Rumbaugh, Ivar Jacobson The
Unified Modeling Language User Guide ,
Addison-Wesley 1999 - Pierre-Alain Muller Modélisation objet avec
UML , Eyrolles 1997 - Grady Booch, James Rumbaugh, Ivar Jacobson The
Unified Modeling Language Reference Manual ,
Addison-Wesley 1999
3Outline
- Objects and classes
- Class diagrams
- Relationships
- Class hierarchies and inheritance
- Class modeling exercise
4C'est quoi un objet
Une entité contenant       des données
(état)       des procédures (comportement)
Exemple d'objet Le rectangle r1
Chaque objet a une identité (Oid)
5Messages et Méthodes
le message déclenche l'exécution de la méthode
sur l'objet r1.surface() retournera la valeur
40 r1.agrandir(5) modifie l'état de r1 -gt
largeur25 et hauteur40  Métaphore 1 objet .
1 collection 1 objet . N objets .1
artisan 1 industrie 1 Classe
6Les classes
Une classe est un moule pour fabriquer des
objets       De meme structure       De meme
comportement       Régit par les memes
règles Exemple La classe Rectangle
Â
7Instanciation dun objet
Instanciation d'objet à partir de la classe  new
Rectangle(5,8) new Rectangle(4,4)
Un objet est une instance d'une classe
8Pourquoi les objets ?
Bonne propriété "génie logiciel" Réunir données
et traitements (le comportement est défini dans
la classe) Encapsulation (cacher comment sont
réalisées les méthodes) (cacher les
variables) Héritage (affiner le comportement
d'une classe) (factoriser le code,
réutilisation) Polymorphisme Liaison dynamique
9Contrôle de la visbilité
Â
10Diagramme de classe UML
Notation UML
Exemples
11Diagramme dobjets
Notation UML
Exemples
Le rectangle r1
un rectangle en général
un objet avec ses attributs
12Des liens entre les objets
Les objets ont des liens entre eux
Mais les classes ont des associations entre elles
13Associations
Indépendance des classes
 Association est un couplage faible entre classes
Nommer l'association
14Associations
orienter le nom lt gt
Les roles
Le role que joue une classe dans une association
15Les roles multiples
Stabilité des associations Les liens entre les
objets doivent exister en dehors de l'exécution
d'une méthode.
allumer, éteindre, réparer sont des méthodes
16Multiplicité des associations
Tout objet de A est associé par r à min objets de
B et au plus max objets de B
Cas 1, 0..1
Tout objet de A est associé exactement 1 objet de
B
Tout objet de A est associé au plus à 1 objet de B
17Multiplicité (suite)
Cas , 0.., 1..
Tout objet de A est associé à plusieurs objets de
B
Tout objet de A est associé optionnellement Ã
plusieurs objets de B
Tout objet de A est associé à au moins 1 objet de
B
Exemple
181 et 1 seul
Des exemples
    Â
19au plus 1
Des exemples
     Â
20Ã plusieurs
Des exemples
21Association binaire, ternaire,
Arité de l'association (combien de classes)
binaire
ternaire
22Association encore plus ?
23association attribuée
Classe anonyme permet de mémoriser des
informations dans le lien
24Classe - association
parfois la classe doit perdre son anonymat (pour
etre associées à d'autres classes)
ou bien des association ternaire
25Classe - association
ou encore une classe (permet la co-édition!)
26Contraintes
Ordonner les liens
 Â
ou-exclusif
pilote
Vol
Employé
ou exclusif
copilote
sous-ensemble de
27Contraintes
alternative
L'association ne se parcourt que dans un sens Le
sens de navigation est indiqué par une flèche
28Agrégation
Association non symétrique
      A est formé de B       A pré-existe Ã
B Â Â Â Â Â Â B n'existe pas sans A Â Autres
dépendances        A contient B
(ensembliste) Â Â Â Â Â Â Les attributs d'une classe
sont dépendants de l'autres       Les actions
d'une classe sont dépendants de
l'autres  Agrégation modèlise un couplage plus
fort que l'association
29Exemple d'agrégation
A est un ensemble de B  Si un B n'est lié
qu'à un A alors l'agrégation est une composition
30Composition
31Attribut de type classe
attributs avec des types Classe !
Les objets B et C dans un objet A
32Autres exemples de composition
33La généralisation
Objectifs partager       Attributs
(statique) Â Â Â Â Â Â Comportement (dynamique)
On parle aussi de relation d'héritage
34Différence entre agrégation et composition ?
35Exemple de généralisation
L'eau gazeuse est une eau
L'eau est une boisson
36Généralisation - agrégation
L'eau contient du NaCl
37Autre exemple de généralisation
L'héritage a une propriété classifiante
38Autre exemple de généralisation
La classification cela n'est pas simple !
39Principe de substitution de Liskow
Si A est un B Alors il doit etre possible de
substituer à un objet de la classe la plus
générale (B) un objet d'une de ses sous-classes
(A) sans modifier le comportement du système (un
programme)
le chat miaule devient après substitution le
chat siamois miaule
pas toujours respecté par les développeurs     Â
 L'héritage est utilisé pour propager du
code       Mécanisme de version      Â
Mécanisme de réutilisation
40Factoriser le code (sans classification)
Exemple La trajectoire des satellites peut se
calculer comme celle d'une planète. Cependant la
lune n'est pas une planète.
41Héritage Multiple
On n'hérite son comportement depuis plusieurs
classes ne partageant pas la meme arborescence Â
42Héritage Multiple
43Covariance
Intégrer plusieurs critères indépendants dans une
meme arborescence ? Exemple Critères du milieu
ou
44Covariance (suite)
ou de propulsion
45Covariance et Héritage Multiple
46Break and exercise time !