2009-04-30 6 views
1

... que faire ensuite? Après avoir défini quels acteurs font quelles actions, dans quelle direction allez-vous? Modélisez-vous la base de données ou préférez-vous commencer par les cours?Modélisation d'un système après avoir défini le cas d'utilisation UML

Je pensais que la meilleure approche était de commencer par un diagramme de modélisation de type classe, pour se concentrer sur les relations entre les objets. Cela s'est avéré être faux parce que je suis allé trop loin dans les classes de détail et, même si le système "semblait fonctionner", quand je suis allé à la modélisation de base de données, tout ne cadrait pas naturellement dans les positions que j'ai choisies dans la phase précédente . Je lis des gens qui disent que l'on devrait mettre la logique d'application dans une base de données et tirer parti de sa vitesse de récupération des données, contrairement à la construction de gros objets en mémoire qui sont interrogés et fournir l'abstraction de la base de données sous-jacente. J'ai toujours pensé que la base de données était là pour stocker mes données et fournir un moyen rapide d'y accéder. Mais peut-être que je me trompe, je veux dire, est-ce que je dois vraiment construire une base de données qui a la même logique que celle d'un groupe de cours? La base de données ne dispose-t-elle pas des outils nécessaires pour y parvenir?

Je pense que je ne parviens pas à identifier le bon point de départ, si je choisis de commencer avec la base de données, je trouve difficile de ne pas le considérer comme un «endroit pour stocker mes données, faisons la logique de l'application à un niveau supérieur, si je commence par les classes, la base de données finit par ressembler à une représentation artificielle des classes, je sens la sensation de manquer quelque chose d'important, quelque chose comme ne pas assigner le bon objectif au bon outil.

Comment gérez-vous cela? Quand il s'agit de décider s'il faut commencer par modéliser la db ou les classes, selon votre expérience, quel type d'approche a conduit à une mise en œuvre naturelle et propre?

Merci à l'avance

+0

Pourquoi ai-je eu si peu de vues? Peut-être que le titre est trop générique? –

Répondre

2

J'ai eu du succès en utilisant Robustness Analysis.

Cet article se concentre sur l'analyse robustesse , qui consiste à analyser le texte narratif des cas d'utilisation et identifiant un premier deviner un ensemble de objets qui participeront à chaque cas d'utilisation, classer ensuite ces objets en trois types:

  1. Les objets limites, que les acteurs utilisent pour communiquer avec le système.
  2. Objets d'entité, qui sont généralement des objets du modèle de domaine (le sujet de "Driving Design: Problem Domain", janv. 2001).
  3. objets de contrôle (que l'on appelle habituellement les contrôleurs parce qu'ils ne sont souvent pas des objets réels), qui servent la « colle » entre les objets et les limites entité objects.Figure 1 montre les icônes visuelles pour ces trois types d'objets.

Les objets d'entité sont ceux qui (usuallly) se retrouvent dans la base de données/

Sur correspondance entre classes et la base de données, je recommanderais S.Lott's article on "The ORM Problem" (il est aussi un participant sur StackOverflow

+0

Merci pour votre réponse, mais je reçois cette erreur lorsque j'ouvre la page: "Le compte que vous avez demandé n'existe pas ou est actuellement inactif" –

+0

Moi aussi , maintenant, cela a fonctionné quand j'ai posté la réponse :(On dirait qu'il y a une session I D là - allez sur http://homepage.mac.com/s_lott/iblog/architecture/, sélectionnez la catégorie "Bases de données et Python" dans la liste du côté droit, puis c'est (actuellement) l'article le plus haut dans cette catégorie. –

1

Si vous utilisez Test Driven Development, écrire vos tests unitaires en premier. Vos cours seront décrits au fur et à mesure.

Vous pouvez choisir de développer votre logique métier sans base de données (objets faux ou stub) ou développer votre base de données au fur et à mesure de vos tests. Rappelez-vous que votre base de données et votre modèle de domaine ne doivent pas correspondre l'un à l'autre.

Questions connexes