As mentioned programming consists of constructing a model of the problem domain within a computer. Part of the programming process thus consists of identifying relevant phenomena and concepts from the the problem domain and representing these in terms of objects and classes. Until now we have been rather vague about the terms phenomena and concepts. In this Chapter we attempt to give precise definitions of these terms.
The real world, and any problem domain contains a huge number of different phenomena such as physical objects, situations, properties of physical objects, events and processes. We define a phenomenon as follows:
A phenomenon is a thing that has definite, individual existence in reality or in the mind; anything real in itself.
Examples of phenomena are : +++ list of examples.
An application domain may contain different kinds of phenomena:
- A phenomenon may be a physical entity that has identity and takes up space. It may have properties/state that changes over time and it is unique and distinguishable from other phenomena. In the vehicle example, the actual vehicles being registered are examples of physical entities. +++ other examples.
- A phenomenon may be a property characterizing a physical entity. In the vehicle examples we have used license number, kerb weight, and payload. Vehicles may also have properties such as its owner, speed and color. +++ other examples.
- A phenomenon may be a transformation in the form of events, sequences of events, and actions going on in sequence, alternation or in parallel. Such phenomena may change the state of physical entities and thereby its associated properties. The registration of a vehicle and the change of owner are examples of events/actions. ++++ other
All phenomena are dfferent; there are no two identical persons, two identical cars, or two identical flowers. It is, however, impossible to deal with all single phenomena directly without tools for grouping similar phenomena. Abstraction arises from a recognition of similarities between phenomena and concepts and the decision to concentrate on these similarities and ignore the differences for the time being. The similarities are considered as fundamental and the differences as trivial. An abstraction covers a group of phenomena characterized by certain properties. A word or picture is usually introduced to symbolize the abstraction. An abstraction is also referred to as a concept. We define a concept as follows:
A concept is a generalized idea of a collection of phenomena, based on knowledge of common properties of instances in the collection.
Note! More to follow on extention, intension and name of a concept