1 Dimensional Arrays
Download
Report
Transcript 1 Dimensional Arrays
Software Development
Process
Software Development Process Stages
1.
2.
3.
4.
5.
6.
7.
Analysing the problem:
Designing the program:
Implementing the design:
Testing the design:
Documenting the design:
Evaluating the design:
Maintaining the software:
What do we need to do?
How do we do it?
Writing the program
Making sure it works
User guides, Technical manuals
Limitations and improvements
Correcting, adapting and
perfecting
A Dance In The Dark Every Monday
Iteration
An important aspect of software development is that it is a
iterative process
New information discovered in one stage of the process
might result in previous stages being altered.
For example errors in the testing stage might mean
changes have to be made to the design or the
implementation of the program
People Involved
Systems Analyst
Project Manager
Client
Programmer
Independent Test Group
Analysis Stage
What Happens in 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
What is Analysis?
Analysis is a fact finding process aimed at answering
the following questions :
• WHO?
• WHEN?
• WHAT?
• WHERE?
• WHY?
Analysis is the most important part of the software
development process. Changes can be identified
early on thus reducing the amount of extra work and
cost involved in trying to make changes later.
Tasks the Systems Analyst Carries Out
Analysis starts with discussions between the client
and a systems analyst. The analyst will carry out
three main tasks.
• observe the system currently in use.
• clarify the system currently in use.
• model the system currently in use.
System Analyst Skills
The systems analyst needs to be able to
• extract the needs of the client who may not be
technically skilled.
•document these needs in some formal way.
• communicate these needs to the people who will
actually design the computerised system.
Analysis- Gathering Requirements
This can be called requirements elicitation and can take
some time. Difficulties may arise due to either the client’s
lack of awareness of the capabilities of the computerised
system or the analyst’s lack of knowledge of the client’s
business operations.
The analyst will proceed through:
• a series of interviews with the client’s management team
and workforce
• make observation notes of what actually happens in the
workplace,
• use questionnaires and literature, e.g. manuals, to
determine how the existing system operates.
Design Stage
Design
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)
Design- What are Algorithms?
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,
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
1. Get tax details
2. Do tax calculation
3. Display tax payable
Refine step 1
1.1
display prompt
1.2
get wages
1.3
while wages out of range
Notice the 1.4
display error message
numbering 1.5
get wages
system
1.6
loop
Top level
design
Simple English
words in a
familiar
program form
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
IF earns >
30000
Get details
NO
Low rate
payable
Display amount
to be paid
YES
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.
Implementation Stage
Implementation
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.
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
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
Testing Stage
Testing
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.
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 i.e a sample of
different kinds of inputs should be used to test
the full range of operating conditions.
Testing
can only show errors but can’t
guarantee that a program is 100% error free.
Testing- Test Data Tables
The program tester should set up a test log
Input
Reason
Expected
Output
Actual
Output
15
Normal
Test
Mark
You have
passed
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
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.
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
as well as -1 and 121.
3. Exceptional data - the data is not suitable for the
program e.g.
(i)
values outside agreed ranges
(ii) letters instead of numbers.
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, -1 ,100, 101
Exceptional: -1, 1 000 000, abc, 2.9
Testing - Stages of 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 - A procedure
can be tested by creating another procedure called a
driver procedure to provide the necessary data. Once
the test has proved satisfactory, the driver procedure is
deleted.
Testing - Stages of Testing
3. Module testing - This involves testing a number of
already tested individual procedures to make sure that
they link together correctly as a module. Again a driver
procedure is used to call the module procedures in the
correct sequence.
4. Sub System testing - In the same way, groups of
modules which are designed to communicate are
tested.
5. System (Alpaha) 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
Documentation Stage
Documentation
Key Task: To produce documentation to be
distributed with the software.
Personnel: Client, Programmer, Project
Manager
Documentation: User Guide and Technical
Guide
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
For 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
For anyone installing and setting
up the software
Documentation- Developers
These documents are created during the other stages
of the software development process
Software
(Requirements) Specification
Design of the program
Structured Listing of the program
Test Data Tables
Software Evaluation
Evaluation Stage
Evaluation
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.
Evaluation- Key Areas in the Evaluation
Report
Robustness
Fitness for
Purpose
Reliability
Evaluation
Maintainability
Portability
Efficiency
Evaluation- What do robustness and
reliability mean?
Robustness
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
efficiency mean?
Portability
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
fitness for purpose mean?
Maintainability
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
Maintenance Stage
Maintenance
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.
Maintenance
Types of maintenance carried out and
typical values for each kind of maintenance
70
Corrective (17%)
65
60
Adaptive (18%)
50
Perfective (65%)
40
30
20
17
18
10
0
%
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- 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.