luisandresilva / reprotool

Automatically exported from code.google.com/p/reprotool
0 stars 0 forks source link

"Guard" class cannot be annotated #38

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Create a UseCase
2. Create a UseCaseStep
3. Create a Guard
4. Try to add annotation to the Guard

In the current model, it is not possible to assign annotations to Guards. On 
the other hand, UseCaseSteps can be annotated.

Here is a use-case example that requires this feature. See the Extension where 
the guard "1a" should be annotated with #on:abort1 annotation:

Use-Case: Buyer Places Bid On Item
Main success scenario:
1. Include use-case “Buyer Reviews Item Information”.
2. The buyer notifies the GPM that he/she wants to place a bid.
3. The GPM shall respond by requesting the details about bids from the buyer.
4. The buyer sends a submit bid request to the GPM. #use:item
5. The GPM shall respond by sending a notification to the buyer.
6. The buyer sends a notification acknowledgement to the GPM.

Extension:
1a. The use-case “Buyer Reviews Item Information” was aborted. #on:abort1
1a1. The GPM displays a message “Bid cannot be placed”
1a2. Use-case aborted. #trace:abort2

Original issue reported on code.google.com by viliam.s...@gmail.com on 9 Sep 2011 at 9:03

GoogleCodeExporter commented 8 years ago
Added containing reference to the "Guard" class.

Another solutions to this problem:
- Add common super interface for classes "Guard" and "UseCaseStep" which would
  have containing reference to the "StepAnnotation" class.

- Invert reference to the annotations. Now UseCaseStep and newly Guard
  classes have reference to the StepAnnotation. But one solution would be
  to reference Guard or UseCaseStep from Annotation. See class diagram below.
  Annotations would be then stored in SoftwareProject class. 
  See class diagram in attachment.

Original comment by jiri.vin...@gmail.com on 10 Sep 2011 at 7:44

Attachments: