SE Introduction

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 30

Software Engineering

Software Evolutions

Software 0.0 Software 1.0 Software 2.0

C, C++ is being used


Machine Driven Self Programming
Manual Object oriented paradigm
Leverage Machine Intelligence
Human Driven
Computations Rule Based Proactive
Limited Efficiency High Efficiency

Small Solution
based programs Machine Assisted decision making
Predictive
Continuous Efficiency Improvement
What is Software Paradigm?
Software paradigm refers to methods and steps which are taken while developing the
software.

Software Development Paradigm is also known as Software Engineering.


What is Software?
Software

Software Associated
Code Documents
Documentation

Documentation

Requirement ,
Analysis, Design
Manual
and Testing
Document

Operational
User Manual
Manual
Software Code
• Software code refers to a set of instructions
or programs that are designed to perform
specific tasks on a computer or other
electronic devices.
Associated Documents Examples
• User Manual
• Administration Manual
• Requirement Specification Document like
Software Requirement Specifications
• Design documents like class diagram, Activity
Diagram
• Testing Documents like test cases
What is Software Engineering
The IEEE (Institute of electrical & Electronics
Engineer) defines software engineering as:

The application of a systematic, disciplined,


quantifiable approach to the development,
operation, and maintenance of software; that is,
the application of engineering to software.
When S.E Started?
• 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.
Why Software Engineering
• Difference between Engineering approach and
traditional approach to develop software.
– Building Construction Analogy.
Building a small wall with basic intuition will work
but building a building having 20-30 floors needs
proper planning and skills.
Software Engineering is required to develop quality
software within time and budget.
Challenges in Software Development
• Ever increasing Complexity
• Rapid changing Newer Technologies
• Higher Performance Requirement
• Skill shortage
• Fast Development
Hardware Vs Software
• Improvement in Productivity
• Hardware Cost has decreased drastically.
Hardware failure Vs Software Failure
• Bath tub Curve graph
It graphically represents Run to
failure maintenance strategy of hardware.

• Software failure curve


The software does not have an
increasing failure rate as hardware does.
The software will experience a radical
increase in failure rate each time an
upgrade is made. Software doesn’t wear
Out. Reusability of components. Software is
Flexible.
Software Crisis
• Not of desired quality.
• Delivered Late
• Cost more than expected.
• Difficult to maintain.
Software Crises(cont.)
Laptop Cost
1990-70,000/-
2022-45,000/-
Hw cost AutoCAD –
Sw cost 1990-4,55,000/-
2022-5,88,335/-

1990 Year
2022

Relative Cost of Hardware and Software


Software Process
• The way we develop the software.
Why it is difficult to improve software
process?
• Lack of knowledge
• Wrong motivations
• Insufficient commitments
• Not Enough Time
Software Failures of 2022
• A data breach at T-Mobile affects 50 million
customers.
The biggest cybersecurity software failure of 2022 is the massive data breach at T-Mobile, which saw 50
million people’s names, addresses, and phone numbers stolen from the company’s servers. The hackers also
stole internal documents that included information about a merger between Sprint and T-Mobile—a deal
that was supposed to be announced soon after the hack but never materialized due to its controversial
nature.

• Slack receives criticism for its new public DM


feature.
The software flaw allows anyone to send you a DM without you having to accept it. In other words, they
can message you without your permission or knowledge! Users have complained that there's no way to turn
off the feature entirely, leading to unwanted messages in your inbox.
“No Silver Bullet”
• A TikTok bug reduces followers to zero.
Researchers found the issue at the University of Texas at Austin, looking into how social media platforms use
user data for targeted advertising. They discovered a software flaw within TikTok’s code that allows any user
who knows how to manipulate it (such as someone on staff) to delete all followers from another user’s account
without their permission or knowledge.

• Due to a bug, Call of Duty: Warzone has


removed a new feature.
The new Call of Duty: Warzone expansion was supposed to be a huge deal, but it was shut down before its
planned release because of the biggest software bug .

• Tesla recalled nearly 12,000 vehicles.


Tesla has recalled nearly 12,000 vehicles after one of its battery controllers failed and caused the vehicle to
catch fire. The recall affects Tesla Model S, Model X, and Model 3 vehicles manufactured between January
2019 and March 2019.
Top software Failures in Recent History
• Data Loss at Gitlab- Two years ago a well-known code collaboration platform GitLab
experienced a severe data loss which appeared to be one of the major outages in the IT
world. GitLab originally used only one database server but decided to test a solution
using two servers.
• British Airways “Technical Issue”This summer the flag carrier airline of the UK —
British Airways — reported an IT system issue that resulted in the delay of hundreds of
flights in the UK, while dozens of flights were canceled completely. This failure affected
three British airports and thousands of passengers who had to rebook their flights or
check-in by using manual systems.
• Amazon AWS Outage Amazon’s AWS, which is considered to be one of the most
reliable hosting services, experienced a serious outage in the eastern coast of the U.S in
2017.
• Facebook’s User Data-Leak Last year Facebook, whose ability to handle the private
information had been already questioned, confirmed that nearly 50 million accounts
could be at risk. Hackers exploited a vulnerability in the system that allowed them to
get access to the accounts and possibly to the personal information of Facebook’s users.
• Pentium FDIV Bug, 1994 The Pentium FDIV bug is a curious case of a minor problem
that snowballed due to mass hysteria.
Objectives of Software Engineering
• Good quality software.
• Within Time
• Within Budget
• Maintainable software
Is software an art or engineering?
Is software an art or engineering?
• Theoretical basis and quantitative techniques
provided.
• Use of Past experience.
• Tradeoff between alternatives.
• Pragmatic approach to cost effectiveness.
Challenges of software Development
• Banking management software- Earlier the banking software
was developed just to keep the user accounts. Nowadays
banking is available in phones to access each small feature.
– Complexity of software changes due to increased expectation of
users.
– Everchanging technology- programming language, platform change,
architectural changes and security boundation changes with time.
– Penetration of internet leads to challenges in security, load and
performance.
– Requirement Challenges- With time user requirement changes.
– Security Concerns- As more applications move to the cloud and
more data is stored online, security concerns have become
increasingly important.
Types of Software
System
Management
Program
System Software
Developing
Software
Software
General Purpose
Software
Application
Software
Specific Purpose
Software
• System Software controls the internal computer
operation.
• System Management Program includes Operating systems,
Device drivers , System utilities, embedded systems.
• Developing software can be Programming language,
language translator, linker or loader.
• General purpose software constitutes word processor,
image editor, presentation etc.
• Specific Purpose software can be scientific software or real
time applications.
Types of Software
• On the basis of Development, Software can be categorised
into two:
Software

Generic Customised
Software Software

• Generic Software are developed by companies for aim of


earning profit from clients by using it.
• Customised Software are developed on demand from the
client. Client pay for the software.
• On the basis of Application , software can be divided into two:
Software

Scientific Business
Embedded Real Time
Application Application
Software Software
Software Software

• Embedded Software are preinstalled for the user interface. Size should
be minimum.
• Real Time software are time efficient where response time must be fast.
• Scientific softwares are developed to keep precision and accuracy
efficiently.
• Business application software are developed keeping in mind accuracy,
time and security upto date.
• When the software is developed ,
maintenance of software is also considered.
• Maintenance cost is more than the
development cost.

You might also like