National 5 Software Design and Development (Software Development Lifecycle)
Software Development Process Analysis Design Implementation Testing Documentation Evaluation Maintenance
Analysis This is where you specify exactly what the problem is that is to be solved. Design This involves planning a solution to the problem using a recognised design method. There are three design notations: Structure Chart 2. Flow Chart 3. Pseudocode
Structure Chart A graphical way of indicating the various steps that you plan to follow in order to obtain a working solution to your problem. Note: there is no attempt to show the correct order of events (e.g. Dessert comes before the Entrée /Starter) we only want to show which smaller tasks are part of each bigger task.
FLOWCHART A graphical representation of the operations involved. Symbols are used to represent particular operations and arrows indicate the sequence.
Wireframe diagram here????
Pseudocode Here the problem is broken down into steps and written out using plain English instead of programming keywords Declare all variables Get numbers Calculate answer Display result Refinements 1.1 declare firstnumber as integer 1.2 declare secondnumber as integer 2.1 ask for and get firstnumber
Implementation Readability of code A program is easier to understand and read if you include: Meaningful variable names Internal commentary Clear user prompts Use of white space
Testing This involves making sure that your program does solve the problem. Programs should be tested with 3 types of test data: Normal – data well within the limits of the program Extreme – data at the ends of a range; boundaries; limits Exceptional – data which is invalid; a well written program should reject this data. This is used to test the robustness of your program. (Robustness – how well your program copes with errors without crashing.)
Testing Test Table: a test table must be created when you are testing a program. If you were testing a program that inputs 3 test scores and gives the average your table may look like this: Test Test Data Expected Output Actual Output Normal 20, 87, 34 47 47 – Screenshot1 76, 73, 23 57 57 – Screenshot 2 Extreme 100, 0, 100 67 67 – Screenshot 3 0, 0, 100 33 33 – Screenshot 4 Exceptional 101, 120, -1 Invalid Invalid – Screenshot 5 -2, -5, -60 Invalid – Screenshot 6
When testing a program you may come across different types of errors. Syntax error – an error due to the incorrect use of the programming language e.g. missing out a semi-colon (detected when compiled or interpreted) Run-time error –causes the program execution to stop e.g. the computer to try to carry out an impossible task – (debugger useful here) e.g. dividing by 0 Logical error – the program runs but produces an incorrect result due to a mistake in the design e.g. wrong formula: a=1+b instead of a=1*b; discovered during testing (the trace facility can be used to locate this type of error)
Documentation A program should include two types: User documentation - gives instructions how to use the program Technical documentation – this explains what each part of the code does;useful to another programmer who might have to change the code at later date. It includes comment lines, system requirements and installation requirements.
Evaluation This involves checking your solution against the problem. Does your program meet the specification? Is your program efficient/robust? Is it readable? Maintenance This involves changing a program at a later date. It could be altered to add extra features or to make it work better. Having a readable/efficient program will aid future programmers with maintenance.