Abstract
M.Sc.
The following questions led to this study:
Why are there still so many approaches to the software generation process without one
single approach taking the lead?
Not only are there several methodologies available for the software generation process,
but a methodology is not in use for long before it is replaced by an improved version or
even another methodology. This is as a result of continuing further development and
research. Sometimes the new methodology is not necessarily an improvement, but a
paradigm shift. An example of this is object-orientation which followed shortly after the
introduction of CASE as an alternative to software generation.
Why are users to a large extent still dissatisfied and disillusioned with the software
generation process even though they are more involved with it than before?
User are more involved in the software generation process as a result of the availability of
sophisticated tools, as well as joint sessions with the developer during the analysis and
design stages of the software generation process. Yet, despite this, software systems in
most cases still do not perform according to users' expectations.
Why did the use of formal methodologies, based on successful techniques of the
engineering field, only result in a limited improvement of the quality, control and
operationalization of the software system? The cost of maintenance is still very high in relation to the total cost of generating a
software system. The same degree of success attained in, say, the engineering field, could
not be achieved [AND I]. Why is there a simultaneous movement towards incremental approaches and formal
methods although these approaches are really moving in opposite directions?
The incremental approach is based on obtaining quick results through prototyping without
necessarily following a formal methodology [AND2]. Formal methods, on the other hand,
attempt to formalize the software generation process through mathematical
transformations. The advantage of using these mathematical transformations is that
automation and verification of processes can be achieved [McC1]. Both these approaches
show promising results, but the incremental approach might suit the developer better and
is already used widely by practitioners.
Why is it so difficult to find the correct methodology for generating a software system?
The selection of an appropriate methodology is extremely difficult because of the variety
of methodologies, technologies and hardware available. Some methodologies are also
used for only a limited period because of rapid advances in technology.
Why do sophisticated and user-friendly tools not succeed in simplifying the software
generation process?
Despite sophisticated tools such as CASE, where the user of these tools is guided through
the different steps of the methodology, these tools have not succeeded in delivering the
results expected by industry.
The problems experienced during the software generation process are investigated. In order
to distinguish between different approaches to software generation, is it necessary to place
different approaches in relation to one another by considering the different elements of each.
The characteristics and constraints of the software generation process must also be
considered. All the issues pertaining to the software generation process will be discussed in terms of the
problem statement.