Professional Documents
Culture Documents
Software Engineering
Software Quality
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Topics covered
◼ Infamous software bugs
◼ To introduce ethical and professional issues
and to explain why they are of concern to
software engineers
◼ Standards for evaluation of software quality
2
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Software bugs
◼ A software bug is any problem that triggers a
program to crash or produce invalid output.
◼ The problem is caused by insufficient or
erroneous logic.
◼ A bug can be an error, mistake, defect or fault,
which may cause failure or deviation from
expected results.
◼ Most bugs are due to human errors in source
code or its design.
3
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
6
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Therac-25
◼ Between June 1985 and January 1987, a
software-controlled radiation therapy
machine called the Therac-25 massively
overdosed six people, resulting in serious
injury and deaths.
◼ It wasn’t an anomaly but simply the first of
many, as these types of radiation-overdose
accidents continue today.
7
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
10
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
11
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
16
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
17
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
18
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
19
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
20
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
21
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
22
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
23
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
24
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
25
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
26
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Ethical dilemmas
◼ Disagreement in principle with the policies of
senior management.
◼ Your employer acts in an unethical way and
releases a safety-critical system without
finishing the testing of the system.
◼ Participation in the development of military
weapons systems or nuclear systems.
27
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Code of Ethics
◼ NSPE Code of Ethics for Engineers
http://www.nspe.org/ethics/eh1-code.asp
◼ Software Engineering Code of Ethics and
Professional Practice
http://www.acm.org/serving/se/code.htm
28
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Standardization (1)
◼ Standardization is the process of developing
and implementing technical standards.
◼ The process establishes common agreement
for engineering criteria, terms, principles,
practices, materials, items, processes, and
equipment parts and components.
29
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Standardization (2)
◼ An organization can benefit from
standardization because it:
Enables mass production
Enables customization
Improves supplier coordination
Improves quality
Enables simplification
Enables delayed differentiation
Lowers inventories
30
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Testability Robustness
Compatibility Efficiency
Portability
SW - Quality User-
friendliness
Modularity Maintainability
Reusability Scalability
Readability
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Correctness
◼ Correctness: the adherence to the
specifications that determine how users can
interact with the software and how the
software should behave when it is used
correctly.
◼ Problem: A software product is correct,
however, fails to achieve what the customer
imagined.
32
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Reliability
◼ Software reliability is the ‘probability that the
software will execute for a particular period of time
without failure, weighted by the cost to the user of
each failure encountered’.
◼ Reliability models estimate the number of software
failures after development, based on failures
encountered during testing and operation.
◼ Problem: Software reliability is not a function of
operational time.
33
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
34
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Robustness
◼ Robustness is the ability of a computer system to
cope with errors during execution and cope with
erroneous input.
◼ Software is robust if it can tolerate such problems as
anticipated events, invalid inputs, corrupted
internally stored data, improper uses by system
operators, unavailable databases, stress overloads
and so on.
◼ Problems: equipment damage, loss of power,
software crashes and so on.
35
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
User-friendliness
◼ User-friendly software interfaces are easy to use, i.e.
it is not difficult to learn them or understand.
◼ While "user-friendly" is a subjective term, the
following are several common attributes found in
user-friendly interfaces:
Simple: straightforward, providing quick access to
common features or commands
Clean: easy to locate different tools and options
Intuitive: requires minimal explanation for how to use it
Reliable: does not malfunction or crash
36
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Scalability
◼ Scalability in software engineering refers to
designing software systems in such a manner
that, as the number of users of the system
increases (even by factors of 100x or more),
the software will continue to function with
comparable response times.
◼ Problem: whenever web application is being
used by more and more users, the backend
will start to fall apart.
37
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Improving scalability
38
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Portability
◼ Being able to move software from one machine
platform to another.
◼ It refers to system software or application software
that can be recompiled for a different platform or to
software that is available for two or more different
platforms.
◼ Problem: the software depends upon its detailed
hardware, software, and setup, with device drivers
for particular devices, using installed operating
system and supporting software components, and
using different drives or directories.
39
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Maintainability
◼ Software maintainability is defined as the
degree to which an application is understood,
repaired, or enhanced.
◼ Understanding software maintainability
allows organizations to identify improvement
areas as well as determine the value supplied
by current applications or during
development changes.
41
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
42
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
43
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
44
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
45
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
46
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
47
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
User-
friendliness
Efficiency
Robustness
Reliability
Correctness
Maintainability
User
50
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Maturity models
◼ OPM3®
◼ Prince (P2MM)
◼ Trillium Model
◼ Capability Maturity Model Integration (CMMI)
51
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
53
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Trillium Model
◼ Intended to provide a means to initiate and
guide a continuous improvement program:
to benchmark an organization's product
development and support process capability
against best practices in the industry,
in self-assessment mode, to help identify
opportunities for improvement within a product
development organization, and
in pre-contractual negotiations, to assist in
selecting a supplier.
54
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
55
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
57
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
58
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
59
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
60
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
ISO/IEC 15504-5:2012
◼ Responsible for Software Process
Improvement and Capability Determination
(SPICE)
◼ Set of technical standards documents for the
computer software development process and
related business management functions
◼ The ISO/IEC 15504-5 contains a set of
indicators to be considered when interpreting
the intent of the Process Reference Model.
61
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
ISO 25010
◼ Responsible for:
Systems and software engineering
Systems and Software Quality Requirements and
Evaluation (SQuaRE)
System and software quality models
62
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
63
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Critical Systems
◼ Many activities are replaced by computer systems.
◼ Their failure or malfunction may result in one (or
more) of the following outcomes:
death or serious injury to people
loss or severe damage to equipment/property
environmental harm
serious impact on business operations
loss of business or damage to reputation
loss of sensitive data through theft
64
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Critical Systems
◼ A critical system is distinguished by the
consequences associated with system or
function failure
Fail-operational — typically required to operate
not only in nominal conditions (expected), but
also in degraded situations when some parts are
not working properly (airplanes).
Fail-safe — must safely shut down in case of single
or multiple failures (trains)
65
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Critical Systems
◼ Safety critical
◼ deal with scenarios that may lead to loss of life, serious personal
injury, or damage to the natural environment
◼ Mission critical
◼ avoid inability to complete the overall system, project objectives
or one of the goals for which the system was designed
◼ Business critical
◼ avoid significant tangible or intangible economic costs; e.g., loss of
business or damage to reputation
◼ Security critical
◼ deal with the loss of sensitive data through theft or accidental loss
66
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Key points
◼ To bypass the negative effects, critical systems must
be highly reliable and retain their reliability as they
evolve without incurring prohibitive costs.
◼ Software development standardization evolves in
levels, with each successive level opening the door
for new users, driving an increase in market size,
triggering new technology refinements, declining
costs and setting the stage for the next level of
standardization.
67
FACULTY OF COMPUTER
SCIENCE AND ENGINEERING
Key points
◼ Software bugs
◼ Professional and ethical responsibility in SE
◼ Code of ethics
◼ Standards
◼ Critical Systems
68