Software Development
Mr Arthur
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
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
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
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
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)
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
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?
Aims of the Lesson
Evaluation Stage of SDP Complete SDP Past Paper Questions
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
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?
Aims of the Lesson
To go over the Maintenance Stage of the SDP Process
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
Aims of the Lesson 4
To exam in detail the Maintenance Stages of the SDP
To complete the baby programming task in pairs
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
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
Aims of the Lesson 5
People involved in SDP Process Documents created
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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”
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
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
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
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
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
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
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