The Art of Software Modeling by Benjamin Lieberman