cs101 introduction to computing lecture sw development methodology

28
CS101 Introduction to Computing Lecture SW Development Methodology

Upload: muriel-walker

Post on 27-Dec-2015

231 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CS101 Introduction to Computing Lecture SW Development Methodology

CS101 Introduction to Computing

LectureSW Development Methodology

Page 2: CS101 Introduction to Computing Lecture SW 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

Page 3: CS101 Introduction to Computing Lecture SW Development Methodology

SW Life-Cycle?

Page 4: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 5: CS101 Introduction to Computing Lecture SW Development Methodology

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.

Page 6: CS101 Introduction to Computing Lecture SW Development Methodology

Let us now take a look at a very simple SW life-cycle

Page 7: CS101 Introduction to Computing Lecture SW Development Methodology

Development

Concept

Operation & Maintenance

Decommissioning

Page 8: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 9: CS101 Introduction to Computing Lecture SW Development Methodology

Concept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Page 10: CS101 Introduction to Computing Lecture SW Development Methodology

During the rest of the lecture we are going to discuss each of these steps in some detail

Page 11: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 12: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 13: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 14: CS101 Introduction to Computing Lecture SW Development Methodology

Concept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Detailed plan specifying the required resources and expected deliverables

Page 15: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 16: CS101 Introduction to Computing Lecture SW Development Methodology

Concept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Coding

Sub-subsystem Design

Page 17: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 18: CS101 Introduction to Computing Lecture SW Development Methodology

Concept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Use

Enhance

Adapt

Correct

Page 19: CS101 Introduction to Computing Lecture SW Development Methodology

Concept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Phase it out when the time comes

Page 20: CS101 Introduction to Computing Lecture SW Development Methodology

?

Page 21: CS101 Introduction to Computing Lecture SW Development Methodology

Concept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Test

Test

Test

Test

Test

Acceptance Test

Page 22: CS101 Introduction to Computing Lecture SW Development Methodology

Key Issues

Page 23: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 24: CS101 Introduction to Computing Lecture SW Development Methodology

LagConcept & Feasibility

User Requirements

Developer Specs

Planning

Design

Implementation

Integration Testing

Opr. & Maintenance

Retirement

Test

Test

Test

Test

Test

Acceptance Test

Page 25: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 26: CS101 Introduction to Computing Lecture SW Development Methodology

Reading Assignments

The Waterfall Lifecycle Model and its Derivatives

www.cs.qub.ac.uk/~J.Campbell/myweb/misd/node3.html

Page 27: CS101 Introduction to Computing Lecture SW Development Methodology

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

Page 28: CS101 Introduction to Computing Lecture SW Development Methodology

Midterm

• Monday, next week

• 50-minute duration

• Questions/problems:– Fill-in-the-blanks– Short answer– Detailed answer