Title: Software Life Cycle
1Software Life Cycle
- Specification
- Design
- Implementation
- Testing
- Maintenance
2No
User identifies need For system
Project abandoned
Feasibility study
System possible
Modify design
Design system
Write programs
System meets Requirements
No
Debug
Test
Enter test data
Yes
System works
Run in parallel with Existing system
Document , Produce User manuals
Enter real data
Review
Yes
No
System goes live
Users satisfied
3Specification
- 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
4specification
- 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
5Design
- 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)
6Design
- 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)
7Example DFD
8Example ERD
employee
Client
Clinic
Appointment
Attendance
Treatment
Prescription
Prescription line
9Design
- 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
10Design (State Transition Diagram example)
subject
author
5
reserve
6
M
1
M
Menu
M
4
M
3
return
M
find book
2
take out
11Design of Processes
- functional analysis used to design resulting code
- Break down design into logical blocks
- ð Stepwise refinement
- ð Functional decomposition
12Functional Analysis
- Get up
- Go to University
- For as long as there is a lecture to attend
- Go to lecture
- Take notes attentively and enthusiastically!
- Eat tea
- Go to town
- For as long as you have money and are thirsty
- Buy a drink
- Go home
- If you have spare money
- go by taxi
- Else walk
Go Function
College Function
Food Function
Go out Function
Go home Function
13Process 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
14Top-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
15Jackson Structured Design
Inputs
Output
16Nassi-Schneidermann
While user input
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 Clear
If Not Clear
Enter details
Clear
R
P
M
D
E
Output mark name
17Data Design
- Data dictionary ------- can use JSP / NSD to
File structure illustrate ranges etc.
18Testing
- 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
19Testing
- 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.
20White 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
21Example test Plan
22Maintenance
- Constant refinement
- Until
- System works
- Client satisfied
- Terms of specification met
- Then
- Re-evaluation
- Changes to specification
- Start again
23No
User identifies need For system
Project abandoned
Feasibility study
System possible
Modify design
Design system
Write programs
System meets Requirements
No
Debug
Test
Enter test data
Yes
System works
Run in parallel with Existing system
Document , Produce User manuals
Enter real data
Review
Yes
No
System goes live
Users satisfied