Information Technology 421

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:

  1. The need for and process of developing dependability requirements.
  2. Understanding and Analysis of Errors, Faults, and Hazards.
  3. Processes for the comprehensive and systematic identification of faults.
  4. The various approaches to software faults.
  5. The role of redundancy in software and the relationship between redundancy and degradation faults.
  6. The role of and application of fault avoidance and fault elimination techniques in the software lifecycle.
  7. The concepts and limitations of quantitative assessment.
  8. The role and limitations of prescriptive standards.
  9. 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:

  1. Discuss the concept of dependability including the associated terminology and the importance of dependability requirements.
  2. Explain the relationship between systems and software dependability including the concept of As Low As is Reasonably Practicable.
  3. Explain the difference between Errors, Faults, and Hazards including the distinction between degradation, design, and Byzantine faults, and which types affect software.
  4. Discuss the basic approaches to fault treatment including the concept of anticipating faults.
  5. Summarize the concept of a dependability engineering process and how that process can help prevent failures.
  6. Discuss the concepts of fault tree analysis, failure modes, effects, and criticality analysis.
  7. Explain hazard and operability analysis and how the technologies can be used to determine system faults.
  8. Discuss the consequences of and the requirements for critical-component failures.
  9. Summarize the concepts of avoidance, elimination, tolerance, and forecasting of software faults.
  10. Explain the role and the impact of redundancy and replication in a software system.
  11. Discuss techniques for the avoidance of and elimination of faults in the software lifecycle.
  12. Summarize the concepts and limitations of quantitative assessment as well as the role and limitations of prescriptive standards.
  13. 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