You are on page 1of 30

CS101 Introduction to Computing

Lecture 20
SW Development Methodology
1

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 2

Any Spaghetti Other SW Design DesignMethodologies? Methodology

The most popular software design (programming) methodology

Todays 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?
5

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 didnt 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 OKd by the customer. I do the same with the Operation7 & Maintenance manual as well.

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

Concept Development Operation & Maintenance Decommissioning


9

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

10

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation Integration Testing Opr. & Maintenance Retirement
11

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

12

Concept & Feasibility Concept: What needs


User Requirementsto be done?

Feasibility: Preliminary Developer Specs exploration of possible Planning solutions, technologies, Design suppliers
Implementation Integration Testing Opr. & Maintenance Retirement
13

Concept & Feasibility


User Requirements Developer Specs Planning Design

The user documents as much as he knows about the job the system must do

Implementation Integration Testing Opr. & Maintenance Retirement


14

Concept & Feasibility

Developer analyses users User Requirements requirement, Developer Specs performs further investigation, Planning and produces Design unambiguous Implementationspecifications
Integration Testing Opr. & Maintenance Retirement
15

Concept & Feasibility


User Requirements Developer Specs Planning Design

Detailed plan specifying the required resources and expected deliverables

Implementation Integration Testing Opr. & Maintenance Retirement


16

Concept & Feasibility


User Requirements

Architecture: Decompose the problem into subsystems and define their relationships Planning
Design Implementation further such that Detailed Design: Decompose one person can manage each Testing sub-subsystem Integration Opr. & Maintenance Retirement
17

Developer Specs

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation Integration Testing Opr. & Maintenance Retirement
18

Design
Coding

Concept & Feasibility


User Requirements

Bring the subsubsystems together Developer Specs to form subsystems and test. Bring Planning subsystems together Design to form the system and test Implementation
Integration Testing Opr. & Maintenance Retirement
19

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation Integration Testing

Use Enhance Adapt Correct

Opr. & Maintenance Retirement


20

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation

Phase it out when Integration Testing the time comes Opr. & Maintenance
Retirement
21

22

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation Integration Testing Acceptance Test Opr. & Maintenance Retirement
23

Test

Test
Test

Test
Test

Key Issues
24

Concept & Feasibility


User Requirements Developer Specs Planning Design

Customers lack of knowledge about requirements

Implementation Integration Testing Opr. & Maintenance Retirement


25

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation Integration Testing

Lag

Opr. & Maintenance Retirement


26

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 Spiral model) in your future courses
27

Reading Assignments
The Waterfall Lifecycle Model and its Derivatives
www.cs.qub.ac.uk/~J.Campbell/myweb/misd/node3.html

28

In Todays 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

29

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

30

You might also like