La <<extend>> dépendance n'est utilisé que pour les cas d'Utilisation. Cela signifie qu'un cas d'utilisation s'étend de l'autre dans certaines circonstances. Dans ce qui suit:
Le client consulte les détails du compte. Dans certaines circonstances, le client peut également "Afficher les Commandes Ouvertes" dans le cadre de "voir les Détails du Compte". Il est également possible que le client "Afficher l'Historique" dans le cadre de "voir les Détails du Compte".
Cela n'a rien à voir avec la généralisation /spécialisation.
<<extend>> est source de confusion dans les diagrammes de cas d'utilisation. La plus petite partie de cette confusion est que les diagrammes de cas d'utilisation ne sont pas des cas d'utilisation!
Un cas d'utilisation est un document, pas un diagramme. Par exemple, le diagramme ci-dessus pourrait avoir été tirées à partir de la suite de cas d'utilisation de texte:
Client vues de détails de compte.
Extensions:
1a. Si le client clique sur "Ouvrir Commandes" lien
Client de vues commandes ouvertes
1b. Si le client clique sur "Afficher l'historique" lien
Client points de vue de l'histoire
Plus détaillée du modèle, ces "points d'extension" serait inscrit à l' "voir les détails du Compte" cas d'utilisation de l'élément sur le diagramme. Mais cela encombre le diagramme terriblement, à mon avis.
J'ai d'abord vraiment appris UML par la lecture de "UML Distillée" par Martin Fowler. Je viens de vérifier que le livre avant de poster cette réponse, et a constaté que Fowler suggère ignorant <<extend>>.
Mais en UML "étendre" est similaire à "specializaton",à droite? Oui, mais ces termes aussi différents. Vous utilisez prolonger par rapport à des cas d'utilisation, et de la spécialisation à l'égard des catégories. oh,merci encore. Enfin, je veux savoir, c'est "étendre" semblables "specializaton",sans le contexte de l'UML? re-lire l'intégralité du post de John Saunders. Non, en UML, le terme "extension" n'est pas utilisé, sauf comme un stéréotype pour les cas d'utilisation. En particulier, dans UML, "étendre" n'a rien à voir avec les classes. N'est-ce pas le cas d'utilisation d'une partie d'UML?pourquoi dites-vous "étendre" n'est pas utilisé dans UML, sauf pour les cas d'utilisation?
De l'écrire en termes de cas d'utilisation (je crois que c'est le contexte que vous avez voulu dire - si non, corrigez-moi), peur, pensez à commander un repas dans vos favoris fast-food.
Base de cas d'utilisation est de l'ordre d'un repas, mais il peut être prolongé si vous présentez un coupon de réduction. Chaque fois que vous allez à travers cette utilisation cale, vous obtenez un repas, mais seulement dans des circonstances spéciales, vous payez moins que d'habitude (ou obtenir un supplément de sandwich).
Je l'ai trouvé très bon exemple ici: http://www.agilemodeling.com/essays/useCaseReuse.htm. Comme vous pouvez le voir d'inscription pour les étudiants internationaux supplémentaires de vérification de sécurité, et s'applique uniquement à un sous-ensemble des inscriptions. Espère que cela va aider plus.
oh,semble-t-il un malentendu "étendre". Pour un autre exemple,si la théorie de B est fondée sur Une théorie, mais couvre une superficie de plus,nous disons que la théorie de B (verbe) la théorie de A. quel est ce verbe ici,semble pas "étendre",à droite?désolé, l'anglais n'est pas ma langue maternelle.. UML de la définition de "prolonger" voudrait dire, que si la théorie B prolongée théorie, il serait de décrire certains cas limites, avec les conditions supplémentaires et les conclusions, plutôt que d'être plus général. Cependant, je peux voir votre point de vue que c'est un peu déroutant. tu veux dire que le verbe doit être "généraliser".Je veux savoir est-ce un peu déroutant pour les anglophones?Ou pour être plus précis,"généraliser" et "étendre"?Ou ces deux mots vont dans des directions totalement opposées?Si Un extends B,alors A est sous-ensemble de B. Mais si Un généraliser B,alors B est sous-ensemble de A,droit? Votre exemple est ok, si un peu faible. Je vous suggère de le "client présente coupon" comme un exemple d'une extension. Il est distinct du comportement, associés avec le cas d'utilisation principal, à un certain moment de son débit, mais seulement dans certaines circonstances. "Faire le repas grand" est vraiment juste plus de "repas". Non, en anglais, "étendre", "aller plus loin". Il n'a pas à voir avec la spécificité. On pourrait dire, "les Temps sont durs. Nous devons faire de notre rémunération s'étendre".
UML ne pas utiliser le terme "d'extension/extension". Au lieu de cela, il utilise le terme de "généraliser/généralisation"; les gens aussi souvent référence à lui comme "d'hériter/l'héritage".
Si B est une généralisation d'un (c'est à dire Un hérite de B), alors A est un sous-ensemble de B. Cela devrait être clair à partir de "est-un" de la relation: si tout A est B, alors A est clairement un sous-ensemble de B. Dans votre terminologie, si l'Une s'étend de B, a est Un sous-ensemble de B.
Un type est un prédicat: pour chaque objet, vous pouvez déterminer si elle appartient au prédicat. L'extension du prédicat moyen de le rendre plus restrictives.
Terme prolonger est utilisé dans le contexte de diagrammes de cas d'utilisation. Comme vous l'avez dit:Extension du prédicat moyen de le rendre plus restrictives. Donc, "étendre" est similaire à "spécialiser",à droite? Je ne pense pas que ce qui est signifié par les OP. Pourquoi utiliser le mot "sous-ensemble", en se référant à des cas d'utilisation? Voir aussi stackoverflow.com/questions/1182967/... du même auteur. Les gens utilisent souvent le terme "étendre" quand ils veulent dire "se spécialiser", est - il correct, en particulier en Java, où "s'étend" est le nom du mot-clé. Oh,je vous remercie.Semble que je suis induire en erreur par la traduction.Je vais supprimer l'autre post.
La
<<extend>>
dépendance n'est utilisé que pour les cas d'Utilisation. Cela signifie qu'un cas d'utilisation s'étend de l'autre dans certaines circonstances. Dans ce qui suit:Le client consulte les détails du compte. Dans certaines circonstances, le client peut également "Afficher les Commandes Ouvertes" dans le cadre de "voir les Détails du Compte". Il est également possible que le client "Afficher l'Historique" dans le cadre de "voir les Détails du Compte".
Cela n'a rien à voir avec la généralisation /spécialisation.
<<extend>>
est source de confusion dans les diagrammes de cas d'utilisation. La plus petite partie de cette confusion est que les diagrammes de cas d'utilisation ne sont pas des cas d'utilisation!Un cas d'utilisation est un document, pas un diagramme. Par exemple, le diagramme ci-dessus pourrait avoir été tirées à partir de la suite de cas d'utilisation de texte:
Extensions:
1a. Si le client clique sur "Ouvrir Commandes" lien
Client de vues commandes ouvertes
1b. Si le client clique sur "Afficher l'historique" lien
Client points de vue de l'histoire
Plus détaillée du modèle, ces "points d'extension" serait inscrit à l' "voir les détails du Compte" cas d'utilisation de l'élément sur le diagramme. Mais cela encombre le diagramme terriblement, à mon avis.
J'ai d'abord vraiment appris UML par la lecture de "UML Distillée" par Martin Fowler. Je viens de vérifier que le livre avant de poster cette réponse, et a constaté que Fowler suggère ignorant
<<extend>>
.Oui, mais ces termes aussi différents. Vous utilisez prolonger par rapport à des cas d'utilisation, et de la spécialisation à l'égard des catégories.
oh,merci encore. Enfin, je veux savoir, c'est "étendre" semblables "specializaton",sans le contexte de l'UML?
re-lire l'intégralité du post de John Saunders. Non, en UML, le terme "extension" n'est pas utilisé, sauf comme un stéréotype pour les cas d'utilisation. En particulier, dans UML, "étendre" n'a rien à voir avec les classes.
N'est-ce pas le cas d'utilisation d'une partie d'UML?pourquoi dites-vous "étendre" n'est pas utilisé dans UML, sauf pour les cas d'utilisation?
OriginalL'auteur John Saunders
De l'écrire en termes de cas d'utilisation (je crois que c'est le contexte que vous avez voulu dire - si non, corrigez-moi), peur, pensez à commander un repas dans vos favoris fast-food.
Base de cas d'utilisation est de l'ordre d'un repas, mais il peut être prolongé si vous présentez un coupon de réduction. Chaque fois que vous allez à travers cette utilisation cale, vous obtenez un repas, mais seulement dans des circonstances spéciales, vous payez moins que d'habitude (ou obtenir un supplément de sandwich).
Je l'ai trouvé très bon exemple ici: http://www.agilemodeling.com/essays/useCaseReuse.htm. Comme vous pouvez le voir d'inscription pour les étudiants internationaux supplémentaires de vérification de sécurité, et s'applique uniquement à un sous-ensemble des inscriptions. Espère que cela va aider plus.
UML de la définition de "prolonger" voudrait dire, que si la théorie B prolongée théorie, il serait de décrire certains cas limites, avec les conditions supplémentaires et les conclusions, plutôt que d'être plus général. Cependant, je peux voir votre point de vue que c'est un peu déroutant.
tu veux dire que le verbe doit être "généraliser".Je veux savoir est-ce un peu déroutant pour les anglophones?Ou pour être plus précis,"généraliser" et "étendre"?Ou ces deux mots vont dans des directions totalement opposées?Si Un extends B,alors A est sous-ensemble de B. Mais si Un généraliser B,alors B est sous-ensemble de A,droit?
Votre exemple est ok, si un peu faible. Je vous suggère de le "client présente coupon" comme un exemple d'une extension. Il est distinct du comportement, associés avec le cas d'utilisation principal, à un certain moment de son débit, mais seulement dans certaines circonstances. "Faire le repas grand" est vraiment juste plus de "repas".
Non, en anglais, "étendre", "aller plus loin". Il n'a pas à voir avec la spécificité. On pourrait dire, "les Temps sont durs. Nous devons faire de notre rémunération s'étendre".
OriginalL'auteur maciejkow
UML ne pas utiliser le terme "d'extension/extension". Au lieu de cela, il utilise le terme de "généraliser/généralisation"; les gens aussi souvent référence à lui comme "d'hériter/l'héritage".
Si B est une généralisation d'un (c'est à dire Un hérite de B), alors A est un sous-ensemble de B. Cela devrait être clair à partir de "est-un" de la relation: si tout A est B, alors A est clairement un sous-ensemble de B. Dans votre terminologie, si l'Une s'étend de B, a est Un sous-ensemble de B.
Un type est un prédicat: pour chaque objet, vous pouvez déterminer si elle appartient au prédicat. L'extension du prédicat moyen de le rendre plus restrictives.
Comme vous l'avez dit:Extension du prédicat moyen de le rendre plus restrictives. Donc, "étendre" est similaire à "spécialiser",à droite?
Je ne pense pas que ce qui est signifié par les OP. Pourquoi utiliser le mot "sous-ensemble", en se référant à des cas d'utilisation? Voir aussi stackoverflow.com/questions/1182967/... du même auteur.
Les gens utilisent souvent le terme "étendre" quand ils veulent dire "se spécialiser", est - il correct, en particulier en Java, où "s'étend" est le nom du mot-clé.
Oh,je vous remercie.Semble que je suis induire en erreur par la traduction.Je vais supprimer l'autre post.
OriginalL'auteur Martin v. Löwis