Professional Documents
Culture Documents
Lecture
(Software Development Methodology)
1
SW ?
Programming
Development
2
SWDesign
Methodology?
3
The set of (often flexible) rules and guidelines a team of
developers follow to construct reasonably complex SW systems
4
Object Oriented Design (1)
• OO SW is all about objects: a black box which
receives messages & responds with those of its
own
• An object has 2 aspects:
– State, also termed as properties, data
• Example: For the bicycle: color, speed, pressure
– Behaviors, also termed as methods, instructions
• Example: For the same object: accelerate(), inflate()
• Example:
C++, Java, SmallTalk
7
Structured Design (1)
• Also called top-down design
9
Any Other SW Design Methodologies?
Spaghetti Design Methodology
The most popular software design (programming) methodology
Spaghetti (sawain)
Most of the people when see description of the problem,
start coding it. Work on it few days or weeks, at the end a
program is developed.
It has no structured and disciplined. The program
developed through spaghetti design methodology, its
maintenance is quite difficult, enhancement is impossible.
But for some reason, that’s the most popular way, due to
it many people think of software it really doesn’t work.
Software crashes.
10
TODAY’s LECTURE
• Development process of reasonably complex SW systems
does not consist of “coding” only.
• SW Development methodologies?
12
SW Life-Cycle
• The sequence of phases a SW goes through from
the concept to decommissioning.
16
A Case in Point
• I didn’t discuss with the customer the specs of the HW & OS before
developing a particular e-commerce SW
18
Concept
Development
Decommissioning
19
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
20
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
21
During the rest of the lecture we are
now going to discuss each of these
steps in some detail.
22
Concept & Feasibility Concept: What needs
User Requirements to be done?
Developer SpecsFeasibility: Preliminary
exploration of possible
Planning
solutions, technologies,
Design suppliers
Implementation
Integration Testing
Opr. & Maintenance
Retirement
23
Concept & Feasibility The user
documents as
User Requirements
much as he knows
Developer Specs about the job the
system must do
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
24
Concept & Feasibility Developer
analyses users
User Requirements
requirement,
Developer Specs performs further
Planning investigation,
and produces
Design unambiguous
Implementation specifications
Integration Testing
Opr. & Maintenance
Retirement
25
Detailed plan
Concept & Feasibility
specifying the
User Requirements required
Developer Specs resources and
expected
Planning deliverables
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
26
Concept & Feasibility
User Requirements
Developer Specs
Architecture: Decompose the problem into
subsystems and define their relationships
Planning
Design
Detailed Design: Decompose
Implementation further such that
one person can manage each sub-subsystem
Integration Testing
Opr. & Maintenance
Retirement
27
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design Design
Implementation Coding
Integration Testing
Opr. & Maintenance
Retirement
28
Concept & Feasibility
User Requirements
Bring the sub-
subsystems together
Developer Specs to form subsystems
Planning and test. Bring
subsystems together
Design
to form the system
and test
Implementation
Integration Testing
Opr. & Maintenance
Retirement
29
Concept & Feasibility
User Requirements
Developer Specs
Planning Use
Design Enhance
Implementation Adapt
Integration Testing Correct
Opr. & Maintenance
Retirement
30
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation Phase it
out when
Integration Testing the time
comes
Opr. & Maintenance
Retirement
31
• Concept: Sale Jewelry, There are already many
people who are doing the same business. The
concept is when this website is built, then why
people visit it. In Concept we think only
business point of view.
32
• The concept i have. Is this possible to build that
system the current technologies, tools and
suppliers are available to build this for me.
35
Concept & Feasibility
User Requirements
Unit Test
Developer Specs
Unit Test
Planning
Unit Test
Design
Unit Test
Implementation
Unit Test
Integration Testing
Acceptance Test Opr. & Maintenance
Retirement
36
Key
Issues
37
Customer’s lack of
Concept & Feasibility
knowledge about
User Requirements requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
38
Concept & Feasibility
User Requirements
Lag
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
39
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
40