17-654 Analysis of Software Artifacts
12 units, Carnegie Mellon University
Analysis is the systematic examination of an artifact to determine its properties. This course will focus on analysis of software artifactsprimarily code, but also including analysis of designs, architectures, and test suites. We will focus on functional properties, but also cover nonfunctional properties like performance and security. In order to illustrate core analysis concepts in some depth, the course will center on static program analysis however, the course will also include a breadth of techniques such as testing, model checking, theorem proving, dynamic analysis, and type systems. The course will balance theoretical discussions with lab exercises in which students will apply the ideas they are learning to real artifacts. After completing this course, students will know what kinds of analyses are available and how to use them understand their scope and power,when they can be applied and what conclusions can be drawn from their results have a grasp of fundamental notions sufficient to evaluate new kinds of analysis when they are developed have some experience selecting and writing analyses for a real piece of software, applying them and interpreting the results Ph.D. students taking the 17754 version of the course will gain a broad overview of the analysis research literature and indepth knowledge of a particular subarea through a course project. Requirement A recent discrete math course and programming experience. Strongly Recommended Models of SW Development course 17651 before taking this course. This course is for letter grade only no passfail grades. This is a graduate course. Only undergrad SE minors may take this course with the instructors permission. Please note Students outside of the software engineering department may take this course but students of the MSE programs will have first priority.
Prerequisites: none listed
Courseweave needs JavaScript to show sections, workloads and planning tools.