cs101 introduction to computing lecture sw development methodology
TRANSCRIPT
CS101 Introduction to Computing
LectureSW Development 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 build SW systems of reasonable complexity
SW Life-Cycle?
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 ahead of time generally results in:– Shorter delivery times– Reduced costs of development– Systems of higher quality
A Case in Point• Didn’t discuss with the customer the specs of the HW
& OS before developing a particular e-commerce SW
• Wrote it for the HW/OS that was easily available
• 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, before designing a SW system, write down the installation manual, and get it OK’d by the customer. Do the same with the Operation & Maintenance manual as well.
Let us now take a look at a very simple SW life-cycle
Development
Concept
Operation & Maintenance
Decommissioning
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
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
During the rest of the lecture we are going to discuss each of these steps in some detail
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
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
Detailed plan specifying the required resources and expected deliverables
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 sub-subsystem
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Coding
Sub-subsystem Design
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Bring the sub-subsystems 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
Test
Acceptance Test
Key Issues
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Test
Test
Test
Test
Test
Acceptance Test
Customer’s lack ofknowledge aboutrequirements
LagConcept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Test
Test
Test
Test
Test
Acceptance 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
• This one is called the “Waterfall” model
• You may learn about some more models (e.g. the Spiral model) in your future CS courses
Reading Assignments
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
Midterm
• Monday, next week
• 50-minute duration
• Questions/problems:– Fill-in-the-blanks– Short answer– Detailed answer