300 likes | 304 Vues
CS101 Introduction to Computing Lecture 20 SW Development Methodology. During the last lecture …. We discussed the role of programming languages in computing
E N D
CS101 Introduction to ComputingLecture 20SW Development Methodology
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
Spaghetti Design Methodology Any Other SW Design Methodologies? 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 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 & Maintenance manual as well.
Concept Development Operation & Maintenance Decommissioning
That was a very simple viewNow 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 now going to discuss each of these steps in some detail
Concept&Feasibility Concept: What needs to be done? User Requirements Feasibility: Preliminary exploration of possible solutions, technologies, suppliers 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 unambiguousspecifications 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
Concept&Feasibility User Requirements Developer Specs Architecture: Decompose the problem into subsystems and define their relationships Planning Design Detailed Design: Decompose further such that one person can manage each sub-subsystem Implementation Integration Testing Opr. & Maintenance Retirement
Concept&Feasibility User Requirements Developer Specs Planning Design Design Coding Implementation Integration Testing Opr. & Maintenance Retirement
Concept&Feasibility Bring the sub-subsystems together to form subsystems and test. Bring subsystems together to form the system and test User Requirements Developer Specs Planning Design Implementation Integration Testing Opr. & Maintenance Retirement
Concept&Feasibility User Requirements Developer Specs Use Planning Enhance Design Adapt Implementation Correct Integration Testing Opr. & Maintenance Retirement
Concept&Feasibility User Requirements Developer Specs Planning Design Phase it out when the time comes Implementation Integration Testing Opr. & Maintenance Retirement
Concept&Feasibility User Requirements Test Developer Specs Test Planning Test Design Test Implementation Test Integration Testing Acceptance Test 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 Concept&Feasibility User Requirements Developer Specs Planning Design Implementation Integration Testing Opr. & Maintenance Retirement
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 Spiralmodel) in your future 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
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 performsimple data analysis using spreadsheet SW