SDOE 689 - Software Reliability Engineering |
|
| Students will learn how to analyze, predict, design, and engineer the required and expected reliability of software systems. Case studies will be used throughout, including studies of systems that worked well and of systems failed in some crucial aspect. Examples of the types of systems which will be studied are the London Ambulance Dispatch System, the Lucent Telephone Switching Systems, and the Mars and Voyager missions. The course will begin with an examination of some “unlikely” failures, progress into the technical foundations of software reliability engineering (SRE), and then cover a broad range of SRE practices. The technical foundations will include a review of software and system reliability measurement and prediction and techniques for prediction analysis. In SRE practices, we start by determining and defining the necessary reliability, in order to fully understand the required performance of the system. Next we develop operational profiles for how the system will be used, in order to drive the SRE analysis and testing. We will look at hazards: what are they and how do we mitigate against them. We will look at the fundamental planning required for system high availability, special techniques for system reliability and special techniques for system recovery. The state-of-the-art topics of bounding program execution, software rejuvenation, libraries to defeat buffer overload will be treated along with the .NET trustworthy features, Maintainability and testing techniques will be examined as well as reliability tools. There will be project(s), which allow the student to apply the acquired skills and knowledge. Emphasis will be given to embedded systems. |
|
|