Developing Software Appli cations Software Life Cycle Specification Design Implementation Testing Maintenance
Dec 21, 2015
Developing Software Applications
Software Life Cycle
Specification Design Implementation Testing Maintenance
Developing Software Applications
User identifies needFor system Feasibility study
Modify design
Project abandoned
Test
Enter test data
Write programs
Design system
System possible
System meetsRequirements
Debug
System works
Enter real data
Run in parallel with Existing system
Document , Produce User manuals
Review
System goes ‘live’Users satisfied
No
No
Yes
YesNo
Developing Software Applications
Specification
Stated clear objectives and requirements of the application
Should be– Specific– Agreed objectives– A statement of constraints and resources– Scope
Represents agreement between client and developer
Developing Software Applications
specification
The specification is the result of stages of systems analysis which include:– Feasibility– Fact finding– Analysis
Usually results in a conceptual map of the system known as a Data Flow Diagram and an analysis of the data storage known as an Entity Relationship Diagram
Developing Software Applications
Design
From the requirements programmer/analyst produces a design
Consists of three main parts– Input and output design– Data storage requirements– Process design
Roughly correspond to– DFD (basic requirements of I/O and processes)– ERD (break of data storage within the system)
Developing Software Applications
Design
DFD defines– Data going into and out of the
system– Location and nature of data– Processes and subprocesses
acting on the data– Top-level data stores
Can be used to design Inputs/outputs to cater for likely user type
Functional requirements can be extracted and converted into program logic
Entity analysis enables the programmer to determine the breakdown of data into
– Internal data structures– External file structures– Process mapping
between internal and external data structures (relationships)
Developing Software Applications
1
receivebooking requests
local reception
5
administer local unfilled bookings
h/o local admi 6
invoiuce and maintain customer records
h/o accounts
3
record vehicle departure and return
depot staff
4
find and notifydrivers
driver admin
2
fill bookingsheet
local booking
d1 booking requests
d3 booking sheet
d3 booking sheets
d2 driver instructs
Example DFD
Developing Software Applications
employee
Client
Appointment
Clinic
PrescriptionTreatment
Prescription line
Attendance
Example ERD
Developing Software Applications
Design
From the input / output requirements we construct– Dialogue design– A map linking processes to the dialogue
Use a state transition diagram (STD) First design screens (dialogue) which use
functions consistent with user requirments Link them together !! Show linking mechanism
Developing Software Applications
Design (State Transition Diagram example)
M
Menu
subjectauthor
find booktake out
reserve
return
M
MM
M1
2
3
4
56 M
Developing Software Applications
Design of Processes
functional analysis used to design resulting code
Break down design into logical blocks Stepwise refinement Functional decomposition
Developing Software Applications
Functional Analysis
Get upGo to UniversityFor as long as there is a lecture to attend
Go to lectureTake notes attentively and enthusiastically!
Eat teaGo to townFor as long as you have money and are thirsty
Buy a drinkGo home
If you have spare money go by taxi
Else walk
Go Function
College Function
Food Function
Go out Function
Go home Function
Developing Software Applications
Process Design Notation
Top Down design notation – Diagrammatic notation; sequence,selection,
iteration– Pseudo Code/ Structured English
Object Design– Methods applicable to object defined as elements of
object– Uses object modeling to indicate behaviour of
objects
Developing Software Applications
Top-Down design
Take main functions Systematically break into smaller chunks Use a method to ‘represent’ solution Stop when resulting modules are small enough
to be easily implemented (but not too cumbersome)
‘Clever’ chunking results in reusable modules
Developing Software Applications
0 < O R > 100 < 40 < 60 < 80 else
In p u tN am e & E xam
oE rro r
oR e fe rra l
oP ass
oM erit
oD is tin c tion
C h eckE xam
O u tp u tN am e & G rad e
oG rad e
oC lear
C h eck E ven t *
E xam G rad e
Jackson Structured Design
Inputs
Output
Developing Software Applications
Nassi-Schneidermann
Enter details
While user input
If Not Clear
Clear
RP M D E
While valid input If mark entry enter name enter mark Case {mark 0 - 39 “refer”
mark 40 – 59 “pass”mark 60 – 79 “merit”mark 80 – 100 “Distinction”}
else “Error”
output name and grade Else ClearOutput mark & name
Developing Software Applications
Data Design
Data dictionary ------- can use JSP / NSD to File structure illustrate ranges etc.
Name Type Description
studentexamgrade
StringIntegerString
Stores Student NameStores Exam Mark 0-100%Stores Exam Grade•Error•Pass•Merit•Distinction
Developing Software Applications
Testing
Test plan Use to test design Dry running technique Equivalent to msgboxes to show current state
of variables Use same plan to test code cf results with
design phase Testing has basic strategy
Developing Software Applications
Testing
Purpose of testing– Designing test cases and test case data with
corresponding input and expected output
Black and White box testing– Difference between these two categories of test; – when test data can be designed and purpose.
Developing Software Applications
White and Black Box Testing
Black Box testing (tests design and coding)– Categories
Functional tests Invalid Tests Boundary Tests Special tests
White Box testing (performed after code written)– Categories
Path Analysis Complex Conditions
Developing Software Applications
Example test Plan
INPUT OPERATION
OUTPUT
Student
Mark
Expected Actual
1-Bob 35 Calc Grade
Bob: Referral Bob: Referral
2-Bob 45 Calc Grade
Bob: Pass Bob: Pass
3-Bob 65 Calc Grade
Bob: Merit Bob: Merit
4-Bob 85 Calc Grade
Bob: Distinction Bob: Distinction
5-Bob -5 Calc Grade
Error Message Error Message
6-Bob 105 Calc Grade
Error Message Error Message
7-Bob abc Calc Grade
Error Message Error Message
8-Bob abc Clear Clear Text Boxes
Clear Text Boxes
Developing Software Applications
Maintenance
Constant refinement Until:
– System works– Client satisfied– Terms of specification met
Then– Re-evaluation– Changes to specification
Start again
Developing Software Applications
User identifies needFor system Feasibility study
Modify design
Project abandoned
Test
Enter test data
Write programs
Design system
System possible
System meetsRequirements
Debug
System works
Enter real data
Run in parallel with Existing system
Document , Produce User manuals
Review
System goes ‘live’Users satisfied
No
No
Yes
YesNo