Software Development Process, Requirements and Testing
Wednesday, November 1st, 2006Table of Contents
Development Process
In the development of software there are different models that can be applied over the whole project to make it easier to finish. The main two models are the Waterfall Model (a sequential software development process) and the Evolutionary Model (an interactive software development model). Both have different advantages and disadvantages, which one is used can depend upon the project and often a mixture of models is required.
The Waterfall Development Model

The waterfall model is a very simple process, you start at the top and work your way to the bottom consulting with the customer and signing off each stage before moving onto the next stage. In a real life development using this model each stage will bleed into the next but the borders of each stage are still clear. This model is very easy to keep track of because each stage is clearly labelled and an in-depth document is produced about the stage.
However, this kind of development does have disadvantages, if the customer realises that a requirement is missing and the stage has already been signed off it can be difficult and costly to go back and add the new requirement. This model should be used in developments where the customer and the developer are clear exactly what is required and the requirements are unlikely to change drastically.
The Evolutionary Development Model

The Evolutionary Development Model has the best success rate for developing software that meets the customers requirements. This is because the developers are continually talking to the customer, revising the requirements and altering the development until it is finished. This model is perfect for developments with customers who are not clear about what they need from the system. This is because the developers can try different methods for the system to work until they find the one that works best for the customer.
This development process also has problems. As the software is continually been changed during the development what is actually produced can be very different to where it started. This can mean that the system could be unstable and serious bugs can creep in very easily. It is also difficult to see how far the development is from finishing because the development goes around in a circle until it is finished which means it could become expensive if the circle goes round to many time.
Coding Standards
A coding standard also know as a programming style or coding convention, is a way to keep the source code of software uniform making it easier for developers (the original other or someone else) to quickly read through the code and modify it. Coding standards normally dictate how to
- indent the code - commonly ether two or four spaces or one tab
-
Using
if($hour < 19 && $day > 8 * 4) {
return true;
}
else {
return false;
} -
instead of
if($hour < 19 && $day > 8 * 4) { return true; }
else { return false; }
-
Using
- variable, function and class names
- startingWordWithCapitals
- using_underscore_instead_of_spaces
-
spacing
-
Using
int $i;
for($i = 0; $i < 10; $i++) {
print(“%dâ€, $i);
}
-
Using
-
instead of
int $i;
for($i=0;$i<10;$i++){print(“%dâ€,$i);}
Requirements Analysis and Specification
The requirement specification should be signed off before starting the design stage of the development process so that both the developer and the customer have agreed exactly what the system should include. Once the requirement specification has been signed off the customer cannot change their mind about the requirements because they have agreed the requirement specification they have signed off is what they wanted and nothing need be changed.
The analysis stage of a development should be interactive because the developers do now know how the company works. If the developer build a system without consulting and discussing how the customer’s company works and what the system needs to be able to do, then it is unlikely they will be able to build a system that will be useful to the customer.
Figures
Fig 1: The Waterfall Model http://en.wikipedia.org/wiki/Waterfall_model 2006/10/29
Fig 2: The Evolutionary Model http://en.wikipedia.org/wiki/Iterative_and_incremental_development 2006/10/29
References
Sommerville (2007) Software Engineering 8th Edition ISBN 0-321-31379-8
Wikipedia.org
- The Waterfall Model (2006/10/29) http://en.wikipedia.org/wiki/Waterfall_model
- Iterative and incremental development (2006/10/29) http://en.wikipedia.org/wiki/Iterative_and_incremental_development
- Programming Styles (2006/10/29) http://en.wikipedia.org/wiki/Coding_standard