5.2
Combining prototype-based and class-based modeling
Prototype-based modeling is probably useful in the early analysis and design phases of a
project. Here you identify single phenomena without grouping them into concepts. You
understand a new phenomenon in terms of its similarities with other phenomena. In this
stage you have little structure on your knowledge of the application domain of which your
are trying to obtain knowledge. The situation is the same in a design situation. When you
create a new artifact, you may base it on another artifact with similar properties, but modify
it to suit your new requirements.
However, during the knowledge acquisition process you obtain more and more
knowledge of your domain and you obtain certain means for organising your knowledge.
These means are often classification and composition as mentioned above. You group your
phenomena into concepts. You understand your phenomena in terms of compositions of
other phenomena. You classify your concepts into classification hierarchies (generali-
sation/specialisation hierarchies).
During this process you constantly reorganise your concepts and phenomena. You may
consider a concept as an idealised thing, but eventually you think of the idealised thing, not
a specific object. In your programming language, a class represents a concept. Whether or
not you prefer to view a concept as an idealised thing or immutable object does not really
matter.
It is of course debatable how people form concepts. We claim that the above description
characterise how people forms everyday concepts. Within science, there are many examples
where knowledge is organised in this way. Scientists organise their knowledge about a
certain application domain by means of classification and composition. In a recent paper
[DMC92] prototype-based languages are classified according to traditional Aristotelian
principles - i.e. the principles underlying class-based modeling are used to characterise
prototype-based languages. If the prototype-based modeling principles should be followed,
the languages should instead have been characterised in terms of clones of each other.
We thus claim that prototype-based modeling is useful in the early stages of analysis and
design, where you identify new phenomena and their properties without having a clear
understanding of their relations to each other and to already well known phenomena and
concepts. When more and more knowledge is obtained about the concepts, class-based
modeling starts to apply in the sense that phenomena are classified according to common
properties. I.e. concepts and classes are formed and organised into
generalisation/specialisation hierarchies
This view of how prototype-based modeling and class-based modeling can be combined
is in accordance with the way Karl Marx has described the process of producing and using
knowledge [Mat81] , i.e. issues related to the theory of knowledge (also called
epistemology). The knowledge acquisition process may be split into three levels:
Do'stlaringiz bilan baham: |