Source: https://faculty.cs.nku.edu/~waldenj/classes/2012/fall/csc666/labs/lab8-misusecases.pdf