3 Classification of
Software System TYPes
In this chapter a classification scheme for programs is presented and the
different types of software are described. These need different versions of
the software environments described in chapter 2.
In this chapter the different aspects of software engineering environments are dis-
cussed. Just as there is no one programming language which is suitable for all types
of applications, so there is no software engineering environment which is correct for
all types of projects. Where it is necessary to implement programs embedded in a
more complex environment, methods must be used to specify the interaction of the
program with its environment.
If there are time requirements, then specification, design and implementation
methods must be used that allow the description of these requirements. There are
special requirements in a software engineering environment for the development of
fault tolerant programs. Designing a concurrent or distributed program is different
from designing a sequential program. Even the hardware architecture influences the
choice of the right software engineering environment. In order to use the special
features of a particular hardware architecture, special techniques are required.
In summary the type of software system depends on the following major charac-
teristics:
• The relationship to the environment, e.g. interactive, non-interactive
• The general system behaviour, e.g. time constraints, fault tolerance
• The expected program type, e.g. sequential or concurrent
• The system architecture on which the software will run, e.g. distributed or not
distributed
These characteristics are covered by different aspects of a software engineering en-
vironment. The relationship of a software system to the environment requires cer-
tain software life cycles and methods. In order to describe time constraints for exam-
ple a specification method must have corresponding language features. The system
architecure can be hidden by tools. A compiler can translate a program into code
which is executed concurrently.
In the following sections, the characteristics of software systems and their rela-
tionship to different aspects of software engineering environments are described.
A. Fleischmann, Distributed Systems
© Springer-Verlag Berlin Heidelberg 1994