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

Software Engineering

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Software Engineering

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

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,
Manual Design and Testing
Document

User Manual Operational 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 Software Engineering was Coined?

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

Museum of the future- Dubai, UAE


(https://museumofthefuture.ae/en)
Challenges in Software Development

● Ever increasing Complexity


● Rapid changing Newer Technologies
● Higher Performance Requirement
● Skill shortage
● Fast Development
● Artificial Intelligence (AI) can be used to speed up
adding new features, bug fixes, and support
requests.
Impact of AI on Software Development
Ref: 1. [https://www.addwebsolution.com/blog/ai-in-software-development] and 2. [Görkem Giray, A
software engineering perspective on engineering machine learning systems: State of the art and challenges,
Journal of Systems and Software, Volume 180, 2021, 111031 ,ISSN 0164-1212].

● Developers can use AI to facilitate collaboration with


Colleagues, Stakeholders, and Customers.
●Advancements in Machine Learning (ML) lead to a shift from the
traditional view of Software Development, where algorithms are
hard-coded by humans, to ML systems materialized through
learning from data.
● Therefore, we need to revisit our ways of Developing Software
Systems and consider the particularities required by these new
types of systems.
Impact of AI on Software Development
(Contd..)
Ref: 1. [https://www.addwebsolution.com/blog/ai-in-software-development] and 2. [Görkem Giray, A
software engineering perspective on engineering machine learning systems: State of the art and challenges,
Journal of Systems and Software, Volume 180, 2021, 111031 ,ISSN 0164-1212].

● Testing is by far the most popular area among Researchers.


Even for testing ML systems, engineers have only some tool
prototypes and solution proposals with weak experimental
proof.

● Many of the challenges of ML systems engineering were


identified through surveys and interviews.

● Researchers should conduct experiments and case studies,


ideally in Industrial Environments, to further understand these
challenges and propose solutions.
HARDWARE Vs SOFTWARE

● Improvement in Productivity

● Hardware Cost has decreased drastically


SOFTWARE CRISIS

● Not of desired quality.

● Delivered Late.

● Cost more than expected.

● Difficult to maintain.
SOFTWARE CRISIS (CONT.)

Laptop Cost
1990-70,000/-
2022-45,000/-
AutoCAD –
Hw cost 1990-4,55,000/-
Sw cost 2022-5,88,335/-

1990 Year
2022

Relative Cost of Hardware and Software


Hardware failure Vs Software Failure

● Bathtub 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. Software is Flexible.
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


Big Software Failure in 2023

● The NYSE’s brittle backup process


● The NYSE wisely locates its backup servers in Chicago, hundreds of miles away from Wall Street, to serve as a
data redoubt in case a crisis hits lower Manhattan; somewhat less wisely, its daily backup relies on a process
whereby employees have to physically turn backup systems on and off at appropriate times.

● Starting and stopping digital processes at the exact same time every day is in fact something computers are fairly
good at, and that people tend to screw up now and then, so it was perhaps inevitable that one of these days a
crisis would arise.

● And arise it did on January 24, when a Chicago employee failed to turn the backup server off at the
appropriate time. As a result, when trading began in New York at 9:30 a.m., the NYSE computers thought
they were continuing the previous day’s trading session and ignored the day’s opening auctions, which
are supposed to set initial prices for many stocks.

● The outcome was a series of violent market swings and numerous transactions at incorrect prices that had to be
cancelled at great expense.

● The lesson: Never send a human to do a computer’s job, especially if that computer’s job is pretty simple.

Another lesson: Automatic Backup should be preferred in the Critical Systems, and it should be
mentioned in the requirements.
Big Software Failure in 2023 (Contd..)

● Tech Trouble in the skies


● The Federal Aviation Administration (FAA) maintains a database called
Notice to Air Missions (NOTAM) that provides an automated, centralized
source of information about things like closed runaways or equipment outages
at various Airports, or Hazards along different routes.
● On January 11, NOTAM went down, causing a nationwide “ground stop” that
halted all takeoffs, though planes in the air were allowed to continue to their
destinations.
● The outage was traced to a damaged database file. A contractor was working
to correct a problem with the synchronization between live and backup
databases and ended up corrupting both. The engineer “replaced one file
with another” in “an honest mistake that cost the country millions,” with
the incident holding some obvious lessons for ensuring critical data is backed
up redundantly, especially if you’re going to be mucking around with the
backup system.
Big Software Failure in 2023 (Contd..)

● In space, no-one can cancel your Software License


● NASA purchased numerous licenses for Oracle products to support the
Space Shuttle program, which wrapped up more than a decade ago; not
only is the agency locked into Oracle tech as a result, but poor
documentation processes means that NASA isn’t really sure how many of
those Oracle systems they’re actually using. As a result, the agency spent
$15 million over the past three years on software it may not be using,
but didn’t want to risk a software audit from Oracle that might end in a
fine that’s even more costly.
● The solution to a problems like this is to implement a software asset
management program that can help you understand exactly what
software you’re using and what license you need and don’t need.
Big Software Failure in 2023 (Contd..)

● Artificial Intelligence, real failure


● In one of the more high-profile cases, lawyers at Levidow, Levidow &
Oberman turned to ChatGPT to help them draft legal briefs related to a
client of theirs suing an airline over a personal injury.
● Unfortunately for them and their client, ChatGPT did what it’s becoming
increasingly well known for: produce an extremely plausible document
that included a number of factual errors, including citations of multiple
court cases that did not exist (a “hallucination,” in AI lingo).
● Schwartz admitted to the judge that he was “was unaware of the
possibility that its contents could be false.”
● In his defense, he had asked ChatGPT if its citations were fake, and the
chatbot had insisted that they could “be found in reputable legal
databases such as LexisNexis and Westlaw.” (This turned out not to be
true.)
Software Failures of 2022

● A data breach at T-Mobile affects 50 million customers.


● Multiple T-Mobile USA customers have gone to social media to
report seeing the sensitive information (credit card balances,
purchase history, credit card information, device IDs, and home
addresses) of other customers when logging in to view their
personal account.
● “This was a temporary system glitch related to a planned overnight
technology update involving limited account information for fewer
than 100 customers, which was quickly resolved”, said Tara
Darrow, T-Mobile spokesperson.
● The telecom operator had also suffered a data breach in 2021
that affected 47 million people, ultimately leading to a
class-action lawsuit and a $500 million settlement.
Top Software Failures in Recent History

● Data Loss at Gitlab- 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” 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.
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.

○ Ever Changing 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 (Contd..)

● On the basis of Development, Software can be categorised into two:

Software

Customised
Generic 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.
Types of Software (Contd..)
● On the basis of Application , Software can be divided into following:

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 and mostly depends on the software requirement .
Points to Keep in Mind

● When the Software is Developed, Maintenance of


Software is also considered.

● Maintenance Cost is more than the Development


Cost.

You might also like