Analysis patterns: reusable object models - Fowler, Martin (<The >Addison Wesley Series in Object Oriented Software Engineering, 1997)