Text this: Design of multithreaded software : the entity-life modeling approach /