Use Case Driven Object Modeling with UML Theory and Practice Doug Rosenberg and Matt Stephens