14
Systèmes en temps réel Héritage avec les capsules

Systèmes en temps réel Héritage avec les capsules

Embed Size (px)

Citation preview

Page 1: Systèmes en temps réel Héritage avec les capsules

Systèmes en temps réel

Héritage avec les capsules

Page 2: Systèmes en temps réel Héritage avec les capsules

Héritage - 2

Synopsis

Utilisation de l’héritage

Genres d’héritage

Mécanismes

Pièges

Exercice

Page 3: Systèmes en temps réel Héritage avec les capsules

Héritage - 3

Pourquoi utiliser l’héritage?

Généralisation / spécialisation polymorphisme réutilisation*

Considérez la “super” capsule B et la “sous” capsule

littleBs

Qu’est qu’on s’attend à hérité?

Page 4: Systèmes en temps réel Héritage avec les capsules

Héritage - 4

Héritage de capsule - Interface

Les ports publique et protégés sont hérités

Les sous-classes peuvent ajouter d’autres portsDiagramme de structure de B

Page 5: Systèmes en temps réel Héritage avec les capsules

Héritage - 5

Héritage de capsule - Structure

Ajoute une structure à B

Spécialisation

Nouveau port

Page 6: Systèmes en temps réel Héritage avec les capsules

Héritage - 6

Héritage de capsule - Structure

La contenance de structure est héritée

Nouveau diagrammede structure pour B

Page 7: Systèmes en temps réel Héritage avec les capsules

Héritage - 7

Héritage de capsule - Structure

Les sous-classes peuvent spécialiser ou ajouter de la contenance

Diagramme de Structure pour

littleB

Page 8: Systèmes en temps réel Héritage avec les capsules

Héritage - 8

Héritage de capsule - Comportement

Les machines d’états sont héritées

Diagramme d’étatsPour Capsule B

Spécialisation

Page 9: Systèmes en temps réel Héritage avec les capsules

Héritage - 9

Héritage de capsule - Comportement

Les sous classes vont habituellement spécialiser le comportement

Diagramme d’étatspour littleB’s

Spécialisation

Page 10: Systèmes en temps réel Héritage avec les capsules

Héritage - 10

Mécanismes de “spécialisation”

Vous pouvez redéfinir (override) les opérations d’une capsule

Vous pouvez redéfinir les déclencheurs et code de transition

Vous pouvez ajouter des attributs, opérations, ports, rôles de capsules, états et transitions

et vous pouvez enlever des ports, rôles de capsule, états et transitions *

Considérez l’utilisation des opérations dans les classes passives Votre code sera plus modulaire

* Utilisez ce genre de spécialisation avec grand soins !

Page 11: Systèmes en temps réel Héritage avec les capsules

Héritage - 11

Pièges dans l’utilisation de l’héritage

Le couplage fort implique “les effets d’entraînement” si la super classe change Ça doit être une force

Redéfinir ou enlever les éléments dans la sous classe réduit la maintenabilité

Les décisions de design sont déplacées vers le haut de la hiérarchie de classes

Utilisez l’héritage sagement mettez seulement les choses dans la classe parent

qui sont, et seront toujours, valides pour les sous classes

Page 12: Systèmes en temps réel Héritage avec les capsules

Héritage - 12

Héritage – Sommaire

Pour plusieurs, la conception est difficile parce que nous manquons de formation, et plus particulièrement d’expérience

Le Lab 3 vous oblige à penser aux conséquences des décisions conceptuelles

Vous ne pouvez pas ajouter de la qualité à la fin du produit- tout est dans le design

Également, vous ne pouvez pas ajouter l’héritage à la fin d’un design

Le Lab 3 est artificiel – il vous force à utiliser l’héritage comme requis du design

Page 13: Systèmes en temps réel Héritage avec les capsules

Héritage - 13

Exercice d’héritage

Page 14: Systèmes en temps réel Héritage avec les capsules

Héritage - 14

Exercice d’héritage

Considérez la situation où il y a deux sous classes généralisés, LittleBs et BabyBs Comment fournissez vous des communications

(signaux) additionnelles entre LittleBs et A de telle façon à ce que A et BabyBs ne sont pas affectés?

Fournissez un diagramme de classes qui illustre les capsules, protocoles et relations nécessaires