Object-oriented system development is wideley recognized as improving productivity and reducing system maintenance costs. However, existing approaches have not su ciently addressed the following three questions which are equally important to users and researchers. Firstly, what are the bene ts of object-oriented system development compared to traditional approaches? Secondly, what are the essential features of an objectorientedlifecyclemodelto ful llthe bene ts of object-orienteddevelopment? And thirdly, what are the pitfalls of object-oriented development and how to cope with them? The paper investigates answers to all three questions in concert.