Software Engineering Economics
(SE-231)
(Lecture 1)
Instructor:
Gul Sher Ali
Department of Software Engineering
______________________________________________________
University of Gujrat – Hafiz Hayat Campus
1
Course Overview
Course Goals
Outline
Grading criteria
Book/Helping Material
Note: For details of aforementioned agenda, refer to
provided course outline.
2
Objective
Software economics – its importance and place in software systems
Provide an empirical view of where money goes
Why it is important to understand and control software costs
Identify shortcomings in existing work
Discuss economic perspective on software design promises
Review state of the art in software economics
Provide a roadmap
Introduction
Rapid, sustained advances in computing &
communications
Hardware is seen as the catalyst, however
software embodies new value added functions
Despite this dependence on software its
production is among the most complex and
problematical aspects of modern technology
development
Lack of management in risk-return
characteristics of software is a serious & difficult
problem
The Software Life-Cycle
Quick reminder – phases
Feasibility
Requirements
Product Design
Detailed Design
Coding
Integration
Implementation
Maintenance
Each phase is culminated by verification &
validation
The Waterfall Model
It is also called as linear sequential model.
In this model whole application is developed in a
sequential approach.
In this model each phase must be completed fully
before the next phase begin.
Provides structure to inexperienced staff.
Historty
The first formal description of the waterfall model is
often cited as a 1970 article by Winston W.Royce.
Royce presented this model as as an example of a
flawed,non-working model.
It has been widely used for software projects ever
since.
Where to Use Waterfall Model
Requirements are
very well known.
Product definition
is stable.
Technology is
understood.
New version of an
existing product
Requirement In this phase business analyst will collect
Gathering the requirements with an interaction of
client and collected requirements will be
Requirement In this phase system analyst will study
documented.
the client requirements and prepare the
Analysis
system requirement specification.
In this phase design architecture is the
Design responsible to decide architecture of an
application in order to full-fill the client
In this phase developers
requirements . will write the
Coding program using programming languages
or scripting languages in order to
Initially developers
develop the will perform unit
application.
Testing testing and integration testing using of
white box testing, After that separate
team will be perform system testing
Release After the testing client satisfied on work
using black box testing
& product then we deliver application to
Maintenance the customer to use at live environment.
While using this application client
identify can some defects in existing s/m
then he will send to the CR to CCB .
Advantages Disadvantages
Easy to implement. Suitable for the small size projects.
Helps to find errors earlier Constant testing of design.
Easy to understand, easy to use. Change in requirement is not
Quality vs cost or schedule possible.
Detailed Documentation. Difficult to estimate time and cost for
Detailed Testing. each stage.
Risk and uncertainty.
Economic Rationale for the
Waterfall Model
To achieve a successful software product all sub goals must be met
Avoidable costly consequences will occur unless early goals are thoroughly satisfied
Any different ordering of the sub goals will produce a less successful
software product
Early detection of errors (particularly requirements) will mean simple, less costly
changes are needed
Refinements – Incremental
Development
Increments of functional capability
Increment 1 – basic capability to operate
Increment 2 – value added production-mode capabilities
Increment 3 – nice-to-have features
Advantages
More helpful & easier to test
Incorporates user experience in a less expensive way
Reduces labor costs
Refinements – advancemanship
Anticipatory documentation
Define detailed objectives & plans for future software development activities
Produce early versions of user documentation
Software scaffolding
Extra products that need to be developed to ensure smooth & efficient build of main software
Advantages
Reduce overall costs by limiting the time & energy spent in none productive activities
Redistribute costs – greater early investment reduces late investment costs
COCOMO Model
Basic COCOMO
Small-to-medium size products developed
Good for quick, early, rough order of magnitude estimates of software costs
Other levels
Intermediate / detailed
Definitions & Assumptions
Primary cost driver is the number of Delivered Source Instructions (DSI) developed
by the project
Development period begins at design phase & ends at integration and test phase
Covers those activities indicated on the software Work Breakdown Structure (WBS)
Covers all direct-charged labour on project
A man-month consists of 152 hrs of working time
Non-productive time kept to a minimum
Assumes that requirements spec isn’t substantially changed after the plans &
requirements phase
Development Effort & Schedule
Provide fundamental effort & schedule equations for most common type of software
project
MM = 2.4(KDSI)1.05
MM = man-month
KDSI = thousands of delivered source instructions
TDEV = 2.5(MM)0.38
TDEV = the development schedule
Phase Distribution
Percentage distribution of the basic software effort & schedule within the phases of
development
The Rayleigh Distribution
Labour curve – follows a continuous curve
Interpolation
Adjustment factors where project sizes aren’t standard
Three COCOMO Modes of Software
Development
The organic mode
Small software teams
Stable development environment
The semidetached mode
Represents an intermediate stage – project characteristics or mix of organic &
embedded modes
The embedded mode
Operate within tight constraints
Early completion is beneficial
Software Engineering Decision-
Making Today
Principal of separation of
concerns
Design decisions are now
intimately coupled with
fundamental business
decisions in every
endeavor
Software development
involves the investment of
valuable resources
Software Engineering as a Value-
Creation Activity
Software engineers have traditionally made technical software product & design
decision void of value creation
Software designers & engineers must begin to understand & reason about the
connections between software design decisions & value maximization objectives
Mismatch
Lack adequate frameworks for modelling, measuring & analyzing the connections
between technical decisions & value creations
Failing to cancel projects quickly once recognized as failing
The design space in which software designers operate is insufficient
Beyond technology the overall economic environment needs to be considered
Why an Increased Emphasis on
Software Economics?
It is concerned with improving the value created by investments in developing & using
software
The dynamics of technology innovation has changed over the years since globalization of
capital markets
Business, philanthropy, government & other major organizations now accept that value
creation is the final arbiter of success for investment in scarce resources
New Sources of Value
New Measurements of Value
Shortcomings
Currently our ability to reason about software costs is stronger than that about software
benefits
The ability to reason about both costs & benefits (sometimes in sophisticated terms) is a
critical success factor for future enterprises
Most software cost & schedule models are calibrated to a minimal cost strategy
Better software development estimation models are needed
Software economics needs to move from static notions of (usually uncertain) cost &
benefit to dynamic & strategic concepts of value creation
Software Economics Roadmap
The Goal of Software Economics
Making Decisions that are Better for Value Creation
Richer Design Spaces
Reading 1