0% found this document useful (0 votes)
91 views

Chapter 1. Introduction To Software Engineering

The document discusses the evolving role of software engineering. It notes that historically, 28% of software projects were completed successfully, 49% were late or over budget with missing features, and 23% were cancelled. Factors contributing to software failures include larger problems, lack of training in software engineering, skill shortages, and low productivity improvements. The document argues that there is no "silver bullet" that will lead to order-of-magnitude improvements in software development productivity, reliability, and simplicity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views

Chapter 1. Introduction To Software Engineering

The document discusses the evolving role of software engineering. It notes that historically, 28% of software projects were completed successfully, 49% were late or over budget with missing features, and 23% were cancelled. Factors contributing to software failures include larger problems, lack of training in software engineering, skill shortages, and low productivity improvements. The document argues that there is no "silver bullet" that will lead to order-of-magnitude improvements in software development productivity, reliability, and simplicity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

Software Engineering BY Eshetu & Lami

1
10/24/2017
Why Software Engineering ?

• Change in nature & complexity of software

• Concept of one “guru” is over

• We all want improvement

Ready for change

Software Engineering BY Eshetu & Lami


2
10/24/2017
The Evolving Role of Software Engineering

This is the Completed


Successful –
28%

SORRY state Late, over


budget, and/or
with features
of Software missing – 49%

Engineering Cancelled –
Today! 23%

• Data on 28,000 projects completed in 2000

Software Engineering BY Eshetu & Lami


3
10/24/2017
The Evolving Role of Software Engineering

As per the IBM report, “31% of the project


get cancelled before they are completed, 53%
over- run their cost estimates by an average of
189% and for every 100 projects, there are 94
restarts”.

Software Engineering BY Eshetu & Lami


4
10/24/2017
The Evolving Role of Software Engineering

• Unlike Hardware
– Moore’s law: processor speed/memory capacity doubles
every two years

Software Engineering BY Eshetu & Lami


5
10/24/2017
The Evolving Role of Software Engineering

Managers and Technical Persons are asked:

./ Why does it take so long to get the program finished?

./ Why are costs so high?

./ Why can not we find all errors before release?

./ Why do we have difficulty in measuring progress of software


development?

Software Engineering BY Eshetu & Lami


6
10/24/2017
Factors Contributing to the Software Crisis

• Larger problems,

• Lack of adequate training in software engineering,

• Increasing skill shortage,

• Low productivity improvements.

Software Engineering BY Eshetu & Lami


7
10/24/2017
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.

The rocket was destroyed after 39 seconds


of its launch, at an altitude of two and a
half miles along with its payload of four
expensive and uninsured scientific
satellites.
Software Engineering BY Eshetu & Lami
8
10/24/2017
Some Software failures

Y2K problem:

It was simply the ignorance about the


adequacy or otherwise of using only
last two digits of the year.

The 4-digit date format, like 1964,


was shortened to 2-digit format, like
64.

Software Engineering BY Eshetu & Lami


9
10/24/2017
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 BY Eshetu & Lami
10
10/24/2017
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...
Software Engineering BY Eshetu & Lami
11
10/24/2017
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!

Software Engineering BY Eshetu & Lami


12
10/24/2017
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.

Software Engineering BY Eshetu & Lami


13
10/24/2017
Some Software failures

Windows XP
oMicrosoft 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.

This is Software Engineering.

Software Engineering BY Eshetu & Lami


14
10/24/2017
“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
management technique, that by itself
promises even one order of magnitude
improvement in productivity, in reliability
and in simplicity.
Software Engineering BY Eshetu & Lami
15
10/24/2017
“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?

Software Engineering BY Eshetu & Lami


16
10/24/2017
“No Silver Bullet”

The blame for software bugs belongs to:

• Software companies
• Software developers
• Legal system
• Universities

Software Engineering BY Eshetu & Lami


17
10/24/2017
What is software?

• Computer programs and associated


documentation

Software Engineering BY Eshetu & Lami


18
10/24/2017
What is software?

Programs

Operating
Documentation
Procedures

Software=Program+Documentation+Operating Procedures
Components of software
Software Engineering BY Eshetu & Lami
19
10/24/2017
Documentation consists of different types of manuals are
Formal Specification
Analysis Context-Diagram
/Specification
Data Flow Diagrams

Flow Charts
Design
Entity-Relationship
Documentation Diagram
Manuals
Source Code Listings
Implementation Cross-Reference
Listing
Test Data
Testing Test Results

List of documentation manuals


Software Engineering BY Eshetu & Lami
20
10/24/2017
Documentation consists of different types of manuals are
System Overview
User Beginner’s Guide
Manuals Tutorial
Reference Guide

Operating
Procedures

Installation Guide
Operational
Manuals
System
Administration Guide

List of operating procedure manuals.


Software Engineering BY Eshetu & Lami
21
10/24/2017
Software Product

• 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
–Bespoke (custom) - developed for a single customer according
to their specification

Software Engineering BY Eshetu & Lami


22
10/24/2017
Software Product
Software product is a product designated for
delivery to the user
Source Reports Documents
Codes

Manuals
Objects Plans
Codes Data

Test
Suites Test Prototypes
results

Software Engineering BY Eshetu & Lami


23
10/24/2017
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
Software Engineering BY Eshetu & Lami
24
10/24/2017
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”.

Stephen Schach defined the same as “A discipline whose aim is the


production of quality software, software that is delivered on time,
within budget, and that satisfies its requirements”.

Both the definitions are popular and acceptable to majority.


However, due to increase in cost of maintaining software, objective
is now shifting to produce quality software that is maintainable,
delivered on time, within budget, and also satisfies its requirements.
Software Engineering BY Eshetu & Lami
25
10/24/2017
Software Process

The software process is the way in which we produce


software.

Why is it difficult to improve software process ?

• Not enough time

• Lack of knowledge

Software Engineering BY Eshetu & Lami


26
10/24/2017
Software Process

• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state

Productivity

Do not quit here!

Learning curve

Time

Software Engineering BY Eshetu & Lami


27
10/24/2017
Software Characteristics:

. / Software does not wear out.

Burn-in
phase Wear out
phase
Failure Intensity

Useful life
phase

Time
Software Engineering BY Eshetu & Lami
28
10/24/2017
Software Characteristics:
./ Software is not manufactured
./ Reusability of components
./ Software is flexible

Software Engineering BY Eshetu & Lami


29
10/24/2017
Software Characteristics:
Comparison of constructing a bridge vs 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. 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 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.

Software Engineering BY Eshetu & Lami


30
10/24/2017
The Changing Nature of Software

System Real
Software Time
Software
Engineering Embedded
and Scientific Software
Software

Web based Business


Software Software
Artificial
Intelligence Personal
Software Computer
Software

Software Engineering BY Eshetu & Lami


31
10/24/2017
The Changing Nature of Software

Trend has emerged to provide source code to the


customer and organizations.

Software where source codes are available are known


as open source software.
Examples
Open source software: LINUX, MySQL, PHP, Open office,
Apache webserver etc.

Software Engineering BY Eshetu & Lami


32
10/24/2017
Software Myths (Management Perspectives)

Management may be confident about good


standards and clear procedures of the company.

But the taste of any food item


is in the eating;
not in the Recipe !

Software Engineering BY Eshetu & Lami


33
10/24/2017
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!

Software Engineering BY Eshetu & Lami


34
10/24/2017
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!

Software Engineering BY Eshetu & Lami


35
10/24/2017
Software Myths (Management Perspectives)

Software is easy to change

The reality is totally different.

Software Engineering BY Eshetu & Lami


36
10/24/2017
Software Myths (Management Perspectives)

Computers provide greater reliability than


the devices they replace

This is not alw ays true.

Software Engineering BY Eshetu & Lami


37
10/24/2017
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.

If w e do so, w e are heading


tow ards a disaster.

Software Engineering BY Eshetu & Lami


38
10/24/2017
Software Myths (Customer Perspectives)

Software with more features is better


software

Software can work right the first time

Both are only myths!

Software Engineering BY Eshetu & Lami


39
10/24/2017
Software Myths (Developer Perspectives)

Once the software is demonstrated, the job is done.

Usually, the problems just begin!

Software Engineering BY Eshetu & Lami


40
10/24/2017
Software Myths (Developer Perspectives)

Software quality can not be assessed before


testing.

How ever, quality assessment techniques


should be used through out the
softw are development life cycle.

Software Engineering BY Eshetu & Lami


41
10/24/2017
Software Myths (Developer Perspectives)

The only deliverable for a software


development project is the tested code.

Tested code is only one of the deliverable!

Software Engineering BY Eshetu & Lami


42
10/24/2017
Software Myths (Developer Perspectives)

Aim is to develop working programs

Those days are over. Now objective is to


develop good quality maintainable
programs!

Software Engineering BY Eshetu & Lami


43
10/24/2017
Thank YOU
On the next class come with
your formed group and title

You might also like