Intermediate 2 Software Development Process
Software • You should already know that any computer system is made up of hardware and software. • The term hardware is fairly easy to understand, because you can see it. It is all the pieces of equipment that make up the system – the processor, monitor, keyboard, mouse, printer, scanner and so on. • Software is not so obvious. It is all the programs, instructions and data that allow the hardware to do something useful and interesting.
Software we know (no need to copy this slide) • Microsoft Word (the word processing program that I use – I regularly use three versions of it: Word 2000, Word 98 for MacOS 8, Word v.X for MacOS X) • Microsoft Excel (spreadsheet used to keep charity accounts for which I am the treasurer) • AppleWorks (integrated package – I mainly use its word processor and simple database sections) • Internet Explorer (both PC and Mac versions – for browsing the web)
Jotter Work • What is the meaning of the term hardware? • Give three examples of software. • Identify each of the items in the table as either hardware or software:
The Software Development Process Any product, whether it is hardware or software it is always developed following essentially the same process. This process is called the Software Development Process.
Learning The Steps • It is important that you learn the steps in the correct order: Analysis Design Implementation Testing Documentation Evaluation Maintenance
A D I T D E M (Initials) We remember the stages and order of the Software Development Process using a rhyme:
Analysis • The main purpose of the analysis stage is to be absolutely clear about what the program is supposed to do. • The result of this stage is the program specification agreed by both the customer(whoever wants the program written) and the developer(the person or company who are developing the program).
Jotter Work Copy this table at the back of your jotter and copy out the description of analysis.
Design • It is worth spending time at the design stage working out some of the important details, including how the program will look on the screen, how the user will interact with the program, and how the program might be structured. • Program designers use a variety of methods for describing the program structure. • Two common ones are called pseudocode and structure diagrams.
Pseudocode • Pseudocode is a non-graphical design notation. • It is a numbered list of instructions written in normal human language (in this case, English). • It doesn’t go into all the details, but it gives the main steps.
Pseudocode -Example • Problem – Write a program that allows a user to enter a score out of 50. The program should calculate and display the percentage. • Before you write the pseudocode it is good to work out the Inputs , Processes (calculations) and Outputs.
Pseudocode -Example • Pseudocode • Get the score 1.1 Prompt user for a score 1.2 Accept • Calculate Percentage 2.1 percentage= score / 50 * 100 • Display Message • Here is the trick: • Start with the input variables and put “Get the” in front of them. • Next comes the process variables. Put calculate in front of them. • And always put Display Message at end
Structured Diagram Name of program Step 1 Step 2 Step 3 Step 4 Step 5 • Each instruction goes into a separate box. • You read pseudocode from top to bottom. • You read a structure diagram from top to bottom, left to right.
Structured Diagram- Example • Here is the previous problem as a structured diagram: Percentage Program Get the Score Calculate Percentage Display Message
Written Task Now fill the table in your jotter out with the description of design.
Implementation • Implementation is the process of converting a program design into a suitable program language. • The screen should look like your screen design • The structure of your code should follow your pseudocode and your structured diagrams • Any changes made during implementation MUST be recorded and change in design.
Implementation • There are thousands of different programming languages, all with their own advantage and disadvantages. • You have already used Prolog in the AI unit of this course. This language is good for creating knowledge bases for expert systems.
Written Task Now fill the table in your jotter out with the description of implementation.
Testing • When you finish programming you will need to test your program rigorously. • This will be carefully planned to test a wide range of conditions. • We can divide it up into three types of testing. • Normal • Extreme • Exceptional
Types of testing • Testing normal conditions • Making sure the program does what it should do when used ‘normally’. Within the boundaries of normal use. • If the program asks for a percentage enter any number between 1 and 99, e.g.12 as it should accept this. • Testing extreme conditions • Making sure the program can handle situations that are at the edge of what would be considered normal. On the boundaries of normal use. • If the program asks for a percentage enter 0 or 100. • Testing exceptional conditions • Making sure it can handle situations or inputs that it has not been designed to cope with. Out with the boundaries of normal use. • If the program asks for a percentage enter “computing” or -12 or any number out with the boundaries of normal use. It should give you an error message and not crash.
Written Task Now fill the table in your jotter out with the description of testing.
Documentation • This is the documentation that the user gets when they buy a piece of software. • When you buy a PS3 game you get; • On the outside a label saying PS3 so that you know what console it is for. • In the package a booklet telling you what control does what and how to work the basics of the game. • There are two main types of documents; • User Guide & • Technical Guide
Documentation- User Guide • This tells you how to use the product. • It might also contain a tutorial, taking you through the use of the product step by step. • Some user guides come in the form of a booklet or on a CD.
Documentation- Technical Guide • This gives technical information about the type of computer the software will run on, including; • how much RAM it needs, • how fast a processor it must have, • which operating system is required. • The Technical Guide should also include instructions on how to install the software.
Written Task Now fill the table in your jotter out with the description of documentation.
Evaluation • The final stage in the process before the software can be distributed or sold is evaluation. • Evaluation involves reviewing the software under various headings to see if it is of the quality required. • In this course, we will review software under the following three headings; • fitness for purpose • user interface • readability.
Fit For Purpose • Is the software fit for purpose? • To answer this question the programmer must go back to the program specification (produced at the analysis stage) and checking that all the features of the software have been implemented. • It also means considering the results of testing, and making sure that the program works correctly and is free from bugs.
User Interface • The user interface should also be evaluated. • The user interface is the way in which the user interact with the program. • To evaluate a program answer the following questions; • Is the program easy to use? • Is it clear what all the menus, commands and options are supposed to do? • Could it be improved in any way?
Readability • This is not for the end-user, but for the programmer. • It is assessing the way that the coding has been implemented. • If a programmer can take a program they have not written and understand it, it is deemed readable.
Readability: What makes a program readable? • Using meaning variable names • If the program asks for a user name call the variable “user name”! • Use internal comment lines • Beside each section of code write a small sentence on what that piece of code does.
Written Task Now fill the table in your jotter out with the description of evaluation.
Maintenance • This final phase happens after the program has been put into use (sold), so we cannot put this stage into action in class. • There are different types of maintenance that might be required, these are called; • Corrective maintenance (fixing bugs), • Perfective maintenance (adding new features) • Adaptive maintenance (taking account of new conditions, e.g. new OS).
Written Task Now fill the table in your jotter out with the description of maintenance.