Current object-oriented CASE tools are useful for recording and gaining insight into OO models. They offer extensive support for especially the analysis and design of object-oriented software. The possibility to generate skeleton code motivates development teams to construct a good design before coding. Developers subsequently add the remaining code; CASE tools then offer support for keeping model and code consistent. Extensive possibilities for maintaining models and producing documentation are also provided. Contemporary CASE tools thus provide for more efficient communication within development teams and therefore facilitate overall maintenance. Support for UML is widely spread. This standard offers a notation, not a process: no clues are provided on how to think and work in an object-oriented fashion. CASE tools do not fill this gap; the tools do not help developers decide when to take which steps to create a design. As for creating a good design, tools lack active support for rec...