CS576 Dependable Software Systems
is a critical element of software quality assurance and represents the ultimate review of a system's source code with the intent of discovering bugs.
Course topics include: formal testingmethods; black box testing; syntax testing; control-flow testing; data-flow testing; mutation testing; object-oriented protocol testing; software engineering for reliability; program slicing; fault injection and program perturbation; security testing; execution automation tools.
This course is intended for graduate students in Software Engineering and Computer Science. Graduate students in other programs may take this course if they have significant programming experience and the permission of the instructor.
Before taking this course, students should be proficient in discrete mathematics, Unix, and programming using C/C++ and Java. Students lacking such a background should take one or both of the following courses before taking CS576:
These courses are graduate courses offered by the Department of Computer Science.
Students seeking to brush up on their Java skills are encouraged to consult the following resources:
Indivdual grades will be awarded to the the assignments, the two examinations, and the research paper reviews. A joint grade will be awarded to the research paper presentations.
Typically, the top 35% of the class will get a grade in the [A-, A+] range. Most students will get a grade in the [B+, B-] range. Students who perform very poorly will receive a grade in the [C+, F] range.
Students should prepare for the examinations by studying all of the lecture notes covered prior to the examinations. The first examination will cover material from Week 1 until (and including) Week 5. The second examination will cover material from Week 7 until (and including) Week 9. The examinations will be a combination of short answer, essay, and problem solving questions. The examinations are in class, closed notes, and 2.5 hours in duration.
Each student must review the five research papers listed below. For each paper review, students will receive one of four grades: a 0 grade if no review is submitted, 1 if a trivial review is submitted (i.e., little evidence that the paper was actually read), 2 if a satisfcatory review is submitted (i.e., evidence that the paper was read and fully understood), and 3 if an exceptional review is submitted (i.e, non-obvious observations are made). After carefully reading the papers, the student will enter their reviews in a file, whose template is provided below. All 5 reviews should be in a single file. Make sure you start each paper discussion with the title of the paper. All 5 reviews should be in a single file, which must be sent, via e-mail, to the TA for grading.
After all of the papers have been reviewed, a small team of students will collaborate to create a 25 minute presentation of the paper and the outcome of the review procedure for the paper. If your last name start with A-B, then your team presents Paper 1, C for Paper 2, D-G for Paper 3, H-M for Paper 4, and N-Z for Paper 5. In the presentation, which will take place in the class during week 10, the teams should spend 10 minutes summarizing the most important aspects of the paper, 10 minutes outlining the overall score of the paper as well as the paper's positive and negative aspects as seen by all of the reviewers. At the end of each presentation, there will be a 5 minute Q&A session.
Following are the 5 research papers. Every student must read and review all 5 of the papers, so it is advisable to start reading well before the deadline.
Before reading the above papers, it is highly recommened that students read the following paper for background:
The following papers are excellent resources:
For further reading, students may take advantage of the following resources:
The university's Academic Honesty policy is in effect for this course. Please consult the online student handbook for details.