CS 8317 (Spring 2022): Software Reliability and Safety
Prof. Jeff Tian, CS Dept., SMU, Dallas, TX 75275
Phone: (214)768-2861
tian@lyle.smu.edu; lyle.smu.edu/~tian/class/8317.22s
1. General Information
With the pervasive use of and reliance on software and software-intensive
systems in computing devices, applications, networks/infrastructure,
and services in modern society,
ensuring software quality and dependability has become increasingly important.
In this so-called connected world, software is an
important building block, or an integral slice of the "building" itself.
This advanced course will cover two most important aspects of quality
and dependability for such systems in depth: reliability,
or the ability of a software to operate without failures,
and safety,
or the property of the system to be accident-free.
Contrary to some commonly held misconceptions,
safety is related to but not the same as security,
probably due to the interchangeable use of
the two terms in some circumstances.
After covering the fundamentals of software reliability engineering (SRE)
and software safety engineering (SSE),
we will focus on recent development in research and applications
in the subject areas that may have a great practical impact and
that may lead to subsequent innovative research,
including recent work and publications from our research group at SMU.
CS 8317 will be organized as a research seminar,
with active student participation,
both as participating audience as well as presenters and
discussion leaders of selected topics.
This participatory nature is reflected in all the course elements
and discussions/presentations topics.
2. Course Contents
After a brief introduction to SRE and SSE
and their relationship to software quality and dependability,
we will have in-depth discussions about several important
topics concerning the measurement,
analysis and improvement activities aimed at ensuring
software reliability and safety for many kinds of systems
and application domains.
The major focus will be on three areas:
-
SRE: Software reliability engineering:
reliability concepts in general and their application to the software domain;
models and analysis methods for software reliability
assessment, prediction and improvement;
data definition, collection, treatment, and analysis;
related tools and applications in different industries
and application domains (both traditional domains such as
commercial systems, telecommunications and other infrastructures,
software embedded in mechanical/electrical/etc./hybrid systems,
and some of new/emerging application domains, such as cloud computing,
service computing, open source development and products, ubiquitous systems,
integrated human-machine systems, etc.);
and emerging techniques for reliability improvement and optimization.
-
SSE: Software safety engineering:
safety concepts in natural and man-made systems
and their applications to computer-related and/or
software-intensive systems;
system characterization and application domains;
safety and hazard analysis using fault trees, event trees,
and other analysis techniques;
integration of safety assurance into the software processes,
including some of the new approaches based on system theory;
formal verification for safety;
and general techniques to deal with safety issues.
-
Common analysis techniques
to support SRE and SSE above will also be covered near the beginning of
of our semester:
general quality and dependability framework and related analysis,
including,
defect analysis, risk identification,
defect classification and analysis frameworks such as orthogonal defect
classification (ODC) and related analysis,
as well as general issues
with software measurement and analysis.
Some of these techniques may be applicable beyond SRE and SSE
to other quality/dependability aspects of software and systems.
For each of the above topics,
after introducing the fundamental ideas and basic models and techniques,
we will focus on
recent development,
and particularly relevant research done at SMU, including,
adapting ODC originally developed for commercial software
to other application domains and for other purposes,
tree-based reliability modeling,
data clustering and censoring techniques,
prescriptive specification checking for hazard prevention,
early estimation and risk management techniques for reliability
and safety improvement,
extension of SRE/SSE ideas to other quality/dependability
aspects such as in usability evaluation and improvement,
and new applications of SRE/SSE to
web-based, cloud computing, and service-oriented systems.
3. Textbooks and Class Material
4. Workload and Grading
The course grade each student receives will reflect the weighted
average of homework, a major project, a final quiz, and other assignments:
- Project:
See the online project information for more details.
- Homework:
See the online homework assignments.
- Student presentation:
See the online student presentation information
for more details.
- Final Quiz:
There will be a comprehensive final quiz to cover
the breadth of the students' knowledge
in SRE and SSE
(as the students' depth of knowledge is demonstrated in their projects already).
The approximate weight assignment is as follows:
-
Project (proposal, report, and presentation): 50%
-
Final quiz: 25%
-
Homework: 15%
-
Presentation/participation: 10%
Notices and relevant SMU policies:
-
Plagiarism of any kind is strictly
prohibited by the SMU Student Honor Code.
-
If you need to make alternative arrangements for turning-in
material or taking exams,
you must contact the instructor ahead of time,
unless it is truly an emergency.
(Otherwise you'll receive 0 for the specific item.)
-
Relevant SMU policies
regarding
disability accommodations,
religious observance,
excused absences for university extracurricular activities, etc.,
and
how to access the services and accommodations available
(linked here too).
.
Prepared by Jeff Tian
(tian@lyle.smu.edu).
Initially posted: March 17, 2022.
Last update: March 17, 2022.