COURSE DESCRIPTION AND APPLICATION INFORMATION

Course Name Code Semester T+A+L (hour/week) Type (C / O) Local Credit ECTS
Fault Tolerant Software Systems CMPE 407 Spring 03+00+02 Elective 4 8
Academic Unit: Computer Engineering Department
Mode of Delivery: Face to face
Prerequisites: None
Language of Instruction: English
Level of Course Unit: Undergraduate
Course Coordinator: Nima Jafari NAVİMİPOUR
Course Lecturer(s): Nima Jafari NAVİMİPOUR
Course Objectives: The main objective of this course is for students to learn the terminology of designing fault tolerance systems, some classical topologies and test case determination to thoroughly test an algorithm. It is expected that students will be able to demonstrate their knowledge of safety critical and fault tolerance systems by analyzing some catastrophic accidents and suggest a remedy that could prevent it from happening.
Course Contents: Fault related systems’ vocabulary, safety integrity levels, fault tolerance systems, hazard analysis, risk analysis, developing dependable systems, hardware and software fault tolerance, redundancy, system reliability, availability, mean time to repair (MTTR), mean time to failure (MTTF), mean time between failures (MTBF), hardware and microprocessor design faults, redundant hardware topologies and examples, test design to thoroughly check the working status and effectiveness of every decision according to MC/DC criteria.
Learning Outcomes of the Course Unit (LO):
  • 1- Understand the basic concepts of dependability and fault tolerance.
  • 2- Have knowledge and experience in applying different paradigms for the design of fault-tolerant systems.
  • 3- Develop fault-tolerant and critical software according to current methodologies.
  • 4- Have knowledge about existing fault-tolerant architectures.
  • 5- Evaluate dependability and safety using analytical approaches.
  • 6- Improve system robustness by using fault detection and elimination techniques.
Planned Learning Activities and Teaching Methods: Explanation of course topics by means of slides, solving problems in real-time, giving homeworks to students and later inviting students to present their studies.


WEEKLY SUBJECTS AND RELATED PREPARATIONS

WeekSubjectsRelated Preperation
1 Introduction Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
2 Software vs. Hardware faults dependability concept classification Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
3 Fault Avoidance or Prevention Fault Removal Fault/Failure Forecasting Fault Tolerance Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
4 Recovery Types of Redundancy Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
5 Robust Software Design Diversity Data Diversity Temporal Diversity Levels of Diversity and Fault Tolerance Application Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
6 Architectural Structure for Diverse Software Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
7 Project 1 Project Kick-off Meeting
8 Consistent Comparison Problem Domino Effect Design Paradigm for N-Version Programming Developing fault-tolerant software Programming Techniques Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
9 Recovery Blocks N-Version Programming Acceptance Voting Operation Consensus Recovery Block N Self-Checking Programming Distributed Recovery Blocks Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
10 Introduction to VLSI Testing Testing During VLSI Life Cycle Fault Models System-Level Testing Design Verification Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
11 Stuck-at Faults Transistor Faults Levels of Abstraction Shorts and Opens Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
12 Design for Testability Digital Test Architectures SISR and LFSR Logic Built-In Self-Test Scan Architectures Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House, 1st Chapter
13 Project 2 Project Kick-off Meeting
14 Presentation Presentations during the Final Week


REQUIRED AND RECOMMENDED READING

Pullum, Laura L. Software fault tolerance techniques and implementation. Artech House.
Wang, Laung-Terng, Cheng-Wen Wu, and Xiaoqing Wen. VLSI test principles and architectures: design for testability. Elsevier.


OTHER COURSE RESOURCES

Reliable Computer Systems. Design and Evaluation », D. P. Siewiorek, R. S. Swarz.


ASSESSMENT METHODS AND CRITERIA

Semester RequirementsNumberPercentage of Grade (%)
Project 2 70
Presentation / Jury 1 30
Total: 3 100


WORKLOAD

EventsCountDuration (Hours)Total Workload (hour)
Course Hours31442
Laboratory21428
Project250100
Preparation for Presentation / Jury13030
Total Workload (hour):200


THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES (LO) AND PROGRAM QUALIFICATIONS (PQ)

# PQ1 PQ2 PQ3 PQ4 PQ5 PQ6 PQ7 PQ8 PQ9 PQ10 PQ11
LO1                      
LO2                      
LO3                      
LO4                      
LO5                      
LO6