A number of important software development topics in which the object-oriented approach plays a central role and has caused a significant step forward are examined. An attempt is made to describe these topics in the form of dualities and contrasts. The aim is to present a view of software development which is different from the traditional one, in which the development process has been partitioned into analysis, design, and implementation steps of the life cycle. The authors' viewpoint is based on a vertical partitioning rather than a horizontal one. The list of dualities and contrasts treated in this article contains: waterfall model ⇔ fountain model, formalism ⇔ method, functional ⇔ object-oriented, solution domain ⇔ problem domain, specification ⇔ implementation, formal ⇔ nonformal, declarative ⇔ procedural, completeness ⇔ approximation, extension ⇔ restriction, generalization ⇔ specialization, refinement ⇔ coarsening, and composition ⇔ decomposition
Date of Conference: 13-16 May 1991