Higher Software Development

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software development process. Explanation of the iterative nature of the software development process.
P5, M1, D1.
GCSE PROJECT GUIDELINES Use this presentation to make sure you have the correct content for you project - click on.
BPC.1 Basic Programming Concepts
Software Development, Programming, Testing & Implementation.
THE SYSTEMS LIFE CYCLE ANALYSE DESIGN IMPLEMENT MAINTENANCE IDENTIFY/INVESTIGATE.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Systems Life Cycle A summary of what needs to be done.
Higher Grade Computing Studies 1. Software Development Cycle Higher Computing Software Development S. McCrossan 1 Introduction The development of a piece.
1 Shawlands Academy Higher Computing Software Development Unit.
LESSON 8 Booklet Sections: 12 & 13 Systems Analysis.
Chapter 8: Systems analysis and design
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
Higher Computing Software Development. Software Development Process There are 7 main stages involved in developing a new software program: Analysis Design.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
 Once the system has been installed it will be monitored to check whether it is working correctly. Sometimes problems with a system will not be found.
Advanced Higher Computing SOFTWARE DEVELOPMENT PROCESS.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
I Power Higher Computing Software Development The Software Development Process.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Iterative Nature of the Development Process Iteration = repetition or doing something over again. The software development process can be repetitive, especially.
The Software Development Process
1 Program Planning and Design Important stages before actual program is written.
Intermediate 2 Computing Unit 2 - Software Development.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Development Process Higher Computing Unit 2 – Software Development.
 Software Development Life Cycle  Software Development Tools  High Level Programming:  Structures  Algorithms  Iteration  Pseudocode  Order of.
The Hashemite University Computer Engineering Department
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
GCSE ICT 3 rd Edition The system life cycle 18 The system life cycle is a series of stages that are worked through during the development of a new information.
1 The System life cycle 16 The system life cycle is a series of stages that are worked through during the development of a new information system. A lot.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Software Design and Development Development Methodoligies Computing Science.
Advanced Higher Computing Science
Component 1.6.
IL Marking Get out your CPU / Memory answers Swap with someone else
Component 1.6.
Data Types Variables are used in programs to store items of data e.g a name, a high score, an exam mark. The data stored in a variable is entered from.
Different Types of Testing
Gary Hughes, South Oakleigh College
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Chapter Topics 2.1 Designing a Program 2.2 Output, Input, and Variables 2.3 Variable Assignment and Calculations 2.4 Variable Declarations and Data Types.
Algorithm and Ambiguity
Understand the Programming Process
Print slides for students reference
Designing and Debugging Batch and Interactive COBOL Programs
Unit# 9: Computer Program Development
Lecture 09:Software Testing
Programming Fundamentals (750113) Ch1. Problem Solving
An Introduction to Structured Program Design in COBOL
Software Development Life Cycle
Computational Thinking for KS3
Chapter 1 Introduction(1.1)
Understand the Programming Process
Algorithm and Ambiguity
Software Development Process
5 POINT PLAN THE SYSTEMS LIFE CYCLE ANALYSE DESIGN
A Level Computer Science Exam Technique
ICT Gaming Lesson 2.
COMPUTATIONAL THINKING COMPUTATIONAL THINKING IN PROGRAMMING
Software development process
The Software Development Process
Basic Concepts of Algorithm
Review of Previous Lesson
CHAPTER 6 Testing and Debugging.
Presentation transcript:

Higher Software Development

Core Text How to pass Higher Computing Chapter 2 – pages 43 - 60

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

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

Software Development – Topic 1 The Software Development Process

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

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

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

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

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

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

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

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

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)

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

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

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

Analysis

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

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

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

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

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 2 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

Checkup on Analysis

Design

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

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

Top Down Design Example

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)

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)

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?

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

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 2.1 wage = rate * number of hours Display wage

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.

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

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 3.1.1 Display well done message 3.2 Else 3.2.1 Display bad luck message

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

Example to breaking a problem down using a structured chart

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

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

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

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

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 2 marks Describe the design methodology known as Top Down Design with Stepwise Refinements 2 marks Describe one graphical design notation used during the design stage (you may use a diagram) 2 marks

Match Up Complete the Match Up Exercise on Analysis and Design

Implementation

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

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

Testing

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

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

Test Data TESTING NORMAL EXCEPTIONAL EXTREME CONDITIONS CONDITIONS

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

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

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

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

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

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

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.

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

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

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

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

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

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

Documentation

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

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

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

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

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

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

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 1 mark

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) 2 marks Describe the two guides which must be produced at the documentation stage. 2 marks

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.

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

Evaluation

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

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

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

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

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

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)

Glossary definitions Readable Modular

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

Maintenance

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

Maintenance Activities CORRECTIVE ADAPTIVE PERFECTIVE

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

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

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

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

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

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)

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%)

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

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

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

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

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