+ All Categories
Home > Education > Software development slides

Software development slides

Date post: 11-Nov-2014
Category:
Upload: iarthur
View: 1,606 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
52
Software Development Mr Arthur
Transcript
Page 1: Software development slides

Software Development

Mr Arthur

Page 2: Software development slides

The Software Development Process

The SDP Process is an Iterative process This means that the stages are visited then revisited When developing new software the developer would

follow these steps A Analysis Dance Design In Implementation The Testing Dark Documentation Every Evaluation Monday Maintenance

Page 3: Software development slides

Analysis Stage Analysis = Deciding what type of software you

want to create, and what features you want it to have.

At the Analysis stage the Customer, Systems Analyst and Programmer agree on the software required and create a Software Specification

Software Specification = a contract and legally binding document that outlines what the developer is going to create

Page 4: Software development slides

Design Stage At the Design Stage the problem is broken down and a

method of solving the problem is identified Design Notations

Algorithms – pseudocode (text based) Where you break the program up into steps in English

Structure Diagrams Where you create a graphical representation of the steps Linked boxes represent the difference subprograms Links go left to right

Flow Charts Use differently shaped boxes connected with arrows Triangle may be if statement Square may be use input Circle may be output

Page 5: Software development slides

Aims of Revision Lesson 2

1. Revise last lesson1. Analysis, Design,

2. Continue with The Software Development Process

1. Implementation

2. Testing

3. Documentation

4. Evaluation

5. Maintenance

3. Continue with peer teaching exercise on specified topic

4. Begin revision questions on the Shared Area on SDP

Page 6: Software development slides

Implementation and Testing Stages Implementation The programmer coding the

algorithm into the chosen language

Testing May involve an Independent

Test Group to make sure the program meets the Program Specification

Program should accept 1-10 Normal = data within the normal

range (2-9) Extreme = data at the

boundaries of the normal range (1 and 10)

Exceptional = data outside the normal range (34, 56 etc)

Page 7: Software development slides

Documentation Stage

Documentation User Guide = A set of instructions on how to install and use

the software. May include tutorials and FAQs Technical Guide = This document details the technical

requirements i.e RAM, disk space. It may also info on previous versions and upgrades

Page 8: Software development slides

Lesson Starter

What is the difference between a User Guide and a Technical Guide

Describe 3 different types of Testing What is the difference between Alpha and

Beta Testing?

Page 9: Software development slides

Aims of the Lesson

Evaluation Stage of SDP Complete SDP Past Paper Questions

Page 10: Software development slides

Evaluation

The client will receive an Evaluation Report outlining whether the software is Fit For Purpose (does it do what it is meant to do?)

Software is evaluated in terms of: Robustness

The ability of software to cope with input errors

Reliability How well it operates without stopping due to design faults (How it copes

with the correct input)

Efficiency In terms of the amount of memory and processor time the software uses

Portability The ability to run on different Operating systems

Page 11: Software development slides

Evaluation

Maintainability This reflects how easy it is to make changes

Readability = does it contain comments, white space, meaningful variable names, indented loops?

Modularity – does it uses functions (UCASE etc) and Subroutines (Call Getinfo)

Does it use a familiar programming language?

Page 12: Software development slides

Aims of the Lesson

To go over the Maintenance Stage of the SDP Process

Page 13: Software development slides

Software Revision Quiz

1. List the 7 stages of the Software Development Cycle

2. What document is created at the Analysis Stage

3. Give 2 Design notations that are used at the Design stage

4. A program asks for a number between 1 and 100. Name 3 tests that would be carried out to fully test the program. Give examples of the test data

5. Give 2 documents that are created at the Documentation stage of the SDP process

Page 14: Software development slides

Aims of the Lesson 4

To exam in detail the Maintenance Stages of the SDP

To complete the baby programming task in pairs

Page 15: Software development slides

Maintenance Stage

Maintenance Corrective

Fixing errors in the program Corrective Maintenance is not paid for by the customer as the

software does not do what it is meant to and does not match the Software Specification

Adaptive Changing the software to run on a different Operating System

or environment Perfective

Adding new features and improving the program in some way The customer would pay for this as not in Software Spec

Page 16: Software development slides

SDP Keywords Top Down Design

Where you break a programming problem down into simpler stages Also known as Stepwise Refinement

Bottom Up Design Where the programmer looks at current solutions available to solve

a programming problem, possibly adapting existing modules Acceptance Testing

Using Alpha and Beta testing to prove to Client that the software is working fully

Exhaustive Testing Where you test a program with every possible input

Page 17: Software development slides

Aims of the Lesson 5

People involved in SDP Process Documents created

Page 18: Software development slides

People Involved in SDP

Client The client commissions the software, describing the purpose of the

software to the Analyst

Systems Analyst The Systems Analyst, evaluates the problem statement, consults with the

client and drafts the Software Specification

Project Manager This person takes sole responsibility for keeping the development of

software on track, managing time, budgets etc The Project Manager liaises between the Systems Analyst and

Programmer

Programmer The programmer is responsible for converting the algorithm or flow chart

into code

Page 19: Software development slides

Documents Created

Analysis = Software Specification Design = Algorithm, Structure Diagram, Flow Chart Implementation = Structured Listing

Print out of code

Testing = Test Report Report outlining Normal, Extreme, Exceptional tests

Documentation = User Guide/Technical Guide Evaluation = Evaluation Report

Document outlining Robustness, Reliability, Efficiency, Portability, Maintainability

Maintentance = Maintenance Report Outline Correct, Adaptive, Perfective Maintenance if completed

Page 20: Software development slides

Type of Languages

Procedural Language The most common kind of programming

language Sometimes referred to as Imperative

languages Use high level languages with commands that

give instructions to the computer Have clearly defined start and finish points Pascal, C, True Basic

Page 21: Software development slides

Type of Languages Declarative Language

In this type of language the programmer writes a series of facts and rules (knowledge base), for example

Mammal(monkey). The user would then type in a Query to search the

knowledge base It would search the knowledge base by pattern

matching Prolog is an example Used in Artificial Intelligence for Expert Systems, Vision

Systems etc

Page 22: Software development slides

Type of Languages

Scripting Language This type of language is used to embed in an

Application, for example writing a piece of Scripting Code for a Macro

Macro = a stored list of actions that can be attached to a keypress

These simplify the use of frequently used instructions

Page 23: Software development slides

Type of Languages

Event Driven Language These languages are similar to Procedural

languages ,however, the code is attached to objects, such as buttons and are executed when an Event happens e.g. clicking on the Button or moving the mouse

Page 24: Software development slides

Aims of Revision Lesson 6 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages

Today’s Lesson Translation

Interpreter V Compiler

Page 25: Software development slides

Translators A translator is used to convert high level

languages to machine code Interpreters

An Interpreter translates programs one line at a time The Interpreter must be present in RAM during the

translation process The Interpreter reports errors line by line rather than

at the end = makes it easier for beginners to fix bugs

Interpreters are slower than Compilers as each line of code is translated each time the program is run

Page 26: Software development slides

Compilers A Compiler translates the HLL (Source code) into

Machine Code (Object Code) The Object Code runs very fast as it is in the

Computers own language e.g. machine code The object code can be saved and run without the

Compiler which means you don’t need the Compiler present in RAM

Compilers do not identify errors line by line If you have a loop which loops 100 times the Compiler

would not go round the loop translating it 100 times

Page 27: Software development slides

Module Libraries

Module libraries contain prewritten and pretested sections of code.

Advantages You do not need to write code for problems that

have already been solved The code has already been checked for errors The modules will already have well documented

code

Page 28: Software development slides

SDP Quiz

1. Name the document produced at the end of the Analysis Stage?

2. Explain why the SDP is often referred to as being an Iterative process?

3. Describe the purpose of a Flow Chart, use a diagram

4. Give 2 ways of improving the readability of a program

5. State the variable type that would be used to store a yes/no

Page 29: Software development slides

SDP Quiz6. Name the type of programming language used to create

macros

7. Name the type of programming language used in AI to represent facts and rules

8. Pseudocode should include data flow. State the purpose of data flow?

9. What is the difference between Alpha and Beta testing?

10. Several months after the software has been in use, the bank asks RightIT to include another option in a menu. What type of Maintenance is this, Justify your answer

Page 30: Software development slides

SDP Quiz

11. What is the difference between reliability and robustness?

12. A module library will save programmers times as they will not have to code or test these modules. State one other advantage of using modules

13. What type of programming language would be used with a GUI interface? Justify your answer

14. What is the difference between a Top Down and a Bottom Up approach to programming

15. Give 2 differences between a User Guide and a Technical Guide

Page 31: Software development slides

SDP Quiz

The options selected during the day are stored as a list. The bank would like the software to calculate the number of times the mobile top up option appears on the list. Use pseudocode to design the algorithm to carry out this calculation

1.1 For each option in the list

1.2 if current option equals “Mobile Top Up” then

1.3 add 1 to counter

1.4 end if

1.5 Close for loop

Page 32: Software development slides

Aims of Revision Lesson 6 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance

Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages Compilers/Interpreters Module libraries

Today’s Lesson Systematic Comprehensive Testing

Page 33: Software development slides

Testing

Systematic Systematic testing means

that your testing follows a plan and it not haphazard

Use a Test Plan1. What program is being

tested

2. What should the program do?

3. List suitable test data

4. Plan expected results or desired outcomes

Comprehensive Testing Test your program as

thoroughly and completely as you can

Use alpha and beta groups

Use normal, extreme and exceptional tests

Try to complete exhaustive testing if possible

Page 34: Software development slides

Aims of Revision Lesson 7 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance

Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages Compilers/Interpreters Module libraries Systematic Testing Comprehensive Testing

Today’s Lesson Simple Variable types String Manipulation

Page 35: Software development slides

Variable Types

String – used for storing text

Integer – used for storing positive and negative whole numbers

Single – used for storing real numbers (non whole)

Boolean – used for storing true/false

String Manipulation Concatenation

This is where you add together strings

Use & key

Firstname = “Happy”

Surname = “Gilmour

Username = Firstname & Surname

Page 36: Software development slides

String Manipulation

Substrings This is where you slice strings and can manipulate

certain parts firstname = “happy” substr = left(firstname, 1)

This would store the h substr = right(firstname, 3)

This would store the ppy substr = mid(firstname, 2,3)

This would store the app

Page 37: Software development slides

Aims of Revision Lesson 8 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages Compilers/Interpreters Module libraries Systematic Testing Comprehensive Testing Today’s Lesson Simple Variable types String Manipulation

Formatting of I/O 1 Dimensional Arrays

Page 38: Software development slides

Formatting of Input/Output

Arranging the appearance of the data on the screen during I/O

ExamplepicDisplay.print “Hello”; tab(20); “Happy”

You could also use functions to alter the colour, font style, alignment etc of the output

NewFont(fnt.Name, 12, FontStyle.Bold)

Page 39: Software development slides

1 Dimensional Arrays

Where you store a list of data of the same data type

Each element of the array is identified by the variable name and index number Name(1) Name(2) Name(3)

When declaring them at the start the user needs to state the name and size of the array

Dim name(1 to 5) as string

Page 40: Software development slides

Aims of Revision Lesson 8 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages Compilers/Interpreters Module libraries Systematic Testing Comprehensive Testing Today’s Lesson Simple Variable types String Manipulation Formatting of I/O 1 Dimensional Arrays

Local/Global Variables

Page 41: Software development slides

Local/Global Variables

Local Variables Local variables exist only

within a subprogram and cannot be accessed from elsewhere in the code

Reduces the possibility of wrongly changing the contents of a variable

Teams of programmers can work independently as variables have limited scope and using different local variable names has not effect on other parts of the program

Global Variables Global variables are

created in the main part of the program and can accessed from any subprogram

The scope of a Global Variable is the entire program, including all subprograms

Page 42: Software development slides

Aims of Revision Lesson 8 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages Compilers/Interpreters Module libraries Systematic Testing Comprehensive Testing Today’s Lesson Simple Variable types String Manipulation Formatting of I/O 1 Dimensional Arrays Local/Global Variables

Parameter Passing By Value By Reference

Page 43: Software development slides

Parameter Passing By Value

When a parameter is passed by value into a subroutine, a copy is made of the variable

The contents of the original variable is not changed

In parameter You pass byval if you want

to use the variable but not make changes to its contents

By Reference Passing by reference

allows data to be passed into a subroutine, changed and then passed back out

It works by passing the address of the variable

2 way data transfer

Page 44: Software development slides

Aims of Revision Lesson 9 Software Development Process

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance Top Down/Bottom Up People Involved in SDP Documents Created Types of Languages Compilers/Interpreters Module libraries Systematic Testing Comprehensive Testing Today’s Lesson Simple Variable types String Manipulation Formatting of I/O 1 Dimensional Arrays Local/Global Variables Parameter Passing

By Value By Reference

Multiple Selection Sub routines Functions

Page 45: Software development slides

Multiple Selection You use If statements if you want to make decisions If….then……elseif…….else etc Case statements are used when there are multiple

outcomesCase “A”

picDisplay.print “Excellent Pupil”

Case “B”

picDisplay.print “Good Pupil”

Case “C”

picDisplay.print “Ok Pupil”

Case “D”

picDisplay.print “Unhappy Teacher”

Page 46: Software development slides

Functions/SubRoutines

Functions Similar to

SubRoutines but they can only return 1 value

answer = ucase(answer) uname = left(answer,3)

SubRoutines Sections of code which

do specific tasks These are called from

the Main Body of code You pass parameters

to and from these SubRoutines

They can return multiple values

Page 47: Software development slides

Prelim Revision Quiz1. State the number of bits required to represent 65,536 colours

2. State the number of bits required to represent 262,144 colours

3. State 2 methods of creating a Macro

4. Describe 2 benefits to the programmer of writing modular code

5. Explain why it is good practice to avoid the unnecessary use of Global variables?

6. Use a Diagram to describe the difference between serial and parallel data transmission

7. I have a 4 by 3 inch image with a Res of 650 dpi using 14 bit colour depth. Calculate the storage requirements

Page 48: Software development slides

Standard Algorithms

Counting Occurrences5.1 Set the Counter to 0 

5.2 Loop round for all the positions in the array

5.3 If the current position is “Chips”

5.4 Add 1 to Counter

5.5 End If

5.6 Close loop

Page 49: Software development slides

Standard AlgorithmsFind Maximum

3.1 Set the lowest place in the array to maximum

3.2 For the size of the array

3.3 If the current score is higher than maximum then set to maximum

3.4 End if

3.5 Loop

Linear Search

4.1 Ask user for the target golfer

4.2 loop for each item in the list

4.3 If current item = target value then

4.4 Display message showing their score

4.5 Else display an error message

4.5 end if

4.6 end loop

Page 50: Software development slides

Standard AlgorithmsInput Validation1.1 Get name of golfer and score for the round

1.2 Do while score < 55 and score > 120

1.3 Display an error message, prompt user to re-enter

1.4 End loop

Find Minimum2.1 Set the lowest place in the array to minimum

2.2 For the size of the array

2.3 If the current score is lower than minimum then set to minimum

2.4 End if

2.5 Loop

Page 51: Software development slides

Software development process ♦ 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 development process ♦ 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

Page 52: Software development slides

Software development languages and environments ♦ Description and comparison of procedural, declarative and event-driven languages ♦ Comparison of the functions, uses and efficiency of compilers and interpreters ♦ Description of the features and uses of scripting language (including creating and editing a macro) ♦ Explanation of the need for and benefits of scripting languages ♦ Description of the use of module libraries

High level programming language constructs ♦ Description and exemplification of the following constructs in pseudocode and an appropriate high level

language: string operations (concatenation and substrings), formatting of I/O, CASE (or equivalent multiple outcome selection)

♦ Description and exemplification of real, integer and boolean variables; and 1-D arrays ♦ Description and exemplification of procedures/subroutines/subprograms, user-defined functions, modularity,

parameter passing (in, out, in/out), call by reference/value, local and global variables, scope Standard algorithms ♦ Description and exemplification of the following standard algorithms in pseudocode and an appropriate high

level language: - linear search - counting occurrences - finding min/max


Recommended