Chapter 1 Introduction
Chapter 1 Introduction
Why Software
Engineering ?
❖ Change in nature & complexity of software
2
The Evolving Role of
Software
❖ Software industry is in Crisis!
success
16%
failur
e
31%
over budget
53%
3
The Evolving Role of
Software
Engineering
Today! Cancelled –
23%
5
The Evolving Role of
Software
Hw cost
Sw
cost
1960 Year
1999
Relative Cost of Hardware and Software
6
The Evolving Role of
Software
• Unlike Hardware
– Moore’s law: speed/memory capacity doubles
processor every two
years
7
The Evolving Role of
Software
Managers and Technical Persons are asked:
8
Factors Contributing to the Software
Crisis
• Larger problems,
9
Some Software
failures
Ariane 5
It took the European Space Agency 10
years and $7 billion to produce Ariane 5,
a giant rocket capable of hurling a pair of
three-ton satellites into orbit with each
launch and intended to give Europe
overwhelming supremacy in the
commercial space business.
12
Some Software
failures
The Patriot Missile
o First time used in Gulf war
o Used as a defense from Iraqi Scud
missiles
o Failed several times including one that
killed 28 US soldiers in Dhahran,
Saudi Arabia
Reasons:
A small timing error in the system’s clock
accumulated to the point that after 14
hours, the tracking system was no longer
accurate. In the Dhahran attack, the
system had been operating for more than
100 hours.
13
Some Software
failures
The Space Shuttle
Part of an abort scenario for the
Shuttle requires fuel dumps to
lighten the spacecraft. It was
during the second of these
dumps that a (software) crash
occurred.
...the fuel management module,
which had performed one
dump and successfully exited,
restarted when recalled for the
second fuel dump...
14
Some Software
failures
A simple fix took care of the problem…but the
programmers decided to see if they could come up with a
systematic way to eliminate these generic sorts of bugs in
the future. A random group of programmers applied this
system to the fuel dump module and other modules.
Seventeen additional, previously unknown problems
surfaced!
15
Some Software
failures
Financial Software
Many companies have experienced failures in their
accounting system due to faults in the software itself. The
failures range from producing the wrong information to
the whole system crashing.
16
Some Software
failures
Windows XP
o Microsoft released Windows XP on October 25, 2001.
o On the same day company posted 18 MB of
compatibility patches on the website for bug fixes,
compatibility updates, and enhancements.
o Two patches fixed important security holes.
17
“No Silver
Bullet”
The hardware cost continues to decline
drastically.
However, there are desperate cries for a
silver bullet something to make software
costs drop as rapidly as computer hardware
costs do.
But as we look to the horizon of a decade,
we see no silver bullet. There is no single
development, either in technology or
in managementtechnique, that by itself
promises even one order of magnitude
improvement in productivity, in reliability
and in simplicity.
18
“No Silver
Bullet”
The hard part of building software is the specification, design and
testing of this conceptual construct, not the labour of representing it
and testing the correctness of representation.
We still make syntax errors, to be sure, but they are trivial as
compared to the conceptual errors (logic errors) in most systems.
That is why, building software is always hard and there is inherently
no silver bullet.
While there is no royal road, there is a path forward.
Is reusability (and open source) the new silver bullet?
19
“No Silver
Bullet”
The blame for software bugs belongs to:
• Software companies
• Software developers
• Legal system
• Universities
20
What is
software?
• Computer programs and
associated documentation
21
What is
software?
Programs
Documentation Operating
Procedures
Software=Program+Documentation+Operating Procedures
Components of software
22
Documentation consists of different types of manuals
are Formal Specification
Analysis Context-
/Specification Diagram
Data Flow
Diagrams
Flow
Design
Charts
Documentation Entity-Relationship
Manuals Diagram
Source Code Listings
Implementation Cross-Reference
Listing
Test Data
Testing
Test Results
Operating
Procedures
Installation Guide
Operational
Manuals
S
y
s
t
e
m
A 24
d
Software
Product
25
Software
Product
Software product is a product designated for
delivery to the user
ssoouu
rrccee ddooccuum
ccoodd rreeppo
meennttss
eess
orrttss
oobbjj plans mmaann
plans
eecctt
ccood uuaallss
ddaa
deess
ttaa
tteessttssu tteessttrrees prototypes
prototypes
uiitteess suullttss
26
What is software
engineering?
Software engineering is an engineering discipline which
is concerned with all aspects of software production
Software engineers should
– adopt a systematic and organised approach to their
work
– use appropriate tools and techniques depending on
• the problem to be solved,
• the development constraints and
– use the resources available
27
What is software
engineering?
At the first conference on software engineering in 1968, Fritz Bauer
defined software engineering as “The establishment and use of
sound engineering principles in order to obtain economically
developed software that is reliable and works efficiently on real
machines”.
• Lack of knowledge
29
Software
Process
• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state
Productivity
Learning curve
Time
30
Software
Characteristics:
✓Software does not wear
out.
Burn-in
phase Wear out
phase
Failure Intensity
Useful life
phase
Time
31
Software
Characteristics:
✓ Software is not manufactured
✓ Reusability of components
✓ Software is flexible
32
Software Characteristics:
Comparison of constructing a bridge vis-à-vis writing a program.
Sr. Constructing a bridge Writing a program
No
1. The problem is well understood Only some parts the problem are
of understood, others are
not
2. There are many existing bridges Every program is different and designed for
special applications.
3. The requirement for a bridge typically do Requirements typically change during
not change much during construction all phases of development.
4. The strength and stability of a bridge can be Not possible to calculate correctness of a
calculated with reasonable precision program with existing methods.
5. When a bridge collapses, is a When a program fails, the reasons are often
there detailed investigation and unavailable or even deliberately concealed.
report
6. Engineers have been constructing bridges Developers have been writing programs
for thousands of years for 50 years or so.
7. Materials (wood, stone,iron, steel) and Hardware and software changes rapidly.
techniques (making joints in wood, carving
stone, casting iron) change slowly.
33
The Changing Nature of
Software
System Real
Software Time
Software
Engineering Embedded
and Scientific Software
Software
34
The Changing Nature of
Software
35
Software Myths (Management
Perspectives)
Management may be confident about good
standards and clear procedures of the company.
36
Software Myths (Management
Perspectives)
Company has latest computers and state-of-
the-art software tools, so we shouldn’t worry
about the quality of the product.
The infrastructure is
only one of the several factors
that determine the quality
of the product!
37
Software Myths (Management
Perspectives)
Addition of more software specialists, those
with higher skills and longer experience may
bring the schedule back on the track!
Unfortunately,
that may further delay the schedule!
38
Software Myths (Management
Perspectives)
39
Software Myths (Management
Perspectives)
40
Software Myths (Customer
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.
41
Software Myths (Customer
Perspectives)
42
Software Myths (Developer
Perspectives)
43
Software Myths (Developer
Perspectives)
Software quality can not be assessed
before testing.
44
Software Myths (Developer
Perspectives)
The only deliverable for a
software development project is the tested
code.
45
Software Myths (Developer
Perspectives)
46
Some
Terminologies
➢ Deliverables and Milestones
47
Some
Terminologies
➢ Product and Process
Product: What is delivered to the customer, is called a product. It
may include source code, specification document, manuals,
documentation etc. Basically, it is nothing but a set of deliverables
only.
If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.
48
Some
Terminologies
➢ Measures, Metrics and Measurement
49
Some
Terminologies
➢ Software Process and Product Metrics
50
Some
Terminologies
➢ Productivity and Effort
51
Some
Terminologies
➢ Module and Software Components
There are many definitions of the term module. They range from “a
module is a FORTRAN subroutine” to “a module is an Ada
Package”, to “Procedures and functions of PASCAL and C”, to “C+
+ Java classes” to “Java packages” to “a module is a work
assignment for an individual developer”. All these definition are
correct. The term subprogram is also used sometimes in place of
module.
52
Some
Terminologies
“An independently deliverable piece of functionality providing
access to its services through interfaces”.
53
Some Terminologies
Factors
People Project
Product Process
55
Role of Management in Software
Development
People
Process
56
Multiple Choice
Questions
Note: Select most appropriate answer of the following questions:
1.1 Software is
(a) Superset of programs (b) subset of programs
(c) Set of programs (d) none of the above
1.2 Which is NOT the part of operating procedure
(a) User manuals
manuals? (b) Operational manuals
(c) Documentation manuals (d) Installation manuals
3. Which is NOT a software characteristic?
(a) Software does not wear out (b) Software is flexible
(c) Software is not manufactured (d) Software is always correct
4. Product is
(a) Deliverables (b) User expectations
(c) Organization's effort in development (d) none of the above
1.5 To produce a good quality product, process should be
(a) Complex (b) Efficient
(c) Rigorous (d) none of the above
57
Multiple Choice
Note: Select mostQuestions
appropriate answer of the following questions:
1.6 Which is not a product metric?
(a) Size (b) Reliability
(c) Productivity (d) Functionality
7. Which is NOT a process metric?
(a) Productivity (b) Functionality
(c) Quality (d) Efficiency
8. Effort is measured in terms of:
(a) Person-months (b) Rupees
(c) Persons (d) Months
1.9 UML stands for
(a) Uniform modeling language (b) Unified modeling language
(c) Unit modeling language (d) Universal modeling language
1. An independently deliverable piece of functionality providing access to
its services through interface is called
(a) Software measurement (b) Software
(c) composition
Software measure (d) Software component
58
Multiple Choice
Questions
Note: Select most appropriate answer of the following questions:
1.11 Infrastructure software are covered under
(a) Generic products (b) Customized products
(c) Generic and Customized products (d) none of the above
1.12 Management of software development is dependent
on (a) people (b) product
(c) process (d) all of the above
1.13 During software development, which factor is most crucial?
(a) People (b) Product
(c) Process (d) Project
1.14 Program is
(a) subset of software (b) super set of software
(c) software (d) none of the above
1.15 Milestones are used to
(a) know the cost of the project (b) know the status of the project
(c) know user expectations (d) none of the above
59
Multiple Choice
Note: Select mostQuestions
appropriate answer of the following questions:
1.16 The term module used during design phase refers to
(a) Function (b) Procedure
(c) Sub program (d) All of the above
1.17 Software consists of
(a) Set of instructions + operating system
(b) Programs + documentation + operating procedures
(c) Programs + hardware manuals (d) Set of
programs
1.18 (a) Better engineering
Software performanceapproach
of hardware (b) Error free software
is used to achieve:
(c) Reusable software (d) Quality software product
1.19 Concept of software engineering are applicable to
(a) Fortran language only (b) Pascal language only
(c) ‘C’ language only (d) All of the above
1.20 CASE Tool is
(a) Computer Aided Software Engineering (b) Component Aided Software Engineering
(c) Constructive Aided Software Engineering (d)Computer Analysis Software Engineering
60
Exercises
1.Why is primary goal of software development now shifting
from producing good quality software to good quality maintainable
software?
2.List the reasons for the “software crisis”?Why are CASE tools
not normally able to control it?
3.“The software crisis is aggravated by the progress in
hardware technology?” Explain with examples.
4. What is software crisis? Was Y2K a software crisis?
5.What is the significance of software crisis in reference to
software engineering discipline.
6.How are software myths affecting software process? Explain with the
help of examples.
7.State the difference between program and software. Why have documents
and documentation become very important.
8. What is software engineering? Is it an art, craft or a science? Discuss.
61
Exercises
9.What is aim of software engineering? What does the discipline
of software engineering discuss?
10.Define the term “Software engineering”. Explain the major differences
between software engineering and other traditional engineering disciplines.
11. What is software process? Why is it difficult to improve it?
12.Describe the characteristics of software contrasting it with
the characteristics of hardware.
13.Write down the major characteristics of a software. Illustrate with a
diagram that the software does not wear out.
14.What are the components of a software? Discuss how a software differs
from a program.
15. Discuss major areas of the applications of the software.
16. Is software a product or process? Justify your answer with example
62
Exercises
1.17 Differentiate between the following
(i) Deliverables and milestones (ii) Product and process
(iii) Measures, metrics and measurement
18.What is software metric? How is it different from software
measurement
19. Discuss software process and product metrics with the help of examples.
64