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
Any Other SW Design Methodologies?
-- Spaghetti Design Methodology
The most popular software design (programming) methodology
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
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
A Case in Point
I didn’t discuss with the customer
the specs of the HW & OS before developing a particular ecommerce
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 & Maintenance
manual as well.
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Detailed View Of SW
Developoment Life Cycle
Development
Concept
Operation &
Maintenance
Decommissioning
Simple SW Life Cycle
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Concept: What needs to be done?
Feasibility: Preliminary exploration of possible
solutions, technologies, suppliers
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
The user documents as much as he
knows about the job the system must
do
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Detailed plan specifying
the required resources
and expected
deliverables
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Developer analyses users requirement,
performs further investigation, and produces
unambiguous specifications
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Architecture: Decompose the problem into
subsystems and define their relationships
Detailed Design:
Decompose further such
that one person can
manage each subsubsystem
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Coding
Design
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Bring the subsubsystems
together to
form subsystems and
test. Bring subsystems
together to form the
system and test
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Use Enhance
Adapt Correct
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Phase it out when the time comes
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Test
Test
Test
Test
Acceptance Test
Test
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
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Customer’s lack of
knowledge about
requirements
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Lag
This one is called the
“Waterfall” model
You will learn about some more models (e.g. the Spiral model) in your
future courses
The Waterfall Lifecycle Model and its Derivatives
www.cs.qub.ac.uk/~J.Campbell/myweb/misd/node3.html
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
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
|