Modelling is a concept fundamental for software engineering. In this paper, the word is defined and discussed from various perspectives. The most important types of models are presented, and examples are given.Models are very useful, but sometimes also dangerous, in particular to those who use them unconsciously. Such problems are shown. Finally, the role of models in software engineering research is discussed.
Disclaimer and goalsWe use models when we think about problems, and when we talk to each other, and when we construct mechanisms, and when we try to understand phenomena, and when we teach. In short, we use models all the time.That means: models have never been invented, they have been around (at least) since humans started to exist. Therefore, nobody can just define what a model is, and expect that other people will accept this definition; endless discussions have proven that there is no consistent common understanding of models.In this paper, this difficulty is (almost) ignored, and the term "model" is defined as if there were no conflicting opinions. This approach is taken because it is the only way (at least the only way known to the humble author) for investigating the power and the limitation of models. Readers are not required to accept my definitions permanently; but they might be prepared to accept them at least while they read this contribution, because my judgements and conclusions are based on my definitions.This paper is intended to help the reader • recognize models where they appear,• know the properties and the power of models,• clearly distinguish models from the original objects,• create new models where appropriate.
The air we breatheOur ability for modelling is not acquired but given to us from birth. Without it, we would not be able to reduce the vast flow of information to a rate we can cope with. By mapping visible and invisible phenomena to notions (in German: Begriffe), the number of different observations is significantly reduced, and we deal with some classes of problems rather than with millions of individual problems. Hence, we can collect experiences, find generic solutions and decisions, and develop strategies for surviving in the real world. The ability for reflection, which is considered the difference between man and animal, is directly related to the use of models. The particular strength of models is based on the idea of abstraction: a model is usually not related to one particular object or phenomenon only, but to many, possibly to an unlimited number of them, it is related to a class. They who note that the change from high tide to low tide and from low tide to high tide follows a certain rhythm can prepare for, or make use of it. Those who learn that a certain class of animals rather than one single living creature is fast, strong, and dangerous, have improved their chances for survival.While we live, i.e. act and react, we use models all the time, usually unconsciously. The situation is quite different in research and engineering: there, the creation of models is an ...