You have three use cases:
It doesn't seem like it, but the last needs coding. Generating the email is a precondition, and without this use case, there's no need to generate the email.
I have the following question , I am writing a use cases document were each use case consists of the following sections (pre-condition, detailed description, alternative flow, exception flow , post-condition)
I need to write use case/s for the approval process, where in my system a request will be send to the manager to either approve or reject a registration request , so I wrote the one use case were in the detailed description section I wrote the flow for approving the registration request and in the exception section I wrote the reject the registration request and in the alternative flow I wrote approving the registration request through the email,, so is this right or I should have wrote two use cases one for approving the request and another use case for rejecting the use case.
thanks
Hi John,
Here's my suggestion.
Taking it back to basics you need to decide what the goal is of the actor in this situaiton. So,the manager is receiving registration requests and ultimately wants to approve them. So it seems to me your use case is clear; he is managing registration requests. You could call your use case "Manage registration requests." Now, your main flow covers the happy day scenario which is for approving those requests. I would cover rejecting in an alternative flow. It isn't really an exception, because an exception is unexpected behaviour, whereas rejecting a request is something that you would expect to do. Approving via email as an alternative flow seems fine, it depends on if the system behaviour is significantly different or it is optional. It may well be that you dont need an alternative flow for this.
I highly recommend two books on the subject of uses cases:
Use Case modelling - by kurt bittner and ian spence
Writing effective use cases - by Alistair Cockburn
brought to you by enabling practitioners & organizations to achieve their goals using: