Software Development. Topic 1 The Software Development Process

Similar documents
Chapter 13: Program Development and Programming Languages

Higher Computing. Software Development. LO1 Software Development process

Chapter 13: Program Development and Programming Languages

How To Understand Programming Languages And Programming Languages

Algorithms, Flowcharts & Program Design. ComPro

El Dorado Union High School District Educational Services

Chapter 7: Software Development Stages Test your knowledge - answers

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Chapter 12 Programming Concepts and Languages

Java Programming (10155)

Stage 5 Information and Software Technology

Course MS10975A Introduction to Programming. Length: 5 Days

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Chapter 1 An Introduction to Computers and Problem Solving

GCE APPLIED ICT A2 COURSEWORK TIPS

Flowchart Techniques

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE

Good FORTRAN Programs

WESTMORELAND COUNTY PUBLIC SCHOOLS Integrated Instructional Pacing Guide and Checklist Computer Math

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N Video Game Design

Computer Science 1 CSci 1100 Lecture 3 Python Functions

50 Computer Science MI-SG-FLD050-02

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

KS3 Computing Group 1 Programme of Study hours per week

COMPUTER SCIENCE (5651) Test at a Glance

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Exhibit F. VA CAI - Staff Aug Job Titles and Descriptions Effective 2015

Computer Programming

Unit 1 Number Sense. In this unit, students will study repeating decimals, percents, fractions, decimals, and proportions.

ATSBA: Advanced Technologies Supporting Business Areas. Programming with Java. 1 Overview and Introduction

THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Writing Simple Programs

#820 Computer Programming 1A

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

18 Software. design. Learning outcomes. Credit value: 10

The Elective Part of the NSS ICT Curriculum D. Software Development

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

Visual Basic Programming. An Introduction

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Fundamentals of Programming and Software Development Lesson Objectives

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

EKT150 Introduction to Computer Programming. Wk1-Introduction to Computer and Computer Program

Chapter 2 Writing Simple Programs

2 SYSTEM DESCRIPTION TECHNIQUES

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving

Chapter 14. Programming and Languages. McGraw-Hill/Irwin. Copyright 2008 by The McGraw-Hill Companies, Inc. All rights reserved.

2. Analysis, Design and Implementation

Introduction to Python

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

ALGORITHMS AND FLOWCHARTS. By Miss Reham Tufail

Programming in Access VBA

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Writing in the Computer Science Major

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

Software Testing Interview Questions

SECTION 2 PROGRAMMING & DEVELOPMENT

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Some programming experience in a high-level structured programming language is recommended.

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Flowcharting, pseudocoding, and process design

ALGORITHMS AND FLOWCHARTS

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

McGraw-Hill The McGraw-Hill Companies, Inc.,

Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go

Software Design and Development. Stage 6 Syllabus

PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms

Programming Languages

Basic Testing Concepts and Terminology

Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm

Welcome to Introduction to programming in Python

CTI Higher Certificate in Information Systems (Engineering)

CSCI 3136 Principles of Programming Languages

[Refer Slide Time: 05:10]

Software testing. Objectives

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

Computer Programming I

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Custom Web Development Guidelines

Week 2 Practical Objects and Turtles

Lecture 1: Introduction

Understanding the IEC Programming Languages

A system is a set of integrated components interacting with each other to serve a common purpose.

River Dell Regional School District. Computer Programming with Python Curriculum

How To Develop Software

Oracle Data Integrator: Administration and Development

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

CS 241 Data Organization Coding Standards

Transcription:

Software Development Topic 1 The Software Development Process 1

The Software Development Process Analysis Design Implementation Testing Documentation Evaluation Maintenance 2

Analysis Stage

An Iterative process It is important to realise that the software development process is iterative in nature. This means that the problem will be revisited a number of times getting closer and closer to the required solution on each time round. 4

Fact Finding Analysis is a fact-finding process, and there are five key questions that need to be asked, often repeatedly. These key questions are: WHO? WHAT? WHERE? WHEN? WHY? 5

People involved at the very beginning Clients - the people who require the new system. They are the ones who need the new software developed. Project Manager - the leader of the software house. This person is responsible for the whole project and must supervise all steps and stages required. 6

Systems Analyst What is a systems analyst? A systems analyst observes, clarifies and models an existing system to assess its suitability for computerisation. In the process, the analyst could also find ways of improving the system. The systems analyst must have a sound technical background. They may once have been programmers. 7

Skills and techniques of the Systems Analyst The systems analyst must extract the clients needs document these needs in a formal way communicate these to the designers 8

Extracting the Clients Needs Extracting the clients needs is known as requirements elicitation. This is done by: interviewing the client s management personnel making observation notes of the client s business The analyst will also inspect information sources used by the client to keep track of their business. 9

Documentation The systems analyst must document the clients needs by drafting a formal report: system specification 10

The System Specification is the end result of the requirements elicitation is a written statement of exactly what the design team must go on to make It is often a legally binding contract It is extremely important to get this document right. Mistakes made later can be very costly. 11

Summary of the Analysis Stage Key Task: To define the extent of the software task to be carried out. Personnel: Client and Systems Analyst Documentation: The legally binding Software Specification

Design Stage

Design Representations There are a number of commonly used forms of design representation in common use. These are called algorithmns. Examples include: Graphical representations structure diagrams Flow Charts Textual representation pseudocode 14

An algorithm is a sequence of actions that, when performed in the correct order, will solve a problem or task in a finite number of steps. Example Here is a simple algorithm to convert a Fahrenheit temperature to Celsius: 1 Subtract 32 from Fahrenheit temperature 2 Multiply by 5/9ths to get Celsius temperature So, Design- What are Algorithms? 98.6 F - 32 = 66.6 66.6 * 5/9ths = 37 C What happens if you swap steps 1 and 2 - do you get the same answer?

Design- Using Pseudocode Here is the Fahrenheit conversion algorithm represented as pseudocode to be implemented as program code: 1.1 Get temp( F) 1.2 Set temp( F) = temp( F)-32 1.3 Set temp( C) = temp( F)*0.556 1.4 Display temp( C) Pseudocode is not specific to any programming language. It is a design notation that can be implemented by programmers in any programming language

Pseudocode Another Example Notice the numbering system 1. Display information 2. Get details 3. Do calculation 4. Display answer Refine step 2 2.1 display prompt 2.2 get value 2.3 while value out of range 2.4 display error message 2.5 get value 2.6 loop Top level design Simple English words in a familiar program form 17

Design- Using Structure Diagrams A Structure Diagram is another design notation that represents algorithms in a chart or graphical form Here is the Fahrenheit conversion algorithm represented as a structure diagram to be implemented as program code: Convert F to C Get temp( F) Set temp( F) = temp( F)-32 Set temp( C) = temp( F)*0.556 Display temp( C)

Design -Common Structure Diagram Symbols A procedure A loop A decision A single task

Design- Another Example Structure Diagram This example is for a simple tax payment procedure that decides what rate of tax a user must pay. Tax payment Get details IF earns > 30000 Display amount to be paid NO YES Low rate payable High rate payable

Design- Top-down Design Is the process of breaking a big problem down in to smaller sub-problems. Top-down design is where a task or problem is broken down into stages that can be solved as individual parts. This structure diagram illustrates a top-down approach to identifying the stages of the problem solution.

Design- Stepwise Refinement Stepwise-refinement is the process of refining stages down into steps until each step can be easily turned into code in a programming language.

Summary of the Design Stage Key Task: To design a method of solving the stated problem. Personnel: Systems Analyst and Project manager Documentation: A description of how the problem will be solved. This algorithm may be text based (pseudocode) or graphical (structured diagram)

Implementation Stage

Implementation The next stage involves turning the carefully structured design into a working solution. 25

Choosing an Environment Before we can implement a solution we must decide on the programming environment which is most suitable. Languages are generally designed for a specific purpose. 26

Programming Languages Language Algol Cobol Comal BASIC Fortran Java Pascal Prolog Purpose Science Business Education Education Science and Maths multimedia Education Artificial Intelligence 27

Implementation- Structured Listings Pseudocode 1.1 Get temp( F) 1.2 Set temp( F) = temp( F)-32 1.3 Set temp( C) = temp( F)*0.556 1.4 Display temp( C) A formatted printout of the program code is known as a structured listing. It includes indentation, white space, internal commentary and colour coded keywords. Program Code tempf = txttempf.text tempf = tempf-32 tempc = tempf*0.556 lbltempc.caption = tempc

Implementation- Creating Maintainable Code Code is easier to maintain when it is also very easy to read and understand. To achieve this you need. short main programs wise use of procedures and functions, creating variables close to where they re used (modularity) meaningful variable, constant, procedure and function names appropriate internal documentation using comments good program layout, including indentation, single statement lines, and spacing between sub-routines

Implementation- Example of Good Maintainability ' PROGRAM NAME : Final Circle Program ' AUTHOR : The teacher ' PROGRAM DESCRIPTION ' This program will ask the user to enter the radius of a circle ' which must be between 0 and 100. The program will then calculate and display the area and the circumference of the circle. ' Must declare all variables Option Explicit Private Sub Form_Load() 'Declare variables Dim radius As Single Dim area As Single Dim circumference As Single 'Get the radius Call get_radius(radius) 'Calculate the area of the circle Call calculate_area(radius, area) 'Calculate the circumference of the circle Call calculate_circumference(radius, circumference) 'Display the results of the calculation Call display_circle_details(area, circumference) End Sub

Implementation- Example of Good Maintainability Private Sub get_radius(radius) ' User enters the radius radius = InputBox("Please enter the radius", "Enter radius", _ "0", 1000, 3000) Call number_in_range(radius, 0, 100) ' Display radius lblradius.visible = True lblradius.caption = "Radius = " & radius End Sub Private Sub calculate_area_ (ByVal radius As Single, ByRef area As Single) 'Create a constant to represent pi Const pi = 3.14 'Calculate area area = pi * radius ^ 2 End Sub

Implementation- Example of Good Maintainability Private Sub number_in_range _ (ByRef number As Single, ByVal min As Single, ByVal max As Single) 'This is a Library Subroutine to check that a number is within a 'specific range 'The user is asked to renter when an invalid number is entered. 'Parameter number holds the value entered by the user 'Parameter min holds the minimum possible value that can be entered 'Parameter max holds the maximum possible value that can be entered Do If number < min Or number > max Then number = InputBox("Number is out of range._ Please re-enter a number between " & min & " and " & max, _ "Wrong entry", 0, 1000, 1000) End If Loop Until number >= min And number <= max End Sub

Implementation- Example of Poor Maintainability Private Sub Form_Load() x = inputbox( Enter the radius ) y = x * x * 3.14 z = (2 * x) * 3.14 lblmadonna = "Area = " & y lbleltonjohn = "Circumference = " & z End Sub

Summary of Implementation Stage Key Task: Write code in a chosen programming language based on the design. Personnel: Programmer and Project manager Documentation: A structured listing of the programming code showing formatting features such as colour coded commands, indentation, comments.

Testing Stage

Testing- Features of High Quality Testing Creating a set of test data that tests every possible combination of inputs is extremely difficult and unrealistic. Testing should therefore strive to be both systematic and comprehensive Testing can only show errors but can t guarantee that a program is 100% error free.

Testing- Bug Type 1 Syntax Errors Syntax errors- breaking the rules for creating valid instructions in a particular programming language. Common sources include Missing out some keywords Using keywords in the wrong order Spelling mistakes in keywords, function or procedure, variable and object names

Testing- Bug Type 2 Logic Errors Logic errors- carrying out valid instructions that don t solve the problem the program is designed to solve. Common sources include Carrying out the wrong type of calculation Performing the wrong type of comparison Creating loops that do not execute the correct number of times

Testing- Bug Type 3 Run Time Errors Run time errors- errors that only occur when the program is executed. Common sources include Referring to an object or control that doesn t exist Trying to access an array value that doesn t exist because it s outside the index range of the array Opening a file or other operating system object that isn t there.

Comprehensive Testing Test Data Tables The program tester should set up a test log Input Reason Expected 15 Normal Test Mark Output You have passed Actual Output You have failed Faults that become evident are known as bugs The test logs will be sent back to the programmers who then go through the process of debugging

Comprehensive Testing Types of Test Data The three types of testing are normal, extreme and exceptional. 1. Normal data - typical data that would be expected. 2. Extreme data - the data is at the extreme limits allowed and rejected data. e.g. if an age is to be between 0 and 120 then these two values are tested 3. Exceptional data - the data is not suitable for the program e.g. (i) values outside agreed ranges (ii) letters instead of numbers.

Comprehensive Testing Example Test Data Example Program should only accept whole values in the range 0 to 100: Test Data Normal data: 2, 34, 66 etc. Extreme data: 0, 100 Exceptional: -1, 1000000, abc, 2.9

Systematic Testing Testing is itself a structured process starting with individual lines of code and building up to a test of the entire system. 1. Structured Walkthrough - Each line of logic in the code is stepped through by the programmer using a printed listing. 2. Component or procedural testing Check that every individual procedure and function work correctly

Systematic Testing 3. Module testing Check that all the individual procedures and functions link together correctly as a module. 4. System (Alpha) testing - Finally, the overall system made up of tested sub systems is tested.

Testing - Stages of Testing 6. Acceptance (Beta) testing - is when independent test groups and/or the client try out the software and report back any bugs to the development team prior to final release. If the program has been developed for a specific client it will be installed and tested by the clients If the program has been developed for general sale it will be installed on potential clients systems

Task A procedure has been written which inputs the prices of components. The cheapest is a 5p, the dearest 99.99. Devise a set of test data for this procedure. Test Type Test Data Expected Result Actual Result Normal 3.50, 45, 89.32 Input accepted Extreme 0.05, 99.99 Input accepted Exceptional 0.00, -1, 100.00, abc, <nothing> Input rejected suitable message displayed. 46

Summary of the Testing Stage Key Task: To test that the program meets the specification and that it is reliable and robust Personnel: Independent Test Group (ITG) Documentation: Sets of test data and test reports. The test data will have predicted (before running) and actual (after running) output.

Documentation Stage

Documentation- User Guide User Guide can include the following 1. how to install the software 2. how to start and use the software 3. a list of commands and how to use them 4. it may also contain pictures of forms, menus and icons Audience: everyone who will use the new software

Documentation- Technical Guide Technical Guide can include the following 1. the hardware requirements 2. the software requirements 3. how to customise the software 4. how to troubleshoot any problems 5. any problems when installing and running software across a network Audience: anyone installing and setting up the software

Documentation NOTE: Each stage of the SDP produces documentation: A Software specification D Algorithm I Structured listing - Program code (internal commentary) T Test report D User guide and technical guide E Evaluation report M Maintenance report 51

Summary of the Documentation Stage Key Task: To produce documentation to be distributed with the software. Personnel: Client, Programmer, Project Manager Documentation: User Guide and Technical Guide

Evaluation Stage

Evaluation- Key Areas in the Evaluation Report Robustness Fitness for Purpose Reliability Evaluation Maintainability Portability Efficiency

Evaluation- What do robustness and Robustness reliability mean? A program is robust if it does not crash when invalid data is input or unexpected results are generated. Reliability A program is reliable if for all normal and extreme inputs the output from the program matches the expected output. This happens when the program is free from errors.

Evaluation- What do portability and Portability efficiency mean? A program is portable if it can run on a range of different computer hardware and operating systems software with little or no changes needed to the program code Efficiency A program is efficient if it runs as fast as possible and does not use up more system resources than necessary. System resources include things like processor time, main memory and backing storage requirements

Evaluation- What do maintainability and Maintainability fitness for purpose mean? A program is maintainable if it can easily be modified and updated to fix errors, add new features or work with new hardware and software. Fitness for Purpose A program is fit for purpose if it fulfils the criteria set out in the software specification.

Summary of the Evaluation Stage Key Task: To report upon the quality of the software according to given criteria. Personnel: Systems Analyst and Project manager Documentation: A evaluation report accompanying the software to the client. It compares the software to the original specification and also comments on the quality of the software.

Maintenance Stage

Maintenance Begins once the software has been released and put into use. Involves the client who uses the software and the programmers to make any necessary changes. There are 3 types of maintenance. Corrective: Fixing any errors that were not detected during the testing phase. Adaptive: To alter the software to work with a new operating system or new hardware. Perfective: Add new functionality at the request of the client.

Maintenance Types of maintenance carried out and typical values for each kind of maintenance Corrective (17%) Adaptive (18%) Perfective (65%) 70 60 50 40 65 30 20 17 18 10 0 %

Maintenance- Who pays for it? Adaptative and perfective maintenance are paid for by the client Corrective maintenance is paid for by the developer because it s due to errors that should have been detected and corrected during the Testing phase.

Summary of the Maintenance Stage Key Task: To make changes to the software after it has been handed over to the client. Personnel: Usually the project manager, programmer and client will be involved. Documentation: A maintenance report will detail and confirm the maintenance carried out.