Software engineering!
Software engineering!
Programs
Operating
Documentation
Procedures
Software=Program+Documentation+Operating Procedures
Components of software
9
List of documentation & manuals
Software Engineering
Software engineering is an
engineering discipline which is
concerned with all aspects of software
production
Software Engineering
SORRY STATE
Y2K problem:
26
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. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
13
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.
28
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.
29
Characteristics of Software
Useful life
phase
Time
30
Characteristics of Software
31
Characteristics of Software
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 of the problem are
understood, others are not
2. Every program is different and designed for
There are many existing bridges
special applications.
3. The requirement for a bridge typically do Requirements typically change during all
not change much during construction 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, there is a When a program fails, the reasons are often
detailed investigation and report unavailable or even deliberately concealed.
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.
32
Software Process
• Lack of knowledge
33
Software Process
• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state
Productivity
Learning curve
Time
34
Product & Process
Product
Process
It supports software development by offering the structure of a
complete software development strategy.
System Real
Software Time
Software
Engineering Embedded
and Scientific Software
Software
39
Software Myths – Beliefs about software and the process used to build
it.
Management myth - 1 & 2
Management myth - 3 & 4
Customer myth - 1 & 2
Customer myth - 1 & 2
Practitioner’s (Developer) myth - 1 & 2
Practitioner’s (Developer) myth - 3 & 4
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.
47
Some Terminologies
➢ Software Process and Product Metrics
48
Some Terminologies
49
Bug, Defect, Error, Fault and Failure
50
Bug, Defect, Error, Fault and Failure
51