2016-11-10 1 views
4

Je travaille sur une boutique en ligne. C'est un simple magasin en ligne et je dois créer des diagrammes UML de domaine pour la classe et montrer les multiplicités. Je suis un peu confus au sujet de la multiplicité que j'ai trouvée. Je ne sais pas comment distinguer la composition, l'agrégation et l'association. Voici le diagramme que j'ai trouvé. Quelqu'un peut-il me dire si je suis sur la bonne voie?Diagramme UML: Diagramme de classe de la boutique en ligne et relation

http://i.imgur.com/8FwhsaI.jpg

Répondre

4

Pas trop mal. Vous ne devriez pas trop vous soucier de l'agrégation à moins de devoir gérer la gestion de la mémoire ou les contraintes de clé étrangère dans la conception de la base de données. Laisse les loin.

Les noms de rôle pour les associations constituent un changement important à apporter. Par exemple. au lieu de shippingAddress:Address déclaré comme attribut utiliser un rôle shippingAddress apparaissant près de l'association sur Address qui vient de User (etc. pour les autres). Comme Address est une sorte de lieu commun et utilisé partout, vous pouvez laisser la classe hors de ce diagramme et faire un diagramme séparé où Address est au milieu et tous les autres qui l'entourent.

0

Je suis d'accord avec Thomas, mais je vais montrer d'autres points, donc pouvez-vous ajuster votre diagramme. S'il vous plaît ne pas voir comme quelque chose de destructeur. Je crois simplement que ces conseils peuvent vous aider.

  • multiplicités show de chaque connexion
  • ne pas utiliser getter et setter *
  • ne pas utiliser les attributs ID *
  • Ordre rend la composition avec l'utilisateur (n'a pas de sens ont un ordre avec un utilisateur lié avec elle et OrderLine fait la composition avec l'ordre;
  • Produit font l'agrégation avec OrderLine et revue font la composition avec le produit;
  • Le fabricant fait l'agrégation avec le produit. (dépend de votre système, ce peut être une composition, mais plus susceptible d'être une agrégation).

Rappelez-vous (la partie) fait quelque chose avec (l'ensemble)

  • il n'a pas besoin de créer un attribut dans une classe si vous avez un lien avec cette classe, sauf si vous avez une liste de cela, (par exemple: attribut CreditPayment in Payment et CreditPayment de classe);
  • Vous pourriez faire une liste de produits dans l'ordre. Après cela, vous pouvez supprimer la classe Orderline.

* si vous ne générez pas de code à partir du modèle.