You are on page 1of 38

INTRODUCTION TO ICT.

(SOFTWARE DEVELOPMENT METHODOLOGY )


Lecture # 13
By:
M.Nadeem Akhtar.
Department of CS & IT.

URL: https://sites.google.com/site/nadeemcsuoliict/home/lectures
1
SW DESIGN
METHODOLOGY?

2
TODAY’S LECTURE
 Development process of reasonably complex SW systems does not consist
of “coding” only.

 SW Development methodologies?

 We will become familiar with the various phases of the process that
developers follow to develop SW systems of reasonable complexity.

 People noted that to develop large scale complex SW, only 15 % work is
done on programming rest is done on other things i.e. thinking, design
and testing. Programming is just a small part of SW development.

3
THE SET OF (OFTEN FLEXIBLE) RULES AND
GUIDELINES A TEAM OF DEVELOPERS
FOLLOW TO CONSTRUCT REASONABLY
COMPLEX SW SYSTEMS

4
ANY OTHER SW DESIGN METHODOLOGIES?

Spaghetti Design Methodology


The most popular software design (programming) methodology
 Spaghetti (sawiain)
 Most of the people when see description of the problem,
start coding it. Work on it few days or weeks, at the end a
program is developed.
 It has no structured and disciplined. The program
developed through spaghetti design methodology, its
maintenance is quite difficult, enhancement is impossible.
 But for some reason, that’s the most popular way, due to
it many people think of software it really doesn’t work.
Software crashes.

5
COMPLEX SOFTWARE
 Example: Airplane monitoring system, Accounting system of a
company where up to 10,000 people work.

 A system that have hundred of thousands of lines of code or may be


millions of line of code that system is consider complex system.

 To develop complex large scale system proper thinking, planning,


designing is needed without it you can not develop complex system.

6
SW LIFE-CYCLE?

7
SW LIFE-CYCLE
 The sequence of phases a SW goes through from the concept to
decommissioning( formal process to remove something from an active
status. )
 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.

8
EXAMPLE

 On the internet I want to launch an e-commerce website through which I


want to sale jewelry. People visit my website, purchase jewelry, provide
information about them i.e. address, telephone and credit card no. I will
verify the details. Accept the order after verification. Then I will shipped
his jewelry. This is CONCEPT.

 Last step is DECOMMISSIONING i.e. I am using this website from long


time, I want to do something new. Now I want to shut it down and launch
a new website. I want my customer knows about my new website further
my customer data i.e. their credit information, preference etc that should
also be maintained and transfer to new system.

9
 Software life cycle is start from concept to decommissioning and the
phases between them.

 Its important to think of life-cycle before making a software. Think


what are the different phases of software i.e. concept, conceive, design,
implement, test, deliver it.

 After it customer use it, maintain it and decommission it.

 Benefit of thinking on these phases of life-cycle will be, the piece of


software that will be developed it will be of good quality. Cost of
development either can be reduced. Delivery time can also be
shortened.

10
CASE STUDY
 I was working with a team and we have to develop an e-commerce
website for jewelry sale.

 We decided on this spec computer and particular OS we use to develop


this website.

11
A CASE IN POINT
 I didn’t discuss with the customer about the specification 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

 We developed the website and shifted to customer, later customer realized


it was developed with other assumptions. We have different HW and OS.

 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.

12
LET US NOW TAKE A LOOK AT A VERY
SIMPLE SW LIFE-CYCLE

 The point is if you think properly on the


phases of software life-cycle phases:

 Your cost of development can be reduced.


 You reduced the deliver time.
 Maintain the good quality.

13
CONCEPT

DEVELOPMENT

OPERATION & MAINTENANCE

DECOMMISSIONING
14
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

15
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
16
Retirement
DURING THE REST OF THE LECTURE WE ARE
NOW GOING TO DISCUSS EACH OF THESE
STEPS IN SOME DETAIL.

17
Concept & Feasibility Concept: What needs to be
done?
User Requirements
Feasibility: Preliminary
Developer Specs
exploration of possible
Planning solutions, technologies,
Design suppliers
Implementation
Integration Testing
Opr. & Maintenance
18
Retirement
Concept & Feasibility The user
documents as
User Requirements
much as he knows
Developer Specs about the job the
system must do
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
19
Retirement
Concept & Feasibility Developer
analyses users
User Requirements
requirement,
Developer Specs performs further
Planning investigation,
and produces
Design unambiguous
Implementationspecifications
Integration Testing
Opr. & Maintenance
20
Retirement
Detailed plan
Concept & Feasibility
specifying the
User Requirements required
Developer Specs resources and
expected
Planning deliverables
Design
Implementation
Integration Testing
Opr. & Maintenance
21
Retirement
Concept & Feasibility
User Requirements
Developer
Architecture: Specs the problem into
Decompose
subsystems and define their relationships
Planning
Design
Detailed Design: Decompose further such that one
Implementation
person can manage each sub-subsystem
Integration Testing
Opr. & Maintenance
22
Retirement
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design Design
Implementation Coding
Integration Testing
Opr. & Maintenance
23
Retirement
Concept & Feasibility
User Requirements
Bring the sub-
subsystems together
Developer Specs to form subsystems
Planning and test. Bring
subsystems together
Design
to form the system
and test
Implementation
Integration Testing
Opr. & Maintenance
24
Retirement
Concept & Feasibility
User Requirements
Developer Specs
Planning Use
Design Enhance
Implementation Adapt
Integration Testing Correct
Opr. & Maintenance
25
Retirement
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation Phase it
out when
Integration Testing the time
comes
Opr. & Maintenance
26
Retirement
 Concept: Sale Jewelry, There are already many people who are
doing the same business. The concept is when this website is built,
then why people visit it. In Concept we think only business point
of view.

 Feasibility: Explore business point of view i.e. when this website


will develop, how much it will profitable for me, if I am investing 1
lakh rs. Over the years how much I return it back.

27
 The concept i have. Is this possible to build that system the
current technologies, tools and suppliers are available to build
this for me.

 User Requirement: I am the business person who want to


develop this website. I note down some where what features
should have on this website. E.g. Special offers i.e. sale, customer
see the list of items, can see gold, silver, platinum, cheap,
expensive. After selecting the product and filling the form. I verify
credit card details. Ship the product to customer.

28
 I am the business person who is running the website, i want to
know at any given time how many people are on my website. Or
last week how much customer purchases or in a year how much
bangles i sold.

 Developer Spec: developer read user requirement, do some


analysis, further investigation (visit similar sites) user
requirement is written in user language that it required these
features, developer spec is written in developer language that it
can develop these features.

29
 Planning: Start with developer spec and see how much time is
required to build this system. How much resources are required
i.e. man power, computers, software?

 Design: Catalogue module, shopping cart module. Back office


function (back end ).

30
31
Concept & Feasibility
User Requirements
Test
Developer Specs
Test
Planning
Test
Design
Test
Implementation
Test
Integration Testing
Acceptance Test Opr. & Maintenance
32
Retirement
KEY ISSUES

33
Concept & Feasibility Customer’s lack of
knowledge about
User Requirements requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
34
Retirement
Concept & Feasibility
User Requirements
Lag
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
35
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 Spiral model) in
your future courses

36
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

37
READING ASSIGNMENTS

The Waterfall Lifecycle Model and its Derivatives


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

38

You might also like