You are on page 1of 57

Chapter : Introduction to

Software Engineering

Ref. book :
Software Engineering by Roger Pressman

Chapter : Topic Covered

Evolving Role of Software


Hardware vs. Software
Software characteristics
Changing nature of software
Evolution of Software
Software Myths

Evolving Role of Software


Software is a product
Transforms information - produces, manages, acquires,
modifies, displays, or transmits information
Delivers computing potential of hardware and networks

Software is a vehicle for delivering a product


Controls other programs (operating system)
Effects communications (networking software)
Helps build other software (software tools &
environments)

What is Software ?
Software can be defined as:

Instruction executed provide desire features, function &


performance.

Data structure to adequately manipulate operation.

Documents operation and use of the program.


Software products may be developed for a particular customer or may be
developed for a general market.

Software products may be

Generic - developed to be sold to a range of different


customers e.g. PC software such as Excel or Word.

Bespoke (custom) - developed for a single customer


according to their specification.

Hardware vs. Software


Hardware

Manufactured
wear out
Built using components
Relatively simple

Software

Developed/ engineered
deteriorate
Custom built
Complex

Manufacturing vs. Development


Once a hardware product has been
manufactured, it is difficult or impossible to
modify. In contrast, software products are
routinely modified and upgraded.
In hardware, hiring more people allows you
to accomplish more work, but the same
does not necessarily hold true in software
engineering.
Unlike hardware, software costs are
concentrated in design rather than
production.
6

Failure curve for Hardware

Failure curve for Software

When a hardware component wears out, it is replaced by a spare part.


There are no software spare parts. Every software failure indicates an
error in design or in the process through which design was translated
into machine executable code. Therefore, software maintenance involves
considerably more complexity
8

Component Based vs. Custom Built


Hardware products typically employ
many standardized design
components.
Most software continues to be custom
built.
The software industry does seem to
be moving (slowly) toward
component-based construction.
9

Software characteristics

Software is developed or engineered; it is not


manufactured.
Software does not wear out but it does
deteriorate.
Software continues to be custom built, as
industry is moving toward component based
construction.

10

Changing nature of software

System software
Application software
Engineering/scientific software
Embedded software
Product line software
Web applications
Artificial intelligence software
11

System Software:

System software is a collection of programs written to service other programs.


It is characterized by heavy interaction with computer hardware; heavy usage by
multiple users; concurrent operation that requires scheduling, resource sharing,
and sophisticated process management; complex data structures; and multiple
external interfaces.

Ex. Compilers, operating system, drivers etc.

Application Software :

Application software consists of standalone programs that solve a specific


business need.
Application software is used to control the business function in real-time.

Engineering /Scientific software:

Characterized by "number crunching" algorithms.


Applications range from astronomy to volcano logy, from automotive stress
analysis to space shuttle orbital dynamics, and from molecular biology to
automated manufacturing.

Ex. Computer Aided Design (CAD), system stimulation etc.

12

Embedded Software:
It resides in read-only memory and is used to control products and
systems
Embedded software can perform limited and esoteric functions.
Ex. keypad control for a microwave oven.
Product line software:
Designed to provide a specific capability for use by many different
customers, product line software can focus on a limited and esoteric
marketplace.
Ex. Word processing, spreadsheet, CG, multimedia, etc.
Web Applications:
Web apps can be little more than a set of linked hypertext files.
It evolving into sophisticated computing environments that not only
provide standalone features, functions but also integrated with
corporate database and business applications.
Artificial Intelligence software
AI software makes use of non-numerical algorithms to solve complex
problems that are not amenable to computation or straightforward
analysis
Ex. Robotics, expert system, game playing, etc.
13

SoftwareNew Categories
Open world computingpervasive, ubiquitous, distributed computing
due to wireless networking. How to allow mobile devices, personal
computer, enterprise system to communicate across vast
network.
Netsourcingthe Web as a computing engine. How to architect
simple and sophisticated applications to target end-users worldwide.
Open sourcefree source code open to the computing community
(a blessing, but also a potential curse!)
Also

Data mining
Grid computing
Cognitive machines
Software for nanotechnologies

14

Legacy Software
Definition
Quality in Legacy Systems
Why do legacy systems evolve over
time?
Notion of Evolution

15

Software Evolution
The Law of Continuing Change (1974): E-type (Real
world implemented) systems must be continually
adapted else they become progressively less satisfactory.
The Law of Increasing Complexity (1974): As an E-type
system evolves its complexity increases unless work is
done to maintain or reduce it.
The Law of Self Regulation (1974): The E-type system
evolution process is self-regulating with distribution of
product and process measures close to normal.
The Law of Conservation of Organizational Stability
(1980): The average effective global activity rate in an
evolving E-type system is invariant over product lifetime.
16

Software Evolution
The Law of Conservation of Familiarity (1980): As an E-type
system evolves all associated with it, developers, sales
personnel, users, for example, must maintain mastery of its
content and behavior to achieve satisfactory evolution.
The Law of Continuing Growth (1980): The functional content
of E-type systems must be continually increased to maintain
user satisfaction over their lifetime.
The Law of Declining Quality (1996): The quality of E-type
systems will appear to be declining unless they are rigorously
maintained and adapted to operational environment changes.
The Feedback System Law (1996): E-type evolution processes
constitute multi-level, multi-loop, multi-agent feedback
systems and must be treated as such to achieve significant
improvement over any reasonable base.
17

What is Software
Engineering?
Software Engineering = Software + Engineering

What is Software?
Software = Soft + ware

Any examples?

What is Engineering?
Engineering = Engine-er-ing
Any examples?
Is this an Engineering discipline? If yes, why? If not, why not?
Is this for an Engineer or a scientist?

18

What is Software
Engineering?
A historical definition:
The establishment and use of sound engineering
principles in order to obtain economically software
that is reliable and works efficiently on real
machines [Fritz Bauer, at the 1st NATO Conference on
Software Engineering, 1969]

IEEE definition:
Software engineering is the application of a
systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of
software; that is, the application of engineering to
software.
19

Software
Software Myths
Myths
(Management
(Management
Perspectives)
Perspectives)
As long as there are good standards and
clear procedures in my company, I shouldnt
be too concerned.

But the proof of the pudding


is in the eating;
not in the Recipe !

20

Software
Software Myths
Myths
(Management
(Management
Perspectives)
Perspectives)
As long as my software engineers(!) have
access to the fastest and the most
sophisticated computer environments and
state-of-the-art software tools, I shouldnt be
too concerned.

The environment is
only one of the several factors
that determine the quality
of the end software product!
21

Software
Software Myths
Myths
(Management
(Management
Perspectives)
Perspectives)
When my schedule slips, what I have to do is to
start a fire-fighting operation: add more
software specialists, those with higher skills and
longer experience - they will bring the schedule
back on the rails!

Unfortunately,
software business does not
entertain schedule compaction
beyond a limit!
22

Software
Software Myths
Myths
(Customer
(Customer Perspectives)
Perspectives)
A

general statement of objectives is


sufficient to get started with the
development of software.
Missing/vague requirements can easily
be incorporated/detailed out as they
get concretized.
Application requirements can never be
stable; software can be and has to be
made flexible enough to allow changes
to be incorporated as they happen.
23

Software
Software Myths
Myths
(Developer
(Developer Perspectives)
Perspectives)
Once the software is demonstrated, the
job is done.

Usually, the problems just begin!

24

Software
Software Myths
Myths
(Developer
(Developer Perspectives)
Perspectives)
Until the software is coded and is available for
testing, there is no way for assessing its quality.

Usually, there are too many


tiny bugs inserted at every stage
that grow in size and complexity
as they progress thru further stages!

25

Software
Software Myths
Myths
(Developer
(Developer Perspectives)
Perspectives)
The only deliverable for a software
development project is the tested code.
The code is only
the externally visible component
of the entire software complement!

26

Software
Software Product
Product
is a product designated for delivery to
the user
source
source
codes
codes

documents
documents
reports
reports

object
object
codes
codes

plans
plans

test
testsuites
suites

test
testresults
results

manuals
manuals
data
data
prototypes
prototypes
27

Boehms
Boehms
Top
Top Ten
Ten
Industrial
Industrial
Software
Software
Metrics
Metrics
28

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Finding and fixing a


software problem after
delivery of the product is
100 times more expensive
than defect removal during
requirements and early
design phases.
29

Software
Software Myths
Myths
(Customer
(Customer Perspectives)
Perspectives)
A

general statement of objectives is


sufficient to get started with the
development of software. Missing/vague
requirements can easily be
incorporated/detailed out as they get
concretized.
Application requirements can never be
stable; software can be and has to be
made flexible enough to allow changes
to be incorporated as they happen.
30

Effort
Effort to
to Repair
Repair Software
Software
(when
(when defects
defects are
are detected
detected at
at
different
different stages)
stages)

31

Cumulative
Cumulative Effects
Effects of
of
Error
Error
the
the real
real problem
problem
requirements

correct
correct incorrect
incorrect hidden
hidden

missing
missing

32

Cumulative
Cumulative Effects
Effects of
of
Error
Error
requirements

correct
correct incorrect
incorrect hidden
hidden

missing
missing

design

correct
correct incorrect
incorrect
incorrect
incorrect
incorrect
incorrect hidden
hidden

missing
missing
33

Cumulative
Cumulative Effects
Effects of
of
Error
Error
design

correct
correct incorrect
incorrect hidden
hidden

missing
missing

code

correct
correct incorrect
incorrect
incorrect
incorrect
hidden
hidden

missing
missing
34

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Nominal software
development schedules
can be compressed up to
25% (by adding people,
money, etc.) but no more.

35

Software
Software Myths
Myths
(Management
(Management
Perspectives)
Perspectives)
When

my schedule slips, what I have to


do is to start a fire-fighting operation: add
more software specialists, those with
higher skills and longer experience - they
will bring the schedule back on the rails!

36

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Maintenance costs twice


what the development
costs.

37

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Development and
maintenance costs are
primarily a function of
the size.

38

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Variations in humans
account for the greatest
variations in productivity.

39

Software
Software Myths
Myths
(Management
(Management
Perspectives)
Perspectives)
As

long as my software engineers(!)


have access to the fastest and the most
sophisticated computer environments
and state-of-the-art software tools, I
shouldnt be too concerned.

40

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

The ratio of software to


hardware costs has gone
from 15:85 in 1985 and
continues to grow in
favour of software as the
dominant cost.
41

Hardware
Hardware Vs
Vs Software
Software
Costs
Costs

42

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Only about 15% of the


development effort is
in coding.

43

Distribution
Distribution of
of Effort
Effort
Across
Across Phases
Phases

Testi
ng

Codi
ng
Desi

44

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Applications products
cost three times as much
per instruction as
individual programs;
system software products
cost nine times as much.

45

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

Walkthroughs catch 60%


of the errors.

46

Distribution
Distribution of
of Activities
Activities
in
in Defect
Defect Removal
Removal

47

Software
Software Myths
Myths

(Developer
(Developer Perspectives)
Perspectives)

Until

the software is coded and is


available for testing, there is no way
for assessing its quality.

48

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

10

Many software processes


obey a Pareto distribution.

20%
modules

80%
cost

49

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

10

Many software processes


obey a Pareto distribution.

20%
modules

80%
errors

50

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

10

Many software processes


obey a Pareto distribution.

20%
modules

80%
cost
to fix
51

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software Metrics
Metrics

10

Many software processes


obey a Pareto distribution.

20%
modules

80%
exec time

52

Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics

10

Many software processes


obey a Pareto distribution.

20%
tools

80%
use

53

Software
Software Characteristics
Characteristics
is

developed or engineered,
rarely manufactured
is custom-built; rarely assembled
is non-material,
and therefore does not wear out
is too flexible
is too pliable(easy to bent/shape)

54

Symptom of Software Crisis


about

US$250 billion spent per


year in the US on application
development
of this, about US$140 billion
wasted due to the projects
getting abandoned or reworked;
this in turn because of not
following best practices and
standards
Ref: Standish Group, 1996
55

Symptom of Software
Crisis
10%

of client/server apps are


abandoned or restarted from scratch
20% of apps are significantly altered to
avoid disaster
40% of apps are delivered significantly
late

Source: 3 year study of 70 large c/s apps in 30


3
Compuware (12/95)
56

Why Software
Engineering?
9 software projects totaling $96.7 million:
Where The Money Went
[Report to Congress, Comptroller General,
1979]
Delivered, but never
successfully used
45%
Used as delivered
2%
Usable w. rework
3%

Paid for, but


not delivered
30%

Used w. extensive rework,


but later abandoned
20%

Why?
Software hurts
Requirement
design
57

You might also like