Software Development Methodology

Download Report

Transcript Software Development Methodology

CS101 Introduction to Computing
Lecture 20
SW Development Methodology
1
During the last lecture …
•
We discussed the role of programming
languages in computing
•
We also discussed the differences among
low- & high-level, interpreted & compiled,
and structured & object-oriented
programming languages
•
We also discussed the object-oriented and
the structured methodologies for SW design
2
Any Spaghetti
Other SW Design
DesignMethodologies?
Methodology
The most popular software design (programming)
methodology
3
Today’s Lecture
•
Development process of reasonably complex
SW systems does not consist of “coding”
only
•
We will become familiar with the various
phases of the process that developers follow
to develop SW systems of reasonable
complexity
4
SW Life-Cycle?
5
SW Life-Cycle
• The sequence of phases a SW goes through
from the concept to decommissioning
• It is important to think about all those phases
before the design work starts
• Thinking about the future phases generally
results in:
– Shorter delivery times
– Reduced costs of development
– A system of higher quality
6
A Case in Point
• I didn’t discuss with the customer the specs of the HW
& OS before developing a particular e-commerce SW
• I wrote it for the HW/OS that was easily available to me
• Unfortunately that HW/OS combination differed from
what was easily available to the client
• Result: Huge amount of rework. Higher cost. Delayed
delivery. Lower quality.
• Therefore, now before designing a SW system, I first
write down the installation manual, and get it OK’d by
the customer. I do the same with the Operation & 7
Maintenance manual as well.
Let us now take a look at a very
simple SW life-cycle
8
Concept
Development
Operation & Maintenance
Decommissioning
9
That was a very simple view
Now we look at a more detailed view of
the life-cycle for a SW system of a
reasonable size
10
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
11
During the rest of the lecture we are
now going to discuss each of these
steps in some detail
12
Concept & Feasibility Concept: What needs
User Requirementsto be done?
Feasibility: Preliminary
Developer Specs
exploration of possible
Planning
solutions, technologies,
Design suppliers
Implementation
Integration Testing
Opr. & Maintenance
Retirement
13
Concept & Feasibility
User Requirements
Developer Specs
Planning
The user
documents as
much as he knows
about the job the
system must do
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
14
Concept & Feasibility
Developer
analyses users
User Requirements
requirement,
Developer Specs
performs further
investigation,
Planning
and produces
Design
unambiguous
Implementationspecifications
Integration Testing
Opr. & Maintenance
Retirement
15
Concept & Feasibility
User Requirements
Developer Specs
Planning
Detailed plan
specifying the
required
resources and
expected
deliverables
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
16
Concept & Feasibility
User Requirements
Developer Specs
Architecture: Decompose the problem into
subsystems and
define their relationships
Planning
Design
Implementation further such that
Detailed Design: Decompose
one person can manage
each Testing
sub-subsystem
Integration
Opr. & Maintenance
Retirement
17
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Design
Implementation
Coding
Integration Testing
Opr. & Maintenance
Retirement
18
Concept & Feasibility
Bring the subsubsystems together
Developer Specs to form subsystems
and test. Bring
Planning
subsystems together
Design
to form the system
and test
Implementation
User Requirements
Integration Testing
Opr. & Maintenance
Retirement
19
Concept & Feasibility
User Requirements
Developer Specs
Use
Planning
Design
Enhance
Implementation
Integration Testing
Adapt
Correct
Opr. & Maintenance
Retirement
20
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Phase it
out when
Integration Testing the time
comes
Opr. & Maintenance
Implementation
Retirement
21
22
Concept & Feasibility
User Requirements
Test
Developer Specs
Test
Planning
Test
Design
Test
Implementation
Test
Integration Testing
Acceptance Test
Opr. & Maintenance
Retirement
23
Key
Issues
24
Concept & Feasibility
User Requirements
Customer’s lack of
knowledge about
requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
25
Lag
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
26
Other Life-Cycle Models
• The sequence of phases (or the life-cycle
mode) that I showed is just one example of the
several sequences that SW developers follow
• This one is called the “Waterfall” model
• You will learn about some more models (e.g.
the Spiral model) in your future courses
27
Reading Assignments
The Waterfall Lifecycle Model and its Derivatives
www.cs.qub.ac.uk/~J.Campbell/myweb/misd/node3.html
28
In Today’s Lecture
•
We became familiar with the various phases
of the process that developers follow to
develop SW systems of reasonable
complexity
•
We looked at a couple of problems related to
the Waterfall SW development model
29
Next Lecture: 2nd In the Productivity
SW Series Spreadsheets
•
We will become familiar with the basic
features and functions of spreadsheets
•
We will become able to perform simple data
analysis using spreadsheet SW
30