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

Lec 1

The document discusses the challenges and failures in software engineering, highlighting the software crisis characterized by high project cancellation rates and budget overruns. It emphasizes the complexity of software development and the lack of a 'silver bullet' solution to improve productivity and reliability. Additionally, it defines software engineering as a systematic discipline focused on producing high-quality software while addressing the evolving role of software in various applications.

Uploaded by

disha.misri01
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)
6 views

Lec 1

The document discusses the challenges and failures in software engineering, highlighting the software crisis characterized by high project cancellation rates and budget overruns. It emphasizes the complexity of software development and the lack of a 'silver bullet' solution to improve productivity and reliability. Additionally, it defines software engineering as a systematic discipline focused on producing high-quality software while addressing the evolving role of software in various applications.

Uploaded by

disha.misri01
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/ 24

Software Engineering

Unit-1
Books
1. R. S. Pressman, “Software Engineering – A
practitioner’s approach”, 3rd ed., McGraw Hill
Int. Ed., 1992.

2. K.K. Aggarwal & Yogesh Singh, “Software


Engineering”, New Age International, 2001
The Evolving Role of Software

❖ Software industry is in Crisis!

success
16%
failure
31%

over budget
53%
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%
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 Crisis
• It is a term used in computer
science for the difficulty of
writing useful and efficient
computer programs in the
required time .

• Software crisis was due to using


same workforce, same
methods, same tools even
though rapidly increasing in
software demand, complexity of
software and software
challenges.

• With increase in the complexity


of software, many software
problems arise because existing
methods were insufficient.
Some Software failures:

• The Northeast blackout in 2003:


– Major power system failure in the history of
northeast America that involves 100 Power plants.
– 50 million customer faced problem
– Financial Loss -6 Billion dollor
Some Software failures
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 overwhelming
supermacy Europe commercial space business.
the

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.
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.
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.
“No Silver Bullet”
• There is no product or method or a trick that can guarantee
successful results
• 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.
“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.
“No Silver Bullet”

The blame for software bugs belongs to:

• Software companies
• Software developers
• Legal system
• Universities
Factors Contributing to the
Software Crisis
• Larger problems,

• Lack of adequate training in software engineering,

• Increasing skill shortage,

• Low productivity improvements.


What is Software?
• Computer software is the product that software
engineers design and build.
• Software community continually attempts to develop
technologies that will make it easier, faster, and less
expensive to build high-quality computer programs.
• Some of these technologies are targeted at a specific
application domain (e.g., Web-site design and
implementation)
What is software?

• Computer programs and associated


documentation
Formal Definition
• Software is
(1) instructions (computer programs) that when
executed provide desired function and
performance,
(2) data structures that enable the programs to
adequately manipulate information, and
(3) documents that describe the operation and
use of the programs.
What is Engineering?
• Engineering is the analysis, design, construction, verification, and
management of technical (or social) entities.

• The following questions must be asked and answered:


– What is the problem to be solved?
– What characteristics of the entity are used to solve the problem?
– How will the entity (and the solution) be realized?
• How will the entity be constructed?
• What approach will be used to uncover errors that were made in the
design
and construction of the entity?
• How will the entity be supported over the long term, when
corrections, adaptations, and enhancements are requested by users of
the entity
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
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.
What is Software Engineering
• According to the IEEE [IEE93] :

Software Engineering:
The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software; that is,
the application of engineering to software.
Software Engineering Layers

Software Engineering is an layered approach


Cont…
• Software engineering is a layered technology.
– Quality : organizational commitment to quality.

– Process: the basis for management control of software projects


and establish the context in which technical methods are
applied, work products (models, documents, data, reports,
forms, etc.) are produced, milestones are established, quality is
ensured, and change is properly managed.

– Methods: It include requirements analysis, design, program


construction, testing and support

– Tools: provide automated or semi-automated support for the


process and the methods
Dual Role of Software
• Software takes on a dual role.
– It is a product and, at the same time,
– the vehicle for delivering a product

You might also like