software development

Software development should be done in a planned and organised manner, especially for big projects involving many people.

The development needs to be clearly documented so that it can be understood by other developers who may maintain or enhance the program in the future.

A development lifecyle really continues as long as the program is being used, as it can always be adapted for new requirements.

Over time, several different approaches to software development have been.... developed!

  1. waterfall development cycle
  2. iterative development cycle
  3. Rapid Application Development (RAD) cycle

Waterfall development cycle

a linear sequential cycle in which each stage is completed before the next is begun.

advantages drawbacks
easy to manage difficult to change requirements later
stages do not overlap working program is produced late in the lifecyle
each stage has specific deliverables not suitable for long, complex projects

Iterative development cycle

a cycle in which a basic set of requirements is first developed, then expanded over time until the full system has been developed.

advantages drawbacks
some working programs developed early in the cycle whole system needs to be defined at the start of the project
easier to test and debug smaller programs needs good planning for each iteration
customers are involved at the very start, so no late surprises! not suitable for short, simple projects

RAD

different requirements are developed in parallel focusing on early user involvement in testing (using prototypes).

advantages drawbacks
reduced overall development time system needs to be modular
frequent customer feedback help development needs strong teams of skilled developers
very flexible as requirements evolve from feedback not suitable for short, simple projects

STAGES in a CYCLE

Software development lifecycles are broken into the following stages:

different requirements are developed in parallel focusing on early user involvement in testing (using prototypes).

stage description
analysis a problem must be clearly defined before it can be solved! The analysis stage involves finding out exactly what the problem is and what is required (a requirements specification is developed). This may involve a feasibility study.
design Structure charts are designed to identify modules that will be required and variables that will pass between them. State transition diagrams can be documented to clearly express how the system works. Pseudocode is developed to solve any programming aspects. This is all done in the design stage.
coding A suitable programming language(s) is used to code the program(s).
testing Suitable test data is identified and used to test the program at various stages - alpha, beta, acceptance
maintenance The program is maintained throughout its life to ensure it continues to work effectively. This involves improving functionality and adapting the program to new requirements.

Past Paper Questions