0% found this document useful (0 votes)
33 views49 pages

RPL - Week 1 - Introduction - Rev

The document provides an introduction to software engineering. It discusses the course goals which are for students to understand software engineering concepts, phases, and techniques used in each phase. It also discusses famous software defects like the Therac 25 radiation overdoses and the Ariane 5 rocket explosion. The document covers the software crisis in the 1960s and characteristics of software like being intangible and prone to bugs from changes. It defines systems and elements of a system like boundaries, environment, and control mechanisms.
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)
33 views49 pages

RPL - Week 1 - Introduction - Rev

The document provides an introduction to software engineering. It discusses the course goals which are for students to understand software engineering concepts, phases, and techniques used in each phase. It also discusses famous software defects like the Therac 25 radiation overdoses and the Ariane 5 rocket explosion. The document covers the software crisis in the 1960s and characteristics of software like being intangible and prone to bugs from changes. It defines systems and elements of a system like boundaries, environment, and control mechanisms.
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/ 49

INTRODUCTION TO

SOFTWARE ENGINEERING
Slide structure by Thomas Anung Basuki
Modified by Vania Natali
OVERVIEW
 About the course
 Motivation
 System and software
 System engineering and software engineering

5
ABOUT THE COURSE
COURSE GOALS
 Students understand software engineering concepts
 Students understand software engineering phases
 Students understand techniques commonly used in each
phase of software engineering
 Students are capable to apply software engineering
techniques to a small-scale project

5
TEXTBOOKS
[1] Roger S. Pressman, Software Engineering: A
Practitioner’s Approach 8th ed., McGraw Hill, 2015
[2] Ian Sommerville, Software Engineering 9th ed , Addison-
Wesley, 2011
[3] Rumbaugh, Jacobson and Booch, The UML Reference
Manual 2nd ed., Addison-Wesley, 2005
[4] Rod Stevens, Beginning Software Engineering, John
Wiley & Sons, 2015

5
MOTIVATION
Remember you team project(s) (ADPL, MIBD, etc.)?
Please explain about your software project!
How about your teamwork process?
Did the result match the requirement?
Does the software still ‘alive’?
Have you found any bug on your software?

Have you ever uninstalled an apps just a minute away


from the installation?

Please discuss the reason behind!


FAMOUS SOFTWARE DEFECTS
 The $0.00 famous story
 TAURUS
 Ariane 5
 Mars Climate Orbiter
 Therac 25
 Patriot antimissile in Gulf War

5
The $0.0 Bill
 A famous software engineering story about an executive
that receives a $0 bill
 1st receipt: ignores it
 2nd receipt: starts to feel anxious
 3rd receipt: sends a $0 check
 Creating another problem for the bank that issues the
check

5
TAURUS
 Transfer and Automated Registration of Uncertified Stock
 An effort by London Stock Exchange in 1983 to move from paper
based system to computerized system
 Abandoned in March 1993, costed £75M+£400M
 Tried to modify business process by removing the middlemen
(registrars), finally dropped on 1989
 Starting from 1990 a system was purchased from US and modified to
adapt to British rules
 Helga Drummond uses the proverb “He who rides a tiger can never
get off” to describe the issues with the project management. TAURUS
was carrying a large group, not all of which were sure they wanted to
be aboard the bull. Due to their arguing, they were unable to steer
TAURUS in the right directions and made many mistakes.

5
Ariane 5
 Ariane 5 video
 Launched on 4 June 1996
 Exploded 40 seconds after launched
 Exception (caused by conversion from 64-bit floating point
to 16-bit integer)
 Both the main and backup module experienced the same
exception
 Caused by a module that was only needed before
launching but apparently were still active until then

5
Mars Climate Orbiter
 Launched on December 11, 1998
 Lost on September 1999 (286 days later)
 $327.6 million project
 Using English metric system instead of international metric
system

5
Therac 25
 Created high-energy beams to destroy tumors
 Overdosed 6 people during 1985-1987
 never officially investigated
 Bad error messages
 Only considers hardware errors
 Bad manual
 Race conditions

5
Patriot Antimissile System
 During the Gulf War, a Patriot missile defense system
failed to track and intercept an incoming Scud, killing 28
Americans
 inaccurate tracking calculation that became worse the
longer the system operated
 Based on missile’s velocity (real numbers) and time of last
detection (integer converted to real number)
 Limited accuracy (24 bit register)
 Never used to defend against Scud (high speed)

5
Grounded Airplanes
 Video (https://www.youtube.com/watch?v=54z56FbEtRk)
 Britain airports delay flights because of software failure
 Software update failed and cannot restart the system

Google
 Top 10 Biggest Google Fails

5
SOFTWARE CRISIS
 A term used in 1960s to describe problems related
with software development such as:
o Projects running over-budget
o Projects running over-time
o Software was very inefficient
o Software was of low quality
o Software often did not meet requirements
o Projects were unmanageable and code difficult to maintain
o Software was never delivered
 Triggered the first NATO Software Engineering Conference in
1968 at Garmisch, Germany

5
The nature of software
 The nature of software
 Intangible, underestimating the amount of work
 Costly in the development, almost no cost at mass-production
 Labor-intensive, hard to automate
 Physically easy to modify, tend to introduce bugs
 Has to conform to its domain

5
Failure Curve for Hardware
Bathtub curve: indicates
that hardware exhibits
relatively high failure rates
early in its life (these failures
are often attributable to
design or manufacturing
defects); defects are
corrected and the failure rate
drops to a steady-state level
(hopefully, quite low) for
some period of time. As time
passes, however, the failure
rate rises again as hardware
components suffer from the
cumulative effects of dust,
vibration, abuse,
Source: [1] temperature extremes, and
many other environmental
maladies. 5
Failure Curves for Software
During its life, software will
undergo change. As changes
are made, it is likely that
errors will be introduced,
causing the failure rate curve
to spike as shown in the
“actual curve”. Before the
curve can return to the
original steady-state failure
rate, another change is
requested, causing the curve
to spike again. Slowly, the
minimum failure rate level
begins to rise—the software
is deteriorating due to
change.
Source: [1]

5
Discussion
Please describe the cause(s) of the software failure!
Bad Design
System
System
System definition:
 a regularly interacting or interdependent group of
items forming a unified whole
 a group of related natural objects or forces
 a set of principles or procedures according to which
something is done; an organized scheme or
method.
General Systems Theory
 How scientists understand the world:
 Reductionism - break a phenomenon down into its constituent
parts
 Statistics - measure average behavior of a very large number of
instances
 But sometimes neither of these work:
 Systems that are too interconnected to be broken into parts
 Behavior that is not random enough for statistical analysis
 General systems theory
 Originally developed for biological systems:
E.g. to understand the human body, and the phenomena of ‘life’
 Basic ideas:
 Treat inter-related phenomena as a system
 Study the relationships between the pieces and the system as a whole
 Don’t worry if we don’t fully understand each piece
So what is a system
Ackoff’s definition:
 “A system is a set of two or more elements that satisfies the
following conditions:
 The behavior of each element has an effect on the behavior of the
whole
 The behavior of the elements and their effect on the whole are
interdependent
 However subgroups of elements are formed, each has an effect on
the behavior of the whole and none has an independent effect on it”
 Or, more simply:
 Weinberg: “A system is a way of looking at the world”
 Systems don’t really exist!
 Just a convenient way of describing things (like ‘sets’)
Elements of a system
 Boundary
 Separates a system from its
environment  Subsystems
 Often not sharply defined  Subsystems
 Also known as an “interface”  Can decompose a system
into parts
 Environment
 Each part is also a system
 Part of the world with which
the system can interact  Subsystems are inter-
dependent
 System and environment are
inter-related  Control Mechanism
 Observable Interactions  How the behavior of the
system is regulated to allow it
 How the system interacts with to endure
its environment
 Often a natural mechanism
 E.g. inputs and outputs
 Emergent Properties
 Properties that hold of a
system, but not of any of the
Conceptual Picture of a System
System engineering
 System engineering is concerned with all aspect of
the development and evolution of complex system.
 System engineering is an activity of specifying,
designing, implementing, validating, deploying, and
maintaining socio-technical systems.
 System engineers are involved in specifying the
system, defining its overall architecture and then
integrating different parts to create finished system.
They are less concerned with engineering of the
system components (hardware, software, etc.)
System Engineering
Example of Air Traffic Control (ATC) Engineering

Interdisciplinary involvement: many engineering disciplines may


be involved in system engineering. There is a lot of scope for
misunderstanding because different engineers use different
terminology and conventions.
Problem
statement

Retirement and Requirements


Replacement discovery

Operation and Alternatives


Maintenance System Life Cycle Investigation

Integration System
and Test Design

Implementation
System Engineering Processes

But, it is not a serial process.


It is parallel and highly iterative
Systems engineering is a fractal process

The systems engineering process is applied at levels of greater and greater detail. It is
applied to the system, then to the subsystems, then to the components, etc. Similarly for
the fractal pattern above, the same algorithm was applied at the large structural level,
then at the medium-scale level, then at the fine-detail level, etc.
Systems engineering is the glue that holds it all together
How about the change of human culture?

Think about:
cinemas queue before online ticketing system
Highway gate before e-money system
etc
Organization, people, and computer systems

 Socio-technical systems are


enterprise systems that are
intended to help deliver some
organizational or business goal (e.g.
increase sales, reduce material
used in manufacturing, etc.)
 Because they are embedded in
organizational environment, the
procurement, development, and use
of these system is influenced by
organization’s policies, procedures,
and its working culture
Organization, people, and computer systems
(2)
 Human and organizational factors from the system’s
environment that affect the system design include:
 Process changes. Does the system require changes to the
work processes in the environment? If so, training will certainly
be required. Does the change will cause people losing their
job? If so, the users will resist the introduction of the system.
 Job changes. Does the system de-skill the users or cause
them to change the way they work? If so, the users will resist
the introduction of the system.
 Organizational changes. Does the system change political
power structure? If an organization is dependent on a complex
system, those who know how to operate the system have a
great deal of political power.
Software
Software Definition
 Software is: [Pressman, 2015]
1. Instructions (computer programs) that when executed provide desired
features, function, and performance;
2. data structures that enable the programs to adequately manipulate
information, and
3. descriptive information in both hard copy and virtual forms that
describes the operation and use of the programs
 A software system usually consists of [Sommerville, 2006]
1. a number of separate programs, configuration files, which are used to
set up these programs,
2. system documentation, which describes the structure of the system,
3. and user documentation, which explains how to use the system
4. and web sites for users to download recent product information.

5
SE DEFINITION
 the process of solving customer’s problems by the systematic
development and evolution of large, high-quality software
systems within cost, time and other constraints
[Leithbridge&Laganiere]
 the engineering discipline whose focus is the cost-effective
development of high-quality software systems[Sommerville]
 IEEE: (1) the application of a systematic, disciplined,
quantifiable approach to the development, operation,
maintenance of software; that is, the application of engineering
to software. (2) The study of approaches as in (1)

5
What is the Difference between Software
Engineering and System Engineering?
 System engineering is concerned with all aspects
of computer-based systems development including
hardware, software and process engineering.
Software engineering is part of this process
concerned with developing the software
infrastructure, control, applications and databases
in the system.
 System engineers are involved in system
specification, architectural design, integration and
deployment.
Types of Software
 Custom software is developed to meet specific needs of a
particular customer
 Generic or COTS (Commercial Off The Shelf) software is
designed to be sold on the open market
 Embedded software runs specific hardware devices sold on the
market
 Legacy software systems are old software systems that have
been continually modified to meet changes in business
requirements and computing platforms and are indispensable to
the business. The maintenance and evolution of these systems
are causing headaches to business organizations

5
Types of Software (2)
 However, as time passes, legacy systems often evolve for
one or more of the following reasons:
 The software must be adapted to meet the needs of new
computing environments or technology
 The software must be enhanced to implement new business
requirements
 The software must be extended to make it interoperable with other
more modern systems or databases
 The software must be re-architected to make it viable within a
evolving computing environment.

5
Types of Software – new categories
(Pressman – 2015)
 System software— a collection of programs written to
service other programs. Some system software (e.g.,
compilers, editors, and file management utilities)
processes complex, but determinate, information
structures. Other systems applications (e.g., operating
system components, drivers, networking software,
telecommunications processors) process largely
indeterminate data.
 Application software —stand-alone programs that solve
a specific business need. Applications in this area process
business or technical data in a way that facilitates business
operations or management/technical decision making.
5
Types of Software – new categories
(Pressman – 2015)
 Engineering/scientific software —a broad array of
“number-crunching programs that range from astronomy to
volcanology, from automotive stress analysis to orbital
dynamics, and from computer-aided design to molecular
biology, from genetic analysis to meteorology.
 Embedded software— resides within a product or system
and is used to implement and control features and
functions for the end user and for the system itself.
Embedded software can perform limited and esoteric
functions (e.g., key pad control for a microwave oven) or
provide significant function and control capability (e.g.,
digital functions in an automobile such as fuel control,
dashboard displays, and braking systems). 5
Types of Software – new categories
(Pressman – 2015)
 Product-line software —designed to provide a specific
capability for use by many different customers. Product-
line software can focus on a limited and esoteric
marketplace (e.g., inventory control products) or address
mass consumer.
 Web/Mobile applications —this network-centric software
category spans a wide array of applications and
encompasses both browser-based apps and software that
resides on mobile devices.

5
Types of Software – new categories
(Pressman – 2015)
 Artificial intelligence software— makes use of
nonnumerical algorithms to solve complex problems that
are not amenable to computation or straightforward
analysis. Applications within this area include robotics,
expert systems, pattern recognition (image and voice),
artificial neural networks, theorem proving, and game
playing.

You might also like