1.5 Methodology of
development
When developing any system, it is recommended to divide it into
tasks or groups of related tasks; it makes it easier to be understood,
organized and managed. In the context of software projects, these tasks are
referred to as phases. Grouping these phases and their outcomes in a way that
produces a software product is called a software process.
There are many different software processes, and none is ideal
for all instances. Each is good for a particular situation and, in most complex
software projects; a combination of these processes is used. The most used life
cycles (processes) for software development are:
§ Waterfall model
§ V model
§ Spiral model
To implement the most appropriate methodology of work, it is
essential to understand how each of these models (waterfall, V and spiral
cycle) operates and what are the differences between them.
1.5.1 Waterfall model
The waterfall model is the oldest and most widely used model in
the software development field. It is based on the following assumption: we
cannot build the roof before the foundation;
There are certain advantages of the waterfall model, which causes
it to be the most widely used model as yet. Some of them can be listed as
under:
§ produce the deliverables defined in advance;
§ to complete in a specific date;
§ Not be completed until the deliverables are satisfactory
in a step-validation check.
§ Needless to mention, it is a linear model and of course,
linear models are the most simple to be implemented.
§ The amount of resources required to implement this model
is very minimal.
§ One great advantage of the waterfall model is that
documentation is produced at every stage of the waterfall model development.
This makes the understanding of the product designing procedure simpler.
§ After every major stage of software coding, testing is
done to check the correct running of the code.
§ Easy to explain to the user
§ Stages and activities are well defined
§ Helps to plan and schedule the project
§ Verification at each stage ensures early detection of
errors / misunderstanding
|