ENRE683: Software Safety
Fall 2003
Course Description
This course has been re-designed to address the critical issues related to design and analysis of modern day safety critical Software Systems. This course will examine advanced system modeling and analysis techniques. In particular, modeling techniques and their suitability to different types of safety critical systems will be studied. The students will get a first hand experience of newest technologies like Haskell and will also explore automatic test design tools like TestMaster. Students will learn the state of the art in testing technology for safety critical systems. In addition, closely related concepts such as model checking and program analysis will also be studied. Students will gain hands-on testing/analysis experience by proposing new solutions to open research problems in the field of software assurance and will be part of an exciting experiment for comparing software testing techniques.
By the end of this course, students should be familiar with the state-of-the-art in software safety analysis. Students should also be aware of the major open problems in software safety. The course can be counted towards any graduate program requirements.
Class Hour
Thursdays : 4:00 PM - 6:40 PM, ITV 1100
Major Topics
Modeling Techniques: Hazop Analysis, OO Systems, Petri Nets, Stochastic Petri Nets, Dynamic Flow Graph Analysis, Multi valued Logic, Consensus Methods, Inductive Analysis etc.
Program Verification: Formal Methods, Functional Programming, EFSM modeling, Predicate Calculus, Computer Logic, etc.
Fault Tolerance: Recovery Block Programming, Concurrent Systems, Run Time Checks, Reversal Checks, Structural Checks, N-version Programming, etc.
Software Testing: Test Automation, Specification Based Testing, Functional Testing, Fault Injection, Mutation Testing, etc.
Software Experimentation: Experiment Design and Reporting for comparison of Software Techniques.
Grading Scheme (Tentative)
Mid Term 30%
Finals 30%
Project 20 %
Term Paper 20%