Object Oriented Methodologies followed on from the "first generation" of structured methodologies and were largely developed in the late 1990s following the boom in Object Oriented Languages such as C++ and Java. The underlying idea is to create the logical design from a physical design based on observing the properties of the "real world". We will call this approach to software design the object oriented approach as many of the methods in this strand take their ideas directly from object oriented languages.
Object Oriented methods of software design make an assumption of closure in the software description, but do not assume the software description is complete. From a philosophical viewpoint, these methods adopt a realist ontology and empiricist epistemology. Object Oriented methods recognize that a program description can more easily be created from a closed software description than from an open one. Software designers can easily create closed software descriptions by using (closed) reality as a baseline. However, the interpretation of reality is non-trivial, so software design methods in the object-oriented strand still need to deal with incomplete descriptions. Consequently, the man problem is with the verification of the software: are we building the product right?
Rather than working from the description to reality, work from reality to the description. By using (closed) reality as a baseline, software designers can more easily form closed logical descriptions, which can in turn be transformed into code for a program. Basing software descriptions on reality should produce a better requirements specification; have fewer problems with validation and lead to the design of more "natural" software.
The interpretation of reality is not foolproof and the designers of object-oriented software still have to deal with the problems caused by incomplete descriptions; once a description has been formed from reality, the correspondence between the software description and reality need to remain synchronized. Consequently, object oriented methods tend to have problems with verification (are we building the product right?) and with completeness. This problem is compounded by the restricted grammar and vocabulary of the languages used in object oriented methods which tend to exacerbate the problems caused by having an incomplete description of reality to start with.
The notes for this session are available as a presentation (in pdf format) - lecture notes for session 6