Software Design and Development

Home > Software Design and Development > Core > Software Development Cycle > Software development cycle

The software development cycle

The stages for the software development cycle are as follows:

Activities

Outcomes

This material addresses aspects of the following syllabus outcomes:

A student:

H1.2 differentiates between various methods used to construct software solutions
H3.1 identifies and evaluates legal, social and ethical issues in a number of contexts
H3.2 constructs software solutions that address legal, social and ethical issues
H4.1 identifies needs to which software solutions are appropriate
H4.2 applies appropriate development methods to solve software problems
H4.3 applies a modular approach to implement well structured software solutions and evaluates their effectiveness
H5.1 applies project management techniques to maximise the productivity of the software development
H5.2 creates and justifies the need for the various types of documentation required for a software solution
H5.3 selects and applies appropriate software to facilitate the design and development of software solutions
H6.1 assesses the relationship between the roles of people involved in the software development cycle
H6.2 communicates the processes involved in a software solution to an inexperienced user
H6.3 uses a collaborative approach during the software development cycle
H6.4 develops effective user interfaces, in consultation with appropriate people.

Source: Board of studies NSW, Stage 6 Software Design and Development, Stage 6 Syllabus (1999)

The Software Development Life Cycle relates to models used to manage the development of systems. The cycle is also commonly referred to as the ‘waterfall model’. It is a sequence of stages in which the output of each stage becomes the input for the next. These stages generally follow the same basic steps but there is not a definitive correct model. A number of different models have evolved including fountain, spiral, build and fix, rapid prototyping, incremental, and synchronise and stabilise.

Project management

Project management happens throughout this development cycle, it involves setting up a project team and assigning different roles to team members. A range of tools are used to manage the progression of the project such as Gantt charts, PERT charts, logs and documentation.

Go To Top

Defining and understanding the problem

This first stage of the development cycle involved developing an understanding of the problem and WHAT needs to be solved. This typically consists of a number of activities: identification of the problem, idea generation, representation of the problem and communication with others involved in the proposed system. These activities are not necessarily distinct and may overlap. One may be undertaken simultaneously with another depending on the requirements and time constraints of the project.

Identification of the problem

This stage involves examining the client requirements and the operation of the existing system. A list of requirements for the new solution is created and analysed, along with any areas which the client has identified as lacking in the existing system.

Ideas generation

At this stage the problem is analysed in more detail in order to generate ideas for possible solutions. A number of ideas are generated for consideration. These ideas are then included in a feasibility study which is presented to the client. The feasibility study includes analysis of the different ideas and their positive and negative features and makes a recommendation as to the most desirable solution.

More information on determining the feasibility of software is available here:
http://www.hsc.csu.edu.au/sdd/core/cycle/feasibility/feasibility.html Selecting this link will take you to an external site.

Representing the system using Modelling diagrams

After defining the problem, it now needs to be examined in greater detail. This information about the problem and the new solution can be represented using a range of modelling tools including:

Interface design

At this stage a decision is made to determine whether a graphic or text based interface will be used.

Selection of appropriate data structures

Appropriate data structures such as structured data types or simple data need to be decided on. This will depend upon the data required by the system and the complexity and use of the data.

Communication with others involved in the proposed system

It is very important to obtain feedback from users of the system at all stages of the cycle. This is essential if the software solution is to meet the requirements of the client. In the initial stages of the project meetings will take place between the client and the project team. Time spent in consultation with users help to make the new system as productive and cost efficient as possible.

Consideration of social and ethical issues

Consideration needs to be given to social and ethical issues that relate to the development of the system and the finished product. These issues include:

Go To Top

Planning and Design

The second stage of the development cycle focuses on HOW to solve the problem, creating and documenting a solution to the problem identified in the first stage. Some of the tasks that can be done include:

Interface design

An interface is designed to be efficient and easy to use. Some basic guidelines are followed such as requiring a minimum number of mouse clicks to locate information, replication of hard copy forms in interface design, layout consistency and ensuring that the tab order follows logically.

Selection of software environment

Selection of software environment is dependant on a number of factors including how and where the system will be used and the expertise of programmers. Examples of software environments are web-based, Unix and Windows.

Identification of appropriate hardware

Hardware that is appropriate to system requirements needs to be selected. Diagrams of the workplace layout are useful in component selection.

Design and documentation of the overall software solution

The design of a complex solution needs to be created. This solution then needs to be represented, using a range of documentation techniques:

Go To Top

Implementation

In this stage the solution is created. The documented design in the previous stage is implemented, e.g. algorithms are converted into code using a programming language. Documentation relating to the conversion of the existing system to the new system is created. Online help is often included to explain program functions.
There is a range of program development techniques that can be used in the implementation of the software solutions, they include:

Go To Top

Testing and evaluation

Testing the software solution

A comparison of the solution with the original design specifications is made. Appropriate test data is identified to ensure the system correctly carries out the tasks it was designed to perform. The program is divided into smaller modules and as each module is completed it is tested in order to minimise recoding.

Reporting on the testing process

Documentation of the test data and output is produced often with the use of CASE tools. These results are communicated to those for whom the solution has been developed.

Go To Top

Maintenance

After the system has been implemented, constant monitoring and evaluation is carried out to ensure the system continues to function efficiently. Modifications to code and scripts is often required. Original documentation is important, as is the structure and self-documentation of the commands to be updated.

Modification of code to meet changed requirements

Go To Top

Activities

  1. Identify the documentation tools and techniques that are used in each stage of the development cycle.
  2. Create a system flowchart which briefly outlines what happens at each stage of the System Development Cycle. Use correct flowchart symbols and include logical decisions. On completion of the flowchart, translate the steps into pseudo code.
  3. Document a software project which you intend to develop in terms of the System Development Cycle. Include information on what procedures you needed to carry out at each stage.
  4. Case study: contact an IT professional at a local business or organisation that has implemented a software solution. Prepare a questionnaire prior to an interview. Create a report which outlines how the System Development Cycle was carried out.

References

Fowler, A. (2003) Software Design and Development, HSC Course, Heinemann, Melbourne.
Board of Studies NSW, Stage 6 Software Design and Development, Stage 6 Syllabus.
Systems Development Life Cycle, Wikipedia http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle Selecting this link will take you to an external site.  26/06/2008

Go To Top



Neals logo | Copyright | Disclaimer | Contact Us | Help