Many object-oriented methods have assumed classbased approaches, without considering prototype-based ones. Some authors, while admitting prototypes as a useful concept, only envision their application in early phases of systems development. Others consider only the use of the prototype concept in programming environments and not with respect to the whole systems development process. We propose that these omissions are neither necessary nor useful and often can be harmful, in that methods grounded in purely class-based assumptions do not reflect the nature of problems inherent in modeling. In this paper, we argue, using the principle of limited reduction, that both class-based and prototype-based approaches should be used in object-oriented methods, respectively for controlling complexity, and capturing enough detail for evolution.
Birgitte Krogh, Sean Levy, Allen H. Dutoit, Eswara