Static modeling, Thu 21.6.2001 G. Falquet, L. Nerima.

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

Static modeling, Thu G. Falquet, L. Nerima

ISIISI June G. Falquet, L. NerimaClasses 2 References 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

ISIISI June G. Falquet, L. NerimaClasses 3 Outline vObjects and classes vClass diagrams vRelationships vClass hierarchies and inheritance vClass modeling exercise

ISIISI June G. Falquet, L. NerimaClasses 4 C'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)

ISIISI June G. Falquet, L. NerimaClasses 5 Messages 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 -> largeur=25 et hauteur=40 Métaphore:1 objet …. 1 collection 1 objet …. N objets ….1 artisan 1 industrie … 1 Classe

ISIISI June G. Falquet, L. NerimaClasses 6 Les 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

ISIISI June G. Falquet, L. NerimaClasses 7 Instanciation 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

ISIISI June G. Falquet, L. NerimaClasses 8 Pourquoi 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

ISIISI June G. Falquet, L. NerimaClasses 9 Contrôle de la visbilité

ISIISI June G. Falquet, L. NerimaClasses 10 Diagramme de classe UML Notation UML Exemples

ISIISI June G. Falquet, L. NerimaClasses 11 Diagramme dobjets Notation UML: Exemples: Le rectangle r1 un rectangle en général un objet avec ses attributs

ISIISI June G. Falquet, L. NerimaClasses 12 Des liens entre les objets Les objets ont des liens entre eux Mais les classes ont des associations entre elles

ISIISI June G. Falquet, L. NerimaClasses 13 Associations Indépendance des classes Association est un couplage faible entre classes Nommer l'association

ISIISI June G. Falquet, L. NerimaClasses 14 Associations orienter le nom Les roles Le role que joue une classe dans une association

ISIISI June G. Falquet, L. NerimaClasses 15 VillePersonne habitation Naissance Ordinateur Personne possèder allumer éteindre réparer Les 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

ISIISI June G. Falquet, L. NerimaClasses 16 Multiplicité 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

ISIISI June G. Falquet, L. NerimaClasses 17 Multiplicité (suite) Cas *, 0..*, 1..* Tout objet de A est associé optionnellement à plusieurs objets de B Tout objet de A est associé à plusieurs objets de B Exemple: Tout objet de A est associé à au moins 1 objet de B

ISIISI June G. Falquet, L. NerimaClasses 18 1 et 1 seul Des exemples

ISIISI June G. Falquet, L. NerimaClasses 19 au plus 1 Des exemples

ISIISI June G. Falquet, L. NerimaClasses 20 à plusieurs … Des exemples

ISIISI June G. Falquet, L. NerimaClasses 21 Association binaire, ternaire, … Arité de l'association (combien de classes) binaire ternaire

ISIISI June G. Falquet, L. NerimaClasses 22 Association … encore plus ?

ISIISI June G. Falquet, L. NerimaClasses 23 association attribuée Classe anonyme permet de mémoriser des informations dans le lien

ISIISI June G. Falquet, L. NerimaClasses 24 parfois la classe doit perdre son anonymat (pour etre associées à d'autres classes) Classe - association ou bien des association ternaire …

ISIISI June G. Falquet, L. NerimaClasses 25 ou encore une classe (permet la co-édition!) Classe - association

ISIISI June G. Falquet, L. NerimaClasses 26 Employé Vol pilote copilote {ou exclusif} Contraintes Ordonner les liens ou-exclusif sous-ensemble de

ISIISI June G. Falquet, L. NerimaClasses 27 Contraintes L'association ne se parcourt que dans un sens Le sens de navigation est indiqué par une flèche alternative

ISIISI June G. Falquet, L. NerimaClasses 28 Agré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

ISIISI June G. Falquet, L. NerimaClasses 29 Exemple 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

ISIISI June G. Falquet, L. NerimaClasses 30 Composition

ISIISI June G. Falquet, L. NerimaClasses 31 Attribut de type classe attributs avec des types Classe ! Les objets :B et :C dans un objet :A

ISIISI June G. Falquet, L. NerimaClasses 32 Autres exemples de composition

ISIISI June G. Falquet, L. NerimaClasses 33 La généralisation Objectifs: partager Attributs (statique) Comportement (dynamique) On parle aussi de relation d'héritage

ISIISI June G. Falquet, L. NerimaClasses 34 Différence entre agrégation et composition ?

ISIISI June G. Falquet, L. NerimaClasses 35 Exemple de généralisation L'eau gazeuse est une eau L'eau est une boisson

ISIISI June G. Falquet, L. NerimaClasses 36 L'eau contient du NaCl Généralisation - agrégation

ISIISI June G. Falquet, L. NerimaClasses 37 Autre exemple de généralisation L'héritage a une propriété classifiante

ISIISI June G. Falquet, L. NerimaClasses 38 La classification cela n'est pas simple ! Autre exemple de généralisation

ISIISI June G. Falquet, L. NerimaClasses 39 Principe 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

ISIISI June G. Falquet, L. NerimaClasses 40 Exemple: La trajectoire des satellites peut se calculer comme celle d'une planète. Cependant la lune n'est pas une planète. Factoriser le code (sans classification)

ISIISI June G. Falquet, L. NerimaClasses 41 On n'hérite son comportement depuis plusieurs classes ne partageant pas la meme arborescence Héritage Multiple

ISIISI June G. Falquet, L. NerimaClasses 42 Héritage Multiple

ISIISI June G. Falquet, L. NerimaClasses 43 Covariance Intégrer plusieurs critères indépendants dans une meme arborescence ? Exemple : Critères du milieu ou …

ISIISI June G. Falquet, L. NerimaClasses 44 Moteur Véhicule MarinTerrestreAérien Sans MarinTerrestreAérien … ou de propulsion Covariance (suite)

ISIISI June G. Falquet, L. NerimaClasses 45 Covariance et Héritage Multiple

ISIISI June G. Falquet, L. NerimaClasses 46 Break … and exercise time !