Probably the first (and the simplest thing) you might have learned as a software engineer is Use Cases.
A typical use case diagram for a Contact Manager application would look like this:
This is pretty handy, except that it limits the software engineer from visualizing possibilities how the program can fail. A robust software requires detailed understanding of how the program can be misused – or rather – abused – intentionally or otherwise.
The following figure shows how an abuse case is derived from the same use case displayed above.
Time to sleep now 🙂 In next post I will cover how to make an abuse case.