Information Technology Reference
In-Depth Information
Finally software construction is also a modeling activity, which constructs
operational models in terms of the canonical execution models of the programming
language used.
Fig. 1 shows three dimensions of system modeling in software development which
will be explained in detail later on.
2 Nature of Software Development
Still we have the ongoing discussion in our scientific community what the essence of
software development actually is. Is it an engineering task? Is it an art, a handicraft, or
actually science? Of course, there are many views onto program development, more
scientific ones or more pragmatic ones. We study and discuss two extreme views in
the following:
•
Scientific view
: Software development always means the construction of a
formal/mathematical/logical model - therefore it is a formal activity. Software
is a mathematical object, formally specifiable and verifiable. Software always
implements explicitly or implicitly a (mathematical) model.
Pragmatic view
: Software development is an art and a craft; it proceeds by
esoteric lore, by stepwise improvement, by trial and error. Software needs to
be changed and redesigned as well as tested over and over again. It is
unreliable and hard to predict. Software is a description of a technical process
performed on a computing machine. Thus, software is a technical artifact,
complex, unreliable and unpredictable.
Of course, both views are to the extreme and therefore hardly fully appropriate and
correct. Nevertheless, both views provide relevant aspects and valuable insights into
the nature of software development. We aim at integrating both views obtaining a
realistic and respectable discipline of software engineering. Only if we manage to
have a compromise between both these views in a smart way, software development
can be improved into a scientifically well-founded, practically relevant engineering
discipline.
•
2.1 Models, Their Structures and Views
In this section we define the concept of a model, the structure of models and define
what a model view is. In software engineering the word ”model” is used in many
different ways and contexts with many quite different meanings. Examples are terms
like ”meta model”, ”process model”, or ”system model”. In the following we are
interested in two variations and meanings of the usage of the word model.
A
model
is and provides first of all an abstraction. Selecting a model for an entity
means to focus on specific aspects of that entity. Models are typical chosen in
engineering to serve a specific purpose. A model introduces via its abstraction a
particular view or perspective onto an entity.
A
thought model
(“Gedankenmodell”) is a presentation of particular aspects of an
entity, such as a (software) system and its application context. It represents a way to
Search WWH ::
Custom Search