2009-11-11 2 views

Répondre

3

Rassembler les exigences. Pour l'architecture, les besoins non fonctionnels sont souvent plus importants que les besoins fonctionnels.

1

Je dirais "avec tout ce que vous êtes à l'aise".

Si vous utilisez un modèle relationnel, vous devrez de toute façon combler l'écart avec le monde OO (en utilisant ORM par exemple).

Je commence généralement à travailler avec la base de données, mais le diagramme de classe global du système pourrait grandement améliorer la phase de conception de la base de données.

La méthodologie est une chose très importante à considérer également. Une approche agile et TDD gérerait mieux les changements intenses dans le schéma, de sorte que vous pouvez revenir en arrière et ajouter/supprimer des tables, des champs (ou des classes) avec facilité, et utiliser les deux stratégies quand vous en avez envie.

1

Pour les deux options que vous avez ... Je vais d'abord avec la structure de classe, puis la base de données ...

Habituellement la structure de classe représentera objet métier qui devrait être hébergé par la base de données, néanmoins c'est un général cas, il y a beaucoup d'exceptions à cela.

  • Habituellement pour la plupart « entreprises centrées » applications pensent objets du monde réel des affaires, puis son abstraction que les classes la conceptualisation de sa comme base de données collection de tables et les relations. Si la conception de classe est relativement correcte, les classes et les tables de base de données ne devraient pas différer autant.
  • Si vous avez un "problème centré sur l'information" comme dans le système expert ou l'exploration de données, alors allez d'abord à la base de données.
0

base de données ou les classes (persistants) sont juste une petite partie du logiciel ...

Habituellement, les gens choisissent la technologie qu'ils connaissent mieux (SQL ou code), et définissent l'autre selon cette .

L'utilisation d'un ORM doit être prise en compte.

0

Faites les deux à la fois, étape par étape. N'essayez pas d'obtenir «100% complet» avant de regarder l'autre.

La raison en est qu'il n'y a pas de correspondance 1: 1 entre les objets et les bases de données. Par exemple, il est très simple de créer des arborescences d'objets. La plupart des frameworks ORM ont de sérieux problèmes quand il s'agit de mapper cela à une base de données. En outre, il est souvent impossible d'adapter le traitement des transactions à une application existante sans réécrire tout le code. Commencer avec un bon modèle de base de données peut vous laisser dans une situation où il n'est pas clair comment vous pourriez représenter cela avec un modèle d'objet. Les problèmes de DB vont se répandre dans votre modèle d'objet.

C'est pourquoi vous devez faire évoluer les deux parties de votre application en même temps, en apprenant à mesure que vous ajoutez des fonctionnalités, en protégeant vos hypothèses avec des tests automatisés.

Questions connexes