lundi 31 mars 2008

Diagrammes de conception

1. Les diagrammes de conception
Pour améliorer encore notre diagramme de classes et le préparer à la production du code, nous cesserons de considérer le système comme une boîte fermée et décrirons plus précisément les interactions survenant entre les différentes classes identifiées précédemment - soit les dialogues, les contrôles et les entités.
Nous isolerons un cas d'utilisation particulier pour illustrer certains aspects complexes de l'application. Prenons le cas d'un utilisateur qui effectue une recherche intermédiaire par auteur. Un premier diagramme de séquences illustre ce cas d'utilisation :








Nous ajoutons maintenant au diagramme de séquences les instances de classe d'objet intervenant dans le système. Continuons à identifier les messages pour l'obtention de la fiche détaillée d'un document choisi dans la page de résultats.

Ce diagramme nous permet maintenant d'identifier quelques nouveaux messages. Ceux-ci nous permettront d'attribuer aux bonnes classes les bonnes opérations.
Typer les attributs
Retournons à notre diagramme de classes et ajoutons des types aux attributs, ainsi qu'aux paramètres et aux retours des opérations.
En considérant pour illustration le langage ActionScript 2.0, le typage s'effectue ainsi :
// pour un attribut
propriété:Type
// pour une opération, avec un argument et un renvoi
operation(parametre:Type):TypeRenvoi
Lorsqu'aucun renvoi n'existe pour une opération, on indiquera le type Void. Ce sera généralement le cas.
Préciser la visibilité
Un concept fondamental de l'orienté objet est l'encapsulation - le fait de garder des informations cachées à l'intérieur de l'objet.
On pourra aussi indiquer à cette étape quels attributs ou méthodes sont privées ou publiques en faisant précéder l'attribut ou la méthode du signe + (pour public) ou - (pour privé).
Règle générale, tous les attributs devraient être privés, à moins d'avoir une excellente raison - ce qui est rarement le cas. On privilégiera plutôt l'utilisation des accesseurs (getter / setter) servant à fournir ou à modifier les valeurs d'attributs.



Diagramme de classe de conception

Aucun commentaire: