Presentation is loading. Please wait.

Presentation is loading. Please wait.

Higher Software Development

Similar presentations


Presentation on theme: "Higher Software Development"— Presentation transcript:

1 Higher Software Development

2 Core Text How to pass Higher Computing Chapter 2 – pages

3 What you should already know
There are 7 stages in software development A D I T D E M Analysis Design Implementation Testing Documentation Evaluation Maintenance A day in town drives everyone mad

4 What you will learn in Unit 1
Section 1 – The software Development Process Section 2 – Development Languages and Environments Section 3 – High Level Language Constructs Section 4 – Standard Algorithms

5 Software Development – Topic 1
The Software Development Process

6 What this unit will cover – Learning Outcomes
Understand the iterative nature of the software development process Understand each stage of software development

7 Iteration Each stage in the SDP makes a contribution to the final product The stages are carried out in order but stages may be revisited if a problem occurs This is called iteration Iteration can occur at any time in the software development process

8 GLOSSARY DEFINITIONS Define Iterative
At the back of your jotter write a glossary definition of the word iterative as it relates to the SDP (page 44) Write down an acronym of your own to help you remember the 7 stages of the software development process

9 Documentation used throughout SDP
Software specification – a legally binding contract defining the scope and boundaries of the project. Algorithm - A description of how the problem will be solved Structured Listing – A formatted printout of the program code Test Report – A list of test data with expected and actual output from the program

10 User Guide – A set of instructions on how to install and use the software
Technical Guide – Description of the technical requirement to run the program (RAM, OS, Disk Space, etc) Evaluation Report – A report which accompanies the software and comments on the original specification Maintenance Report – Details the maintenance that has been carried out

11 Personnel involved in the SDP
1. Client 2. Systems Analyst 3. Project Manager 4. Programmer 5. Independent test group

12 Client Someone who buys or intends to buy the software
Client defines the scope and boundaries of the project

13 Systems Analyst Carries out initial investigation (could be a team of analysts for a large system) The Analysts role is broken down into:- Collecting information Analysis information collected Producing a requirements specification

14 Project Manager Responsible for the supervision of the project.
Main tasks are to keep the project on schedule and within budget (within scope and boundaries)

15 Programming Team Responsible for the coding part of the development
Work to design created by analysis and design teams Also responsible for testing and maintenance In large projects a team of programmers will work together

16 Independent Test Group
The software is passed to independent test groups for impartial testing This may include Alpha testing – in-house personnel Beta testing – selected users outside the company

17 Written Task Link to Table
Using the information on pages 44 and 45 complete the following table – use your own words – do not copy the table on page 45 word for word!!! Stage What happens at this stage Personnel Involved Documentation (with description) Analysis Scope and boundaries of the problem are discussed and agreed Client, Systems Analyst Software Specification - a legally binding contract defining the scope and boundaries of the project

18 Analysis

19 What is analysis? Analysis is an attempt to understand a given problem, clearly and exactly, and to generate a specification. Full systems analysis has three phases: collection of information analysis of information collected production of a software specification

20 Extracting the Clients needs
Also known as requirements elicitation This is done by the Systems analyst by: interviewing the clients completing questionnaires making observation notes inspecting existing systems and documentation Scope and boundaries of project must be agreed – eg money and time constraints

21 GLOSSARY At the back of your software development jotter write a glossary definition of the following terms:- Software Specification Systems Analyst Project Manager Client Programmer Independent Test Group

22 Past Paper Question Analysis
Look at the structure of the Higher Computing Paper. Your glossary definitions must be memorised in such a way as to allow you to answer these sorts of questions 2001 – Q11 2002 – Q7, 8 2003 – Q2 2004 – Q11

23 Complete these Past Paper Questions on analysis in your jotter
What is meant by the term iterative during the software development process? Use an example of iteration during the SDP to explain your answer marks What is the purpose of the analysis stage? 1 mark Describe two techniques used by a Systems Analyst in the analysis stage of the software development process. 2 marks

24 Checkup on Analysis

25 Design

26 Designing the Solution
Once the software specification has been agreed by the client and the systems analyst the design begins Design can be text based – pseudocode or graphical based – flow chart, structured diagram Each of method involves taking a big problem and breaking it down into smaller sections

27 Top Down or Bottom Up TOP DOWN DESIGN WITH STEPWISE REFINEMENTS
Taking a big problem and breaking it down into smaller and smaller parts BOTTOM UP DESIGN Looking at bits of the problem which have already been solved and build from this

28 Top Down Design Example

29 Pseudocode Text method of designing a program
Uses a mixture of english words and programming terms Uses a systematic numbering system Top-level algorithm (List of main steps) Refinements (How you achieve each main step)

30 Example of pseudocode that you will use later on in the course
1. set counter to zero 2. prompt user to input search value 3. set pointer to start of list 4. do 4.1 compare search value to item at current list position 4.1.1 if search value = current item then 4.1.2 increment counter by 1 4.1.3 set pointer to next position in the list 4.2 loop until end of list 5. output number of occurrences (counter)

31 EXAMPLE – Pseudocode - Top Level Algorithm
Top-level algorithm for a program to calculate a persons wage: Find out persons details Calculate wage Display wage What details will you need to enable you to calculate and display someone’s wage?

32 EXAMPLE – Stepwise Refinements
These are the refinements for step 1 of the program which will calculate a persons wage: 1.1 ask for name 1.2 ask for rate 1.3 ask for number of hours

33 COMPLETE ALGORITHM WRITTEN IN PSEUDOCODE
Find out persons details 1.1 ask for name 1.2 ask for rate 1.3 ask for number of hours Calculate wage wage = rate * number of hours Display wage

34 For you to do Using the example on the previous slide write algorithms for the following programs:- Calculate and display the area of a rectangle The computer stores a number – ask the user to input a number and compare them. Display an appropriate message depending on whether the guess matches the number stored.

35 Algorithm to Calculate the area of a rectangle – suggested solution
Find out measurements 1.1 ask for length 1.2 ask for breadth Calculate area 1.1 area = length * breadth Display area

36 Compare guess and display message
Algorithm to Store a number, get an input, compare results and display message Store the lucky number Get the users guess Compare guess and display message 3.1 If guess = lucky number Display well done message 3.2 Else Display bad luck message

37 Structured Chart/ Structured Diagram
A structure chart gives a picture of the program design Styles vary but all contain boxes, lines, arrows and text Structure charts are read from top to bottom. A structure chart shows the relationship between different parts of the program

38 Example to breaking a problem down using a structured chart

39 STRUCTURED CHART ENTER RATE No OF HOURS WAGE = RATE * No OF HOURS
CALCULATE WAGE DISPLAY CALCULATE A PERSONS WAGE FIND OUT PERSONS DETAILS ENTER NAME

40 Flow Chart A method which uses a series of shapes with connecting arrows to show the design of a program It also shows the flow of data throughout the program

41 FLOW CHART START FIND OUT NAME FIND OUT RATE FIND OUT NUMBER OF HOURS
WAGES = RATE * NUMBER OF HOURS DISPLAY WAGE STOP

42 Glossary Definitions At the back of your jotter write a glossary definition of each of the following Pseudocode Structured Diagram Flow Chart Top Down Design Bottom Up Design

43 Complete these past paper questions in your jotter
The first two stages of the software development process are analysis and design - state the purpose of each of these stages marks Describe the design methodology known as Top Down Design with Stepwise Refinements marks Describe one graphical design notation used during the design stage (you may use a diagram) marks

44 Match Up Complete the Match Up Exercise on Analysis and Design

45 Implementation

46 Implementation Programmers translate the design into a form the computer can understand ie program code

47 Choice of Programming Language
Other than programmers experience the following are taken into account when choosing which programming language to implement the program Nature of the problem Hardware and software compatibility Data types Features of the language

48 Testing

49 Purpose of Testing Testing should be systematic and comprehensive.
Testing cannot always be exhaustive. What do you understand by these statements?

50 Testing Systematic - A logical approach ensuring errors are documented, corrected and then testing is repeated Comprehensive – all possible situations, inputs and operations will be tested Exhaustive - In the real world it is difficult to test for every possible input which means no matter how exhaustive testing is, it is rarely 100% conclusive

51 Test Data TESTING NORMAL EXCEPTIONAL EXTREME CONDITIONS CONDITIONS

52 Test Data should cover NORMAL – within the expected range
EXTREME – testing at the boundaries or limits of the expected input EXCEPTIONAL – testing outside the expected limits of the input

53 Who does the testing? The programmers Independent Test Groups
The client All of the above must be involved in the testing process

54 Testing by programmers
Good for initial testing but unlikely to show up all types of errors as they “know” the software too well Think of two other reasons why the programmers shouldn’t be the only ones to test their own programmes

55 Independent Test Group
Involves people other than the programmers Any errors are recorded Software is returned to programmer to be amended This is usually called Beta Testing

56 Testing by the client The client must be allowed to test the software in the environment where it is going to be used This will often show up errors not uncovered by the programmers or ITG This is called Acceptance testing

57 Glossary Definitions At the back of your jotter write a glossary definition for Systematic testing Comprehensive testing Acceptance Testing Beta Testing Normal test data Extreme test data Exceptional test data

58 Past Paper questions Suggest a suitable set of test data for a program that will be used to convert the number of a month into the name of the month. 2 marks A program will ask a user to enter their name and age. Suggest a suitable set of test data to test the variable age.

59 SQA marking scheme 1. Data should include: zero, negative number, integer in range 1-12, integer outwith range, real number, text. Example of all 3 – 2 marks Example of 2 – 1 mark Example of 1 – 0 marks Do not give a mark for just stating Normal/Extreme/Exceptional

60 SQA marking scheme 2. Data should include: zero, negative number, integer in appropriate range, integer outwith range, real number, text. Example of all 3 – 2 marks Example of 2 – 1 mark Example of 1 – 0 marks Do not give a mark for just stating Normal/Extreme/Exceptional

61 More Past paper questions
Q. Describe one technique used to ensure the program is robust. A. Testing with exceptional test data to ensure the program can cope with unexpected inputs without halting. Q. Explain why 3 types of test data are normally used to test a program A. Normal, extreme and exceptional data should be used to test correctness, reliability and robustness

62 Types of error found at the testing stage – Logical errors
Mistakes in the design or logic of the program Program may work but output is not as expected therefore the program is not correct Counter = 0 DO counter = counter +1 LOOP UNTIL counter = 0

63 Syntax errors When the rules of the language are broken eg
PINT instead of PRINT, NED instead of END Missing brackets, colons or semi-colons

64 Glossary definitions At the back of your jotter write a glossary definition for Syntax errors Logical errors

65 Documentation

66 Types of documentation
There are two types of documentation Documentation for the Software Development Team Documentation for the end users

67 Documentation for SD Team
The software development team documents each stage of the process. So far we know:- Analysis Stage: Software Specification Design Stage: Algorithm (Flowcharts/ Structured Diagrams/ Pseudocode) Implementation Stage: Internal Commentary Structured Listing

68 User Documentation The documents which accompany the finished software product These documents are made available to the end user of the software User Guide Technical Guide

69 The User Guide Describes how to use the program:
How to start up the program Explains the different commands and how to use them Usually includes tutorials

70 The Technical Guide How to install the software Memory requirements
Processor requirements Operating System requirements Version number of software Troubleshooting guide

71 Glossary Definition At the back of your jotter write a glossary definition for User guide Technical guide

72 Past Paper Questions Hillhead Secondary have recently bought new software, when they try to install the software they find that they do not have enough hard disc space. Which part of the software documentation should they have read before installing the software? 1mark What information would this documentation have told them mark

73 Throughout the software development process it is important that appropriate documentation is created. Name 2 pieces of documentation and the stages they are produced at (do not include documentation produced at the documentation stage) marks Describe the two guides which must be produced at the documentation stage. 2 marks

74 5. When developing a piece of software 3 different user interfaces were created. Describe how you could test which one of the interfaces was most suitable for the end user.

75 Suggested SQA Solutions
Technical guide Would have told them the systems requirements (memory, processor, RAM, OS, etc) Software Specification, Algorithm (Flowcharts/ Structured Diagrams/ Pseudocode), Structured Listing, Test report, evaluation report, etc User guide - describes how to use the program, start the program, different commands and how to use them, includes tutorials - Technical guide – Describes the system requirements for the software eg Memory requirements, Processor requirements, Operating System requirements, Version number of software, Troubleshooting guide Testing each interface with sample users. Use feedback to make final decision - Use Independent Test Group and use feedback from this group

76 Evaluation

77 On-going evaluation An evaluation is produced and given to the client with the finished software Each stage of the Software Development Process should be evaluated before moving onto the next stage It is too late at the evaluation stage to realise that the analysis was incomplete and therefore the program produced only solves half the problem

78 Fit for Purpose The evaluation report should state that the software is fit for purpose Fit for purpose means that it does what was outlined in the software specification In other words the program is correct

79 Does the software meet the specification?
The software should be evaluated against the following criteria Correct Reliable Robust Efficient Maintainable Portable

80 Glossary definitions Correct/Fit for Purpose - Meets the software specification document Reliable – Free from design faults and works for all valid inputs Robust – can cope with errors while running and will not fail when unexpected input is entered or unexpected results are generated

81 Efficient – does not use unnecessary memory or processor time
Portable – Can work on computer system types other than the one it was designed for with little or no adaptation Maintainable – can be easily updated at a later date by programmer other than those who originally created it

82 What helps makes a program maintainable?
As well as documenting the software a program will be easier to update at a later stage if the code is:- Readable – uses comments, meaningful variable names and white space Modular –uses sub routines or functions (is broken up into smaller parts)

83 Glossary definitions Readable Modular

84 Past Paper Question on evaluation
Q. Once software has been developed and implemented, evaluation of the product will take place. What criteria should be considered when evaluating software? 2 marks A. Is the software correct – does is meet the specification document, is it maintainable, portable, efficient, reliable and robust

85 Maintenance

86 Maintenance Activities
Maintenance is making changes to a program once it has been developed Maintenance starts as soon as the system is delivered to the client Maintenance is an ongoing process

87 Maintenance Activities
CORRECTIVE ADAPTIVE PERFECTIVE

88 Corrective Maintenance
Undetected errors at the testing stage are reported to the developer by the client This fixes errors not found at the testing stage The cost of this type of maintenance is met by the software company

89 Adaptive Maintenance Changes have been made to the environment where the program is to be used: Upgrade of hardware Faster processor New peripheral devices New memory chips Upgrade of Operating System Cost of this maintenance is usually met by the client

90 Perfective Maintenance
Client requests a change to the original specification usually to enhance the program: Adding new features Changing screen layout Cost of this maintenance is met by the client

91 Glossary Definitions Write a glossary definition for each of the following at the back of your jotter Corrective maintenance Perfective maintenance Adaptive maintenance

92 Past Paper questions on maintenance
Q. After a computer game is finished and put on sale it still requires maintenance. Describe two kinds of maintenance activity that may be performed. A. Corrective – previously undetected errors are removed Adaptive – the environment of the software has changed so changes are made to allow it to run correctly in the new environment Perfective – changes made to improve the program at the request of the client

93 Q. It is important that a program is readable
Q. It is important that a program is readable. Explain why this is important. A. Software products always require some form of maintenance. If the program is not readable then programmers will find it very difficult to maintain. Q. List two techniques used to ensure that a program is readable. A. Use of meaningful variable names, Internal commentary, Modular programming (sub-routines)

94 Maintenance Costs Maintenance is expensive to the developer and the client in terms of time and effort. All the more reason for getting it right in the first place!! Corrective (17%) Adaptive (18%) Perfective (65%)

95 End of Unit Homework Complete all questions on page 49 as a homework exercise - ensure answers are given at an appropriate level for higher

96 This is what you should have learned
Explanation of the iterative nature of the software development process Description of the purposes of the software specification, and its status as a legal contract Explanation of the importance of each stage (analysis, design, implementation, testing, documentation, evaluation, maintenance) of the SDP

97 Identification of the personnel at each stage (client, systems analyst, project manager, programmer, independent test group) and brief description of their roles Description and exemplification of pseudocode and one graphical design notation (structure diagram or other suitable) including data flow Description and exemplification of top-down design and stepwise refinement

98 Explanation of the need for systematic and comprehensive testing
Explanation of the need for documentation at each stage Evaluation of software in terms of robustness, reliability, portability, efficiency and maintainability Description and exemplification of corrective, adaptive and perfective maintenance

99 End of Topic Activities
Complete the end of unit evaluation sheet Make sure you have a glossary definition for all the key words on page 43 Complete ActiVote Assessment


Download ppt "Higher Software Development"

Similar presentations


Ads by Google