UML distilled : a brief guide to the standard object modeling language
Patterns of enterprise application architecture