0% found this document useful (0 votes)
2 views51 pages

Software engineering!

The document provides an overview of software engineering, emphasizing its importance in producing quality software that meets customer requirements within budget and time constraints. It discusses the software crisis, challenges faced by the industry, and the need for improved methodologies and tools. Additionally, it outlines key concepts such as software processes, products, and the differences between generic and customized software.

Uploaded by

Ad Nan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
2 views51 pages

Software engineering!

The document provides an overview of software engineering, emphasizing its importance in producing quality software that meets customer requirements within budget and time constraints. It discusses the software crisis, challenges faced by the industry, and the need for improved methodologies and tools. Additionally, it outlines key concepts such as software processes, products, and the differences between generic and customized software.

Uploaded by

Ad Nan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 51

Software Engineering

Dr. Shafiqul Abidin


Associate Professor
Department of Computer Science
Aligarh Muslim University (AMU)
Aligarh

PPT are based on Software Engineering), By K.K


Aggarwal & Yogesh Singh
& 1
Software Engineering by Roger S Pressman
Introduction to Software
Engineering – Basic Concepts
Part -1
CABSM6001
Why to study software engineering?
Why to study software engineering?
Why to study software engineering?

The software development process


needs to be engineered to avoid the
communication gap & meet the
actual requirements of customer
within stipulated budget and time
Software Engineering
Software Application Domains
What is Software?
What is software?

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

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

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
13
Software Engineering
Software Engineering Layered Approach
Software Engineering Layered Approach -
contd…
Software Engineering Layered Approach
The evolving role of software
The evolving role of software

SORRY STATE

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”.
The evolving role of Software
Software Evaluation
Software Engineering Paradigm
Software Engineering Paradigm

Software paradigms refer to the methods and steps,


which are taken while designing the software. There are
many methods proposed and are in work today, but we
need to see where in the software engineering these
paradigms stand. These can be combined into various
categories, though each of them is contained in one
another:
Software Crisis

The term “software crisis” refers to the numerous


challenges and difficulties faced by the software
industries. Software crisis was due to using same
workforce, same methods, and same tools even
though rapidly increasing in software demand,
complexity of software and software challenges.
This resulted in increased costs, project delays,
and subpar software quality, highlighting the need
for new methodologies and tools to tackle these
challenges.
Factors contributing to the software
crisis
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.

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.

This is Software Engineering.

29
Characteristics of Software

✓Software does not wear


out.
Burn-in
phase Wear out
phase
Failure Intensity

Useful life
phase

Time
30
Characteristics of Software

✓ Software is not manufactured


✓ Reusability of components
✓ Software is flexible

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

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

33
Software Process

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

Productivity

Do not quit here!

Learning curve

Time

34
Product & Process
Product

It is the outcome of a planned and managed software project.

In the context of software engineering, Product includes any s


software manufactured based on the customer’s request. This
can be a problem solving software or computer based system. I
t can also be said that this is the result of a project.

Process
It supports software development by offering the structure of a
complete software development strategy.

The main purpose of a process is to improve the quality of the


project. The process serves as a template that can be used
through the creation of its examples and is used to direct the
project.
Product v/s Process
Product and Process
Project
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

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.

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.

47
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.

48
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.

49
Bug, Defect, Error, Fault and Failure

50
Bug, Defect, Error, Fault and Failure

51

You might also like