
96 3 Conventional Product and Process Modelling
definitions. Furthermore, complexity is discussed in different context by different
authors:
e.g., in Fagade et al. (1998) we find “total product (or project)
complexity”, “management complexity”, “design and manufacturing complexities”
and “process complexity”; or in Edmonds (1999b), offering a study of the
complexity definition by various authors, it speaks of “true complexity”, “real
complexity”, “system complexity”, “observer complexity”, “computational
complexity”, “Kolmogorov complexity”, “descriptive complexity”, “complexity
per se”; Grünwald and Vitányi (2003) use, in addition, “descriptional
complexity”
26
, “object's complexity”, “algorithmic complexity” and “stochastic
complexity”; finally, we could supplement all these with essential and accidental
complexity after Brooks Jr. (1987) (
cf. previous paragraph and Section 3.1.1.2
above). To summarize, there is no unified view on complexity: scientists could be
distributed into at least three groups according to their understanding of
complexity.
The views of one group (mainly IT-experts) would be, probably, best illustrated
with the definition, given in Black (2005): “
The intrinsic minimum amount of
resources, for instance, memory, time, messages, etc., needed to solve a problem or
execute an algorithm.
” This definition is not tangible enough to use as a base for
(more) quantitative assessments. And since it measures the complexity of a
problem only indirectly, one could get the impression that the complexity depends
on the tool used for its solution, which is unacceptable. Another definition of
complexity in the same sense, but explicitly bound to the (context of) algorithms is
given in Howe (2006): “
The level in difficulty in solving mathematically posed
problems as measured by the time, number of steps or arithmetic operations, or
memory space required (called time complexity, computational complexity, and
space complexity, respectively).
” As we can see, both definitions mainly refer to
computational complexity, which constitutes only one part of the complexity of a
software model.
Another widespread interpretation is that complexity can be viewed as a
measure of the difficulty to understand a given matter or to deal with it. The lack
of understanding alone is not always a problem, but it becomes important as soon
as a decision based on the respective matter has to be taken. Since understanding
can hardly be quantified and, in addition, depends on other factors (
cf. Figure
3.14), such a definition is of little use.
A better alternative is proposed by another group, represented,
e.g. by Suh (cf.
Suh (2001), chapter 9). According to this definition, complexity and information
are tightly related and:
Definition 3.1: Complexity is a measure of uncertainty in achieving
the desired functional requirements.
This definition allows us to measure complexity directly in bits, which is very
convenient and puts the stress once again on the relation to information. Thus, it is
applicable not only to software systems, but to any other system with a countable
number of components. However, it is measured or defined as “
only relative to
what we are trying to achieve and/or want to know
” (cf. Suh (2001, p. 472),
meaning that until the functional requirements are known the complexity either
26
Cited as used in the source; not to be confused with “descriptive complexity”!