La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Static modeling, Thu 21.6.2001 G. Falquet, L. Nerima."— Transcription de la présentation:

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

2 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

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

4 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)

5 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

6 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

7 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

8 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

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

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

11 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

12 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

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

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

15 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

16 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

17 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

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

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

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

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

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

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

24 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 …

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

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

27 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

28 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

29 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

30 ISIISI June G. Falquet, L. NerimaClasses 30 Composition

31 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

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

33 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

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

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

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

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

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

39 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

40 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)

41 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

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

43 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 …

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

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

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


Télécharger ppt "Static modeling, Thu 21.6.2001 G. Falquet, L. Nerima."

Présentations similaires


Annonces Google