Companies are increasingly requiring that new information systems development projects employ object oriented (OO) analysis, design and programming approaches. The hottest new Web tools and languages have object capabilities built into them. Much of the movement toward the OO paradigm for systems development is based on claims of pioneers and vendors that adoption will lead to better and faster designs, more maintainable systems, and most audibly, reusable software. A typical set of attributions appears in CACM: “OO technology promotes a better understanding of requirements and results in more modifiable and maintainable applications, providing other benefits such as reusability, extensibility, robustness, reliability, and scalability. OO technology promotes better teamwork, good communication among team members, and a way to engineer reliable software systems and applications” (Fayad and Tsai, 1995).