0% found this document useful (0 votes)
21 views32 pages

Software Engineering - PP.V11

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views32 pages

Software Engineering - PP.V11

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

Software Engineering

Chapter 1: Introduction
• We can’t run the modern world without software.

• National infrastructures and utilities


• Most electrical products
• Industrial manufacturing
• Entertainment, including the
• Music industry, computer games, and film and television etc.

• Are all software intensive


• There are many different types of software systems, from simple
embedded systems to complex, worldwide information systems.
History of software engineering
• Software engineering was spurred by the so-called software crisis
of the 1960s, 1970s, and 1980s, which identified many of the
problems of software development.
• Many projects ran over budget and schedule.
• Some projects caused property damage.
• A few projects caused loss of life.
• The software crisis was originally defined in terms of productivity,
but evolved to emphasize quality.
• Some used the term software crisis to refer to their inability to hire
enough qualified programmers.
Software Crises
• The term “software crisis” refers to the numerous
challenges and difficulties faced by the software
industry during the 1960s and 1970s.
• It became clear that old methods of developing software
couldn’t keep up with the growing complexity and
demands of new projects.
• This led to high costs, delays, and poor-quality software.
New methodologies and tools were needed to address
these issues.
• The software crisis was due to using:
• the same workforce,
• same methods, and same tools
• even though rapidly increasing software demand, the
complexity of software, and software challenges.

• With the increase in software complexity, many


software problems arose because existing methods
were insufficient.

• Some issues like software budget problems, software


efficiency problems, software quality problems,
software management, and delivery problems, etc. arise
Causes of Software Crisis…
• The cost of owning and maintaining software was as
expensive as developing the software.
• At that time Projects were running overtime.
• At that time Software was very inefficient.
• The quality of the software was low quality.
• Software often did not meet user requirements.
• The average software project overshoots its schedule by half.
• At that time Software was never delivered.
• Non-optimal resource utilization.
• Challenging to alter, debug, and enhance.
• The software complexity is harder to change.
Factors Contributing to
Software Crisis
• Poor project management.

• Lack of adequate training in software engineering.

• Less skilled project members.

• Low productivity improvements.


Therefore…….

A well
disciplined approach to software
development and management is
necessary.

IT is…… software engineering.


Software Crisis
• https://www.geeksforgeeks.org/software-engineering-sof
tware-crisis/
• https://www.youtube.com/watch?v=n-YZNApgACs
• https://readwrite.com/software-development-failure/

• https://www.computerhope.com/jargon/p/punccard.htm
Software Crisis

• Example 1

• Saturday3rd October 2009-London ,England(CNN)

• Dozens of flights from the UK were delayed Saturday after a glitch in an air traffic
control system in Scotland, but the problem was fixed a few hours later

• The agency said it reverted to backup equipment as engineering worked on the


system

• The problem did not create a safety issue but could cause delays in flights
• Example 2: Ariane5 Explosion

• European Space Agency spent 10 years and 7 billion to


produce Ariane 5

• Crash after 36 7 seconds

• Caused by an overflow error Trying to store a 64 bit


number into a 16 bit space

• http://www.youtube.com/watch?v=z-r9cYp3tTE
• Example 3: 1992, London Ambulance Service

• Considered the largest ambulance service in the world

• Overloaded problem

• It was unable to keep track of the ambulances and their


statuses. Sending multiple units to some locations and no
units to other locations

• 46 deaths
Professional software
development
• Lots of people write programs.
• However, the vast majority of software development is a
professional activity where software is developed for specific
business purposes, for inclusion in other devices,or as
software products such as information systems, CAD
systems, etc.
• Software engineering is intended to support professional
software development, rather than individual programming.
• It includes techniques that support program specification,
design, and evolution, none of which are normally relevant
for personal software development.
• Many people think that software is simply another word
for computer programs.

• However, when we are talking about software


engineering, software is not just the programs
themselves but also all associated documentation and
configuration data that is required to make these
programs operate correctly.
• A professionally developed software system is often
more than a single program.
• Software Engineering is a collection of techniques,
methodologies and tools that help with the production
of a high-quality software system with a given budget
before a given deadline
The definition identifies two key phrases

1. Engineering discipline

• Engineers make things work. They apply theories, methods


and tools where these are appropriate... Engineers also
recognise that they must work to organisational and financial
constraints.

2. All aspects of software production

• Software engineering is not just concerned with the technical


processes of software development, but also with activities
such as:
• software project management
• and with the development of tools,
• The system usually consists of:
• of a number of separate programs
• configuration files that are used to set up these programs.
• may include system documentation, which describes the
structure
• of the system;
• user documentation, which explains how to use the system,
• and websites for users to download recent product
information.
• Software engineers are concerned with developing
software products (i.e., software which can be sold to a
customer).

• There are two kinds of software products:

• Generic products
• These are stand-alone systems that are produced by a
development organization and sold on the open market to any
customer who is able to buy them.

• Customized (or bespoke) products


• These are systems that are commissioned by a particular
customer. Examples: air traffic control system,
• An important difference between these types of
software is that,

• In generic products the organization that develops the


software controls the software specification.

• For custom products, the specification is usually developed


and controlled by the organization that is buying the software.
• Software engineering is related to both computer
science and systems engineering:

• Computer science is concerned with the theories and methods


that underlie computers and software systems,
• Whereas software engineering is concerned with the practical
problems of producing software.
29

Challenges facing software engineering

Challenge Details

Human issues – fallibility, communication, social skills,


People issues psychological effects

Check Brooks difficulties


Technical issues Heterogeneity, Requirements refinement, choice of tech, UI
design, productivity

Process issues e.g. methodology (agile vs plan driven, etc.)

Project issues SW estimates,

Quality issues Tolerance to errors, etc.


30

Challenges facing software engineering

Challenge Why? Software needs to ..

Different computers, different


Heterogeneity platforms, different support systems.
Cope with this variability.

Businesses are more responsive


Be delivered in shorter time
Delivery  supporting software needs to without compromising quality.
evolve as rapidly.

Software is a part of many aspects of


Demonstrate that it can be
Trust our lives (work, study, leisure).
trusted by users.
Ethics in SE
• Like other engineering disciplines, SE is carried out
within social and legal framework that limits the
freedom of people working in that area.
• As a SE, you must accept that your job involves
wider responsibilities than simply the application
of technical skills.
• You must also behave in an ethical and morally
responsible way if you are to be respected as a
professional engineer.
• You should uphold normal standards of honesty
and integrity.
• You should not use your skills and abilities to 31
• Confidentiality You should normally respect the
confidentiality of your employers or clients
• Competence You should not misrepresent your
level of competence. You should not knowingly
accept work that is outside your competence.
• IP rights You should be aware of local laws
governing the use
of intellectual property such as patents and
copyright.
• 4. Computer misuse You should not use your
technical skills to misuse other people’s 32

You might also like