I. Course Title: Dependable Computing
II. Course Number: ITEC 421
III. Credit Hours: 3 credits
IV. Prerequisites: ITEC 370 (Grade of “C” or better)
V. Course Description:
Course will explore the concept of a comprehensive dependability engineering process
for software development in which the reasons for and the interrelationships between
the various parts are clear and justified.
VI. Detailed Description of Content of the Course:
Topics include:
- The need for and process of developing dependability requirements.
- Understanding and Analysis of Errors, Faults, and Hazards.
- Processes for the comprehensive and systematic identification of faults.
- The various approaches to software faults.
- The role of redundancy in software and the relationship between redundancy and degradation
faults.
- The role of and application of fault avoidance and fault elimination techniques in
the software lifecycle.
- The concepts and limitations of quantitative assessment.
- The role and limitations of prescriptive standards.
- Effective ways to approach the problem of dependability assurance.
VI. Detailed Description of Conduct of Course:
This will be a primarily asynchronous, online course with online meetings to accompany
the asynchronous modules.
VII. Goals and Objectives of the Course:
Students who complete the course will be able to:
- Discuss the concept of dependability including the associated terminology and the
importance of dependability requirements.
- Explain the relationship between systems and software dependability including the
concept of As Low As is Reasonably Practicable.
- Explain the difference between Errors, Faults, and Hazards including the distinction
between degradation, design, and Byzantine faults, and which types affect software.
- Discuss the basic approaches to fault treatment including the concept of anticipating
faults.
- Summarize the concept of a dependability engineering process and how that process
can help prevent failures.
- Discuss the concepts of fault tree analysis, failure modes, effects, and criticality
analysis.
- Explain hazard and operability analysis and how the technologies can be used to determine
system faults.
- Discuss the consequences of and the requirements for critical-component failures.
- Summarize the concepts of avoidance, elimination, tolerance, and forecasting of software
faults.
- Explain the role and the impact of redundancy and replication in a software system.
- Discuss techniques for the avoidance of and elimination of faults in the software
lifecycle.
- Summarize the concepts and limitations of quantitative assessment as well as the role
and limitations of prescriptive standards.
- Discuss effective ways to approach the problem of dependability assurance.
VIII. Assessment Measures:
Student achievement is measured by tests, papers, and quizzes.
Review and Approval
August 2020