0% found this document useful (0 votes)
35 views61 pages

1 Intro To SE

The document discusses the evolving nature and complexity of software engineering, highlighting the current crisis in the software industry characterized by high project failure rates and cost overruns. It emphasizes the need for systematic approaches and rigorous practices in software development to improve quality and reliability. Additionally, it showcases notable software failures and the contributions of pioneers like Margaret Hamilton to the field of software engineering.

Uploaded by

Samya Sharma
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)
35 views61 pages

1 Intro To SE

The document discusses the evolving nature and complexity of software engineering, highlighting the current crisis in the software industry characterized by high project failure rates and cost overruns. It emphasizes the need for systematic approaches and rigorous practices in software development to improve quality and reliability. Additionally, it showcases notable software failures and the contributions of pioneers like Margaret Hamilton to the field of software engineering.

Uploaded by

Samya Sharma
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/ 61

Software Engineering (3rd ed.), By K.

K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
1
Why Software Engineering ?

❖ Change in nature & complexity of software

❖ Concept of one “guru” is over

❖ We all want improvement

Ready for change

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
2
The Evolving Role of Software

❖ Software industry is in Crisis!

Source: The Standish Group International, Inc. (CHAOS research)

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
3
The Evolving Role of Software

This is the Completed


Successful –
28%
SORRY state Late, over
budget, and/or

of Software with features


missing – 49%

Engineering
Cancelled –
Today! 23%

• Data on 28,000 projects


completed in 2000
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
4
The Evolving Role of Software

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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
5
The Evolving Role of Software

Hw cost
Sw cost

1960 Year
1999
Relative Cost of Hardware and Software

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
6
The Evolving Role of Software

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

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
7
The Evolving Role of Software

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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
8
Factors Contributing to the Software Crisis

• Larger problems,

• Lack of adequate training in software engineering,

• Increasing skill shortage,

• Low productivity improvements.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
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.

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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
10
Some Software failures
When the guidance system’s own
computer tried to convert one
piece of data the sideways velocity
of the rocket from a 64 bit format
to a 16 bit format; the number was
too big, and an overflow error
resulted after 36.7 seconds. When
the guidance system shutdown, it
passed control to an identical,
redundant unit, which was there to
provide backup in case of just such
a failure. Unfortunately, the second
unit, which had failed in the
identical manner a few
milliseconds before.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
11
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
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. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
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...
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
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!

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
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.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
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.

This is Software Engineering.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
17
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
18
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
19
https://www.youtube.com/watch?v=kYCZPXSVvOQ
20
Margaret Hamilton: A Pioneer in
Software Engineering
•NASA and the Apollo Program:
• Director of the Software Engineering
Division at MIT Instrumentation
Laboratory
• Led the team that developed the onboard
flight software for the Apollo missions
• Coined the term "software engineering" to
legitimize the discipline as an engineering
field

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
21
Innovations and Legacy

• Error Detection and Recovery:


• Developed priority scheduling and asynchronous
software to handle real-time events
• Created robust error detection and recovery techniques
that were crucial during the Apollo 11 mission's lunar
landing
• Influence on Modern Software Development:
• Pioneered software engineering principles still used
today
• Advocated for rigorous software testing and validation

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
22
What is software?

• Computer programs and associated


documentation

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
23
What is software?

Programs

Documentation Operating
Procedures

Software=Program+Documentation+Operating Procedures
Components of software
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
24
Documentation consists of different types of manuals
are Formal Specification
Analysis Context-
/Specification Diagram
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
25
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
26
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
27
Software Product
Software product is a product designated for
delivery to the user
docum
source ents
codes reports

manual
object plans s
codes
data

test test
results prototy
suites pes

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
28
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
29
•Software engineering is a holistic, process-driven approach.
•Programming is the act of writing code.
•Hacking involves exploring system vulnerabilities, sometimes
outside conventional boundaries.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
30
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
31
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
32
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
33
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
34
Software Characteristics:
B
u
✔Software does not wear out.
r
n
-i
n Wear out
p
Useful phase
h
a life
s phase
si
F

il

e
u

y
a

e
r

Time
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
35
Software Characteristics:
✔ Software is not manufactured
✔ Reusability of components
✔ Software is flexible

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
36
Software Characteristics:
Comparison of constructing a bridge vis-à-vis writing a program.
Sr. Constructing a bridge Writing a program
No
1. Only some parts of the problem are
The problem is well understood
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.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
37
The Changing Nature of Software

System Real
Software Time
Software

Engineering
and Scientific Embedded
Software Software

Web based Business


Software Software
Artificial
Intelligence Personal
Software Computer
Software

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
38
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
39
Software Myths (Management
Perspectives)
Management may be confident about good
standards and clear procedures of the company.
not in the Recipe !
is in the eating;
But the taste of any food item

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
40
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.
of the product!
that determine the quality
only one of the several factors
The infrastructure is

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
41
Software Myths (Management
Perspectives)
Addition of more software specialists, those with
higher skills and longer experience may bring
the schedule back on the track!

that may further delay the schedule!


Unfortunately,

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
42
Software Myths (Management
Perspectives)

Software is easy to change

The reality is totally different.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
43
Software Myths (Management
Perspectives)

Computers provide greater reliability than


the devices they replace

This is not always true.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
44
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.

towards a disaster.
If we do so, we are heading

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
45
Software Myths (Customer Perspectives)

Software with more features is better


software

Software can work right the first time

Both are only myths!

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
46
Software Myths (Developer Perspectives)

Once the software is demonstrated, the job is done.

Usually, the problems just begin!

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
47
Software Myths (Developer Perspectives)

Software quality can not be assessed before


testing.
software development life cycle.
should be used through out the
However, quality assessment techniques

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
48
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 (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
49
Software Myths (Developer Perspectives)

Aim is to develop working programs

programs!
develop good quality maintainable
Those days are over. Now objective is to

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
50
Some Terminologies

Deliverables and Milestones

Different deliverables are generated during software development.


The examples are source code, user manuals, operating procedure
manuals etc.

The milestones are the events that are used to ascertain the status of
the project. Finalization of specification is a milestone. Completion of
design documentation is another milestone. The milestones are
essential for project planning and management.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
51
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.

Process: Process is the way in which we produce software. It is the


collection of activities that leads to (a part of) a product. An efficient
process is required to produce good quality products.

If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
52
Some Terminologies

Measures, Metrics and Measurement

A measure provides a quantitative indication of the extent,


dimension, size, capacity, efficiency, productivity or reliability of
some attributes of a product or process.

Measurement is the act of evaluating a measure.

A metric is a quantitative measure of the degree to which a system,


component or process possesses a given attribute.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
53
Some Terminologies
Software Process and Product Metrics

Process metrics quantify the attributes of software development


process and environment;
whereas product metrics are measures for the software product.
Examples
Process metrics: Productivity, Quality, Efficiency etc.
Product metrics: Size, Reliability, Complexity etc.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
54
Some Terminologies

Productivity and Effort

Productivity is defined as the rate of output, or production per unit of


effort, i.e. the output achieved with regard to the time taken but
irrespective of the cost incurred.

Hence most appropriate unit of effort is Person Months (PMs),


meaning thereby number of persons involved for specified months.
So, productivity may be measured as LOC/PM (lines of code
produced/person month)

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
55
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.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
56
Some Terminologies

“An independently deliverable piece of functionality providing


access to its services through interfaces”.

“A component represents a modular, deployable, and replaceable


part of a system that encapsulates implementation and exposes a set
of interfaces”.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
57
Some Terminologies

Generic and Customized Software Products

Generic products are developed for anonymous customers. The target


is generally the entire world and many copies are expected to be sold.
Infrastructure software like operating system, compilers, analyzers,
word processors, CASE tools etc. are covered in this category.

The customized products are developed for particular customers.


The specific product is designed and developed as per customer
requirements. Most of the development projects (say about
80%)come under this category.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
58
Role of Management in Software Development

Factors

People
Project

Product Process

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
59
Role of Management in Software Development

People

Project Dependency
4 2 Product
Order

Process

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
60
References

• Software Engineering- K.K. Agarwal &Yogesh Singh, New Age International


Publishers.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
61

You might also like