Sie sind auf Seite 1von 8

The Software Life Cycle Revisited

Software development projects are often large projects. Many people work on such a project for
a long time. Therefore, the whole process needs to be carefully planned and controlled: progress
needs to be monitored, people and resources need to be allocated at the right point in time, etc.
Earlier on, it was pointed out that the progress of a software development project is particularly
difficult to measure.

To be able to assess progress during software development, one opts for a phased approach
with several well-defined milestone events. The linear ordering of activities that underlies the
traditional software development model, the waterfall model, renders it an impossible idealization
of reality even. It assumes software development proceeds in an orderly, sequential manner.
Real projects proceed in far less rational ways.

In general, the milestones identified in a software development project correspond to the points
in time at which certain documents become available:

• After requirements engineering, there is a requirements specification.


• After the design phase there is a (technical) specification of the system.
• After implementation there is a set of programs.
• After testing has been completed, there is a test report.

The Waterfall Model


This model particularly expresses the interaction between subsequent phases. Testing software
is not an activity that strictly follows the implementation phase. In each stage of the software
development process, we have to compare the results obtained against those that are required.
In all stages, quality has to be assessed and controlled.

Prototyping
It is often difficult to get and maintain a sufficiently accurate perception of the requirements of
the prospective user. This is not surprising. In general, not sufficient to take the existing situation
as the only starting point for setting up software requirements. A reason for embarking on a
software development project is that one is not pleased with the present situation. What is
wanted instead of the actual situation is often not easy to determine. This holds even more in
cases where we are concerned with a new application, and the customer does not know the full
possibilities of automation. In such cases, the development of one or more prototypes may help.
The likeness with the development of other products is appealing here. When developing a new
car or chip, one will also build one or more prototypes. These prototypes are tested intensively
before a real production line is set up. For the development of the push-button telephone, about
2000 prototypes were tested, with variations in form, size, and positioning of the buttons, size,
and weight of the mouthpiece, etc.

Advantages and disadvantages of using prototyping models:

Advantages:

• The resulting system is easier to use.


• User needs are better accommodated.
• The resulting system has fewer features.
• Problems are detected earlier.
• The design is of higher quality.
• The resulting system is easier to maintain.
• The development incurs less effort.

Disadvantages:

• The resulting system has more features.


• The performance of the resulting system is worse.
• The design is of lesser quality.
• The resulting system is harder to maintain.
• The prototyping approach requires more experienced team members.

Incremental model
The functionality of the system is produced and delivered to the customer in small increments.
Starting from the existing situation, we proceed towards the desired position in several steps. In
each of these steps, the phased approach that we know from the waterfall model is employed.

Incremental development can also be used to fight the ‘over functionality’ syndrome. Since users
find it difficult to formulate their real needs, they tend to demand too much. Lacking the necessary
knowledge of the malleability of software and its development process, they may be inclined to
think that everything can be achieved.
Conclusion
We can say that the software life cycle consists of several stages, all related to each other, which
allow the development of systems in a more orderly way and with better control, ultimately
obtaining a quality product.
We summarize in a list the concepts of each stage for the optimal development of a software

• The proper application of planning and control techniques is essential for efficient project
management. These techniques become more important according to the degree of
difficulty of the projects.
• Planning is a continuous process, which is carried out for each stage of the project and
includes corrective actions in case errors are corrected in the measurements made.
• The purpose of the requirement analysis and definition is to create and maintain an
updated document of the system requirements which are clearly, unambiguously,
consistently, and verifiably specified. The process consists of a feasibility study, obtaining
and analyzing requirements, specification of requirements, and validation.
• In the design stage a critical element consisting in the definition of the non-functional
requirements of the system, specific quality attributes established for it, that is, attributes
such as performance, reliability, safety, ease of modification, ease of use, robustness,
portability, scalability, reuse, availability.
• Quality and productivity indicators can determine non-productive times and evaluate the
quality of service, the results of which serve to develop aircraft and programs to increase
or decrease the results of the indicators, as appropriate.
• Non-quality or non-productive costs are those that are generated by the misuse of
working time, which have an impact on the results of the indicators and which translate
into economic losses.
• The testing stage is of vital importance to certify the quality of the software, but we must
not forget that the quality does not depend only on that stage, the quality must be implicit
from the beginning of the software life cycle.
It is important to emphasize the great work of the quality control departments since each of the
stages of the software life cycle must be present to verify the adherence of all the processes to
the established quality planning or processes.

Das könnte Ihnen auch gefallen