Software or Systems Life Cycle

After completing this short lesson you should be able to:

  1. sketch and briefly explain the software development life cycle (SDLC)
  2. describe where in the SDLC the program design activity fits
  3. explain what is meant by the terms variable and process

Although the lesson isn't specifically about designing programs it does help to put program design into some perspective.

Return to the index
Go to the next lesson
Return to the previous lesson


Software Development Life Cycle

A program may result from some problem, in this case problem means some task requiring a solution, or from a bright idea, or because it is a project which has been set for student. No matter what their first causes computer programs, aka software, and software systems, collections of softwares, have quite well-defined life cycles. The need for a program is recognised, the requirements are analysed, a possible solution is designed, the prototype is built and tested, and finally the program is put into use. Figure 1 shows the typical life-cycle for a computer program.

3GL- SDLCDuring phase one the emphasis is on fact-gathering and determining where the boundaries of the problem are.

Phase two involves the steps of identifying the variables and processes which make up the problem.

Phase 3 is where you will use the tools and techniques that you learn in this module. During this phase the strategies which will solve the problem are developed.

Phase 4 represents the time when the solution to the problem, the programs or system, is constructed.

Phase 5 is a critical time but can be minimised if the previous steps are correct.

Phase 6, the maintenance phase, is the time when the solution is in active use. It may undergo enhancements or it may have bugs fixed during its lifetime.

There is a strong connection between phases 2 and 3 since the process of designing a solution to a problem is an iterative process and often involves a great deal of discovery. For example as you refine an algorithm you might discover that there are variables and/or processes that weren't obvious during phase 2. This is to be expected, after all you are just learning about this kind of thing, but you can expect to meet this kind of discovery right throughout your life as a program designer.

Variables and Processes

The terms variables and processes have been mentioned a couple of times and were also featured in a previous lesson. In won't hurt to review what these terms mean.

A variable is something whose value will change over time. For example daily temperature is a variable. If you measure the room temperature now and measure it one hour from now there is every chance that the two measurements will give different values. In this example the word temperature represents a variable. A process is an activity which, in computing terms, transforms data. In general terms a process is an activity which involves some steps designed to achieve a particular outcome. Processes take data, the contents or values of variables, and transform it.

Figure 2 - IPOIt is useful to show processes and the data they act on in a simple diagram form as shown here in Figure 2. This figure is very similar to the Data Source - Program - Data Sink figure you saw in the introduction. It shows that processes have inputs, transform data and generate outputs. An example might be a payroll calculation process which has inputs called Hours_Worked and Pay_Rate and which produces an output called Gross_Pay. In this example Hours_Worked, Pay_Rate and Gross_Pay are all variables

3GL-  ProcessFigure 3 shows a more usual way of representing processes and variables and is used here just to emphasise the nature of processes and variables. Note that variable names like Hours_Worked, Pay_Rate and Gross_Pay are often written with underscores. This is to help clearly identify the variables by giving them names and because most computer languages don't recognise variable names which contain spaces.

There is no substantial difference between computer processes as they are described here and computer programs. In Figure 3 the Calculate_Gross_Pay process could be a complete computer program or it could be a process within a program. This is an important point to keep tucked away at the back of your mind as you develop your skills and knowledge in 3GL Program Design.


Summary

You should have some idea now about the place of program design in the overall life cycle of software systems.

The next lesson starts in earnest on the design process.


Return to the index
Go to the next lesson
Return to the previous lesson


This publication is copyright David Beech and Learning Systems 1997-2002
and may not be reproduced by any means without the written permission of
David Beech.
9 Wyndella Street, Tasmania, Australia


db@codelearn.com