Professional Documents
Culture Documents
Software Engineering
Ref. book :
Software Engineering by Roger Pressman
What is Software ?
Software can be defined as:
Manufactured
wear out
Built using components
Relatively simple
Software
Developed/ engineered
deteriorate
Custom built
Complex
Software characteristics
10
System software
Application software
Engineering/scientific software
Embedded software
Product line software
Web applications
Artificial intelligence software
11
System Software:
Application Software :
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.
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
Software
Software Myths
Myths
(Developer
(Developer Perspectives)
Perspectives)
Once the software is demonstrated, the
job is done.
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.
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
Software
Software Myths
Myths
(Customer
(Customer Perspectives)
Perspectives)
A
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
36
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
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
40
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
Hardware
Hardware Vs
Vs Software
Software
Costs
Costs
42
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
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
46
Distribution
Distribution of
of Activities
Activities
in
in Defect
Defect Removal
Removal
47
Software
Software Myths
Myths
(Developer
(Developer Perspectives)
Perspectives)
Until
48
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
10
20%
modules
80%
cost
49
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
10
20%
modules
80%
errors
50
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
10
20%
modules
80%
cost
to fix
51
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software Metrics
Metrics
10
20%
modules
80%
exec time
52
Boehms
Boehms Top
Top Ten
Ten
Industrial
Industrial Software
Software
Metrics
Metrics
10
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
10%
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%
Why?
Software hurts
Requirement
design
57