|
|
CS 6340: Software Analysis and
Testing
Fall 2009
Home Page - Syllabus
Instructor
Mary Jean Harrold, harrold@cc.gatech.edu
2322 Klaus Advanced
Computing Building
404.385.0612
Home page
(http://www.cc.gatech.edu/~harrold)
Aristotle Research Group home
page (http://www.cc.gatech.edu/aristotle)
Course Information
Time: Tuesday, Thursday,
4:35-5:55 pm
Location: KACB 1456
Motivation for Course
Software
systems are increasingly complex, dynamic, and pervasive. The quality of such
systems cannot be guaranteed unless effective and efficient techniques for
analyzing and/or testing the artifacts of software development are used.
This course will examine software testing and analysis techniques that let
us build, validate, maintain, reuse, and evaluate software systems. The
course will study the goals of testing and analysis, with special emphasis
on techniques for demonstrating and assessing various software qualities
and for identification of software defects. The course will also cover some
available tools that implement testing and analysis techniques. This
course can be used as a breadth course for Software Engineering and
Programming Languages/Compilers.
Course Objectives
At the end of the course, students
should be familiar with the primary current approaches to software testing
and analysis. Students should also be aware of the major open problems in
demonstrating quality using testing and/or analysis, such that research
within this domain would be a natural follow-on to this course.
- To study traditional
static and dynamic analyses, such as data-flow, slicing, and
profiling, along with promising techniques such as model checking and
abstract interpretation
- To study traditional
applications of these analyses, such as validation, program
understanding, and debugging as well as new applications, such as
security and component-based systems
- To explore important
areas for research in analysis and use of software artifacts
- To apply these
analyses and applications through homeworks and a semester project
Means for Approaching Course Objectives
During the semester, we will explore software testing
and analysis techniques through class lectures, paper readings (similar in
style to a graduate-level seminar), and homework. In addition to learning
about important research in analysis, students will select a project that
will let them investigate an area of interest, experiment with an existing
technique, or perform original research. Students will share their
discoveries with the class through written and oral reports.
Class periods will be of three types:
- Lectures,
which introduce the fundamental concepts of static analysis, dynamic
analysis, and testing.
- Discussion
of papers, in which a student or a group of students lead the discussion
on one of the assigned readings; students may propose papers to be
discussed, as long as the topic is relevant.
- A
mini-conference, shaped as a regular computer-science conference, in
which students present the results of their projects. .
Responsibilities of Students
- Arrive on time and
attend all class meetings (no make-ups for lectures, exams,
presentations, etc.)
- Prepare for and
participate in classes
- Submit homeworks,
projects, etc. at beginning of class on the due date (no credit for
late submissions)
Academic Honesty
All students are expected to adhere to the Georgia
Tech Honor Code. For example, students are expected to maintain
traditional standards of academic integrity by giving proper credit for all
work referenced, quoted, etc. Plagiarizing
is defined by Webster’s as “to steal and pass off (the ideas or
words of another) as one's own: use (another's production) without
crediting the source.” For another example, students are expected to do their work
individually (e.g., homeworks, take-home exams), unless otherwise stated. If caught violating the Georgia Tech Honor Code, students will be dealt with according to the GT
Academic Honor Code.
Course Evaluation
Course requirements include reading relevant papers, participation in
class, satisfactory performance on pop quizzes covering the reading
material and on semester examinations, and a project that includes two
short presentations and a paper that describes the projects and the
results.
- Homeworks (30%),
- Semester project
(including presentation) (30%),
- Exams (30%), and
- Class participation
(10%).
Prerequisites
Graduate-level standing, CS 4240, its equivalent, or permission
of the instructor.
|