Meta

Classification is the core activity of object-oriented analysis. Classification is the means via which people order knowledge according to the similarities they recognize between different objects they observe in the world. The specific classification approach that is applied when doing object-oriented analysis is called classical categorization. Classification, in specific classical categorization, does not pertain to object-orientation alone, but rather, it reflects how people think in general about the world [1] [2] [3]. Olive explains the need and use of classification as follows [2]:

Classification provides cognitive economy because it allows us to structure knowledge about objects into two levels: concept and instance. At the concept level, we find the properties (both defining and nondefining) common to all instances of the concept. At the instance level, we find only the concept of which the object is an instance, and the particular properties of that instance. In the absence of classification, we would have to associate every instance with all of its properties. Classification reduces the amount of information we have to remember, communicate, and process; the extent to which it is reduced depends on the number of properties of the concept.

It is precisely this cognitive economy, provided by a complete and consistent object-oriented conceptual schema, that is the essence of enabling efficient communication between stakeholders of software development projects. When software development projects decide to forgo the creation of conceptual schemas, it is at the cost of efficient communication.

Notice that classification is inherently set theoretic. Sets have a characteristic function that essentially determines from a possible universe of elements, which elements belong to the set. With classification commonalities between instances are recognized which cause us to classify these instances as belonging to the same concept. In this way concepts and sets are equivalent.