2008-10-09 3 views
2

Donc, sans aucun doute que la construction d'un modèle de domaine est quelque chose qui, je pense, se passe mieux lorsque vous l'approchez comme une équipe. Même aller jusqu'à impliquer quelqu'un qui n'est pas technique et un membre du «business» dans les sessions de modélisation. Tellement de choses peuvent être faites rapidement quand vous mettez les bonnes personnes dans une pièce et martelez les choses sur un tableau blanc. Mais qu'en est-il des temps où vous n'avez pas ce luxe? Qu'en est-il lorsque vous devez construire un modèle de domaine complexe seul? Je fais cela pour le mois passé et ont fait ce qui suit:Quelles techniques utilisez-vous lorsque vous concevez un modèle objet seul?

  1. Commencez par Nom Idendtification, utilisez classe de rôle Collaborations pour analyser les relations
  2. Rechercher les modèles d'analyse qui peut être utilisé pour affiner le modèle, Party, etc.
  3. Dès que j'ai un aperçu des bases, je vais sortir un IDE et commencer à écrire des tests XUnit pour montrer que le modèle me laisse faire les choses que je veux

Bien que ces techniques ont bien fonctionné, je ne suis pas sûr qu'elles soient aussi efficaces comme un véritable effort de collaboration. Je pense qu'il est facile de se laisser emporter par un concept pour se rendre compte plus tard qu'il viole l'exigence x ou y. Quelles techniques avez-vous utilisées lorsque vous travaillez de manière isolée pour vous assurer que votre modèle objet/domaine est bien ciblé?

Répondre

3

Tout le monde le fait différemment, je pense, mais ...

Je presque toujours commencer par un diagramme de classes (généralement comme UML et sur papier), en accordant une attention particulière aux relations entre les classes et leur arité. La validation à ce stade consiste principalement à comprendre si la sémantique de haut niveau des entités a un sens ensemble.

Commencez ensuite à dessiner dans les fonctions clés, en particulier celles impliquées dans les collaborations. Assurez-vous que les objets d'une collaboration peuvent se rencontrer dans les relations. À ce stade, je vais utiliser un outil de dessin (StarUML).

Puis viennent les expériences gedanken. Je marche mentalement à travers les cas d'utilisation les plus délicats auxquels je puisse penser et je vois si je peux imaginer un moyen de les aborder avec le design donné. Ce n'est pas un code psuedocode, juste en passant par chacune des tâches/fonctions principales et en suivant les lignes du diagramme pour m'assurer que je ne manque pas de callbacks, de dépendances circulaires, etc

Je pense qu'une clé est de ne pas avoir trop marié à un aspect particulier de la conception jusqu'à ce que vous vous soyez assuré que cela fonctionnera probablement assez bien. Dans mon esprit, si vous ne pouvez pas passer mentalement en revue une conception pour l'évaluer/la valider, vous ne comprenez pas le problème ou le dessin n'est pas assez complet ...

Ensuite, si le temps le permet, Mettez-le de côté et voyez si vous pouvez trouver quelque chose de vraiment différent ...

1

Si vous construisez tout seul, assurez-vous que c'est adaptable, parce que vous ne pensez pas à tout sur le premier coup.

Obtenez du papier de grande taille. Dessine tout et sois désordonné. Ne vous inquiétez pas de le rendre parfait. Mettez tout ce que vous pensez, rayer des choses car il s'avère ne pas être utile. Le papier ressemblera à votre esprit jeté des morceaux d'un modèle d'objet partout. En pensant à des choses déjà écrites, faites ressortir ces choses. À la fin de ce processus, vous aurez un désordre, mais à coup sûr, vous aurez beaucoup de bonnes idées. À ce stade, je recommanderais de montrer cela aux gens, mais puisque vous avez dit que c'était hors de question, nous allons passer à autre chose.

Maintenant, asseyez-vous devant un ordinateur avec un outil UML et tracer quelque chose qui ressemble aux points saillants de votre décharge cérébrale. Pensez aux pièces majeures du modèle objet, puis pensez aux choses les plus mineures qui permettent à ces pièces de fonctionner ensemble. Une fois que vous avez réglé quelque chose, transformez ce code UML en code et commencez à écrire quelques tests pour voir si cela fonctionne. Rincez et répétez.

+0

fondamentalement c'est ce que je fais. Cependant, si vous ne connaissez pas rebbecca wirths-brock et CRC je recommande de vérifier. Ma question concerne les limites de ce que vous pouvez faire vous-même et comment aller au-delà de celles-ci? ... mais bonne réponse quand même .....;) –

Questions connexes