2017-01-03 1 views
1

Je fais une analyse des exigences pour un système et j'essaie actuellement d'écrire les cas d'utilisation métier (BUC) et de faire un diagramme de cas d'utilisation métier. J'utilise actuellement les lignes directrices suivantes:INCLUDE déclaration dans le flux alternatif d'un cas d'utilisation commerciale

  • Quand j'ai en option des mesures supplémentaires pour un BUC J'utilise une déclaration-PROLONGER pour pointer vers le BUC où ces étapes facultatives peuvent être trouvées. Le BUC qui s'étend et celui qui est étendu peuvent exister par eux-mêmes.

  • Lorsque j'ai des fonctionnalités en double dans plusieurs BUC, j'essaie d'extraire le ceci et de le mettre dans un BUC séparé. Puis j'utilise une instruction INCLUDE dans le BUC où j'ai extrait la fonctionnalité, pour pointer vers le BUC où cette fonctionnalité peut être trouvée. Le BUC dans lequel vous pointez sur le BUC externe avec l'instruction INCLUDE ne peut pas fonctionner seul.

Tout cela a bien fonctionné pour jusqu'à ce que je suis arrivé à la situation suivante:

  • Dans le flux alternatif d'un BUC (appelons celui-A) il y a dupliquent les fonctionnalités que je l'ai déjà indiqué dans un autre BUC (appelons ceci un B).
  • Donc, naturellement, je veux utiliser l'instruction INCLUDE pour pointer vers B.
  • Si je fais cela, je dois aussi le montrer dans mon diagramme de cas d'utilisation.
  • Si je dessine une flèche INCLUDE dans le diagramme (de A à B), il semble que A ne puisse pas exister sans B.
  • Cependant, ce n'est pas le cas, car A n'a besoin que de B lorsqu'il se trouve dans le flux alternatif.

Je considère les options suivantes:

  1. Je garde toutes les fonctionnalités dans le flux alternatif, mais cela rend le flux alternatif trop long et crée des fonctionnalités en double.
  2. J'utilise étendre la place, mais cela impose que B est facultative alors que si vous êtes dans le flux alternatif de A, vous devez passer par B.

Toute pensée?

Répondre

2

include est utilisée lorsque (et seulement lorsque) l'UC incluse est exécutée toujours lorsque l'UC principale est exécutée.

extend est utilisée lorsqu'il est possible de terminer l'UC principale sans exécuter l'UC d'extension, mais dans certains flux alternatifs, l'UC qui s'étend est également exécuté. Dans votre cas, vous devez utiliser extend.

Il est possible d'afficher les points d'extension. Vous pouvez l'utiliser pour expliquer la logique (clarifiez que l'UC qui s'étend est toujours exécuté lors de l'entrée du flux alternatif). Si la logique est plus complexe, vous pouvez aussi le mettre dans un commentaire.

Je ne parle pas ici si votre décomposition est une bonne approche du tout (mais attendez-vous à une telle discussion des autres).

+0

"mais attendez-vous à une telle discussion des autres" :-D :-D – observer

0

De votre description, vous ne faites pas une synthèse de cas d'utilisation, mais une décomposition fonctionnelle. C'est complètement faux.La synthèse de cas ponctuelle est de mettre l'accent sur la valeur ajoutée qu'un cas d'utilisation donne à son acteur et de ne décomposer aucune fonctionnalité.

Je vous recommande fortement de lire Bittner/Spence et de comprendre les bases avant de continuer dans la direction que vous suivez - respectivement pour revenir en arrière et viser la bonne cible.