Tutorial on software design tecniques - Freeman, Peter; Wasserman, Anthony I.