0% found this document useful (0 votes)
65 views

Introductions: 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich

This document provides an introduction to a course on analysis of software artifacts. The instructor is Jonathan Aldrich and the TAs are Nicholas Sherman and Dean Sutherland. The course will focus on systematically examining software artifacts like code, designs, and tests to determine their properties related to functionality, performance, reliability, and security. Students will learn core analysis concepts and techniques, apply analysis tools to studio projects, and evaluate tradeoffs between different analysis approaches. Possible PhD project topics involve developing or comparing analysis techniques. Coursework includes participation, homework, mini-projects, a midterm, and final exam. Recommended readings are listed.

Uploaded by

art vandalay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

Introductions: 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich

This document provides an introduction to a course on analysis of software artifacts. The instructor is Jonathan Aldrich and the TAs are Nicholas Sherman and Dean Sutherland. The course will focus on systematically examining software artifacts like code, designs, and tests to determine their properties related to functionality, performance, reliability, and security. Students will learn core analysis concepts and techniques, apply analysis tools to studio projects, and evaluate tradeoffs between different analysis approaches. Possible PhD project topics involve developing or comparing analysis techniques. Coursework includes participation, homework, mini-projects, a midterm, and final exam. Recommended readings are listed.

Uploaded by

art vandalay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Introductions

• Instructor
Course Introduction – Jonathan Aldrich
aldrich+ at cs.cmu.edu
• TAs
– Nicholas Sherman
nds at cs.cmu.edu
17-654/17-765 – Dean Sutherland
Analysis of Software Artifacts dfsuther at cs.cmu.edu
• Students
Jonathan Aldrich
– What would you like to learn from this course?

What is Analysis? What to Analyze?


My definition: • Software engineering degree
The systematic examination of an artifact ⇒ Analyze software artifacts
to determine its properties • Product primacy
⇒ Focus on analysis of code
⇒ Also consider analysis of designs, tests, etc.
• Properties
– Functional: code correctness
– Quality attributes: performance, reliability,
security

Course Goals Course Structure


• Understanding
Non-Functional Core Analysis Concepts Life Cycle
– Where different analyses are appropriate • Performance Taught through dataflow analysis • Architecture
• Reliability • Abstraction - Lattice theory • Design
– Tradeoffs between analysis techniques • Security • Soundness and completeness • Testing
• Others? • Flow-, path-, context-sensitivity • Reverse Eng.
– Theory sufficient to evaluate new analyses • Interprocedural analysis
• Incrementality and scalability
• Experience
– Writing simple analyses
– Applying analysis to software artifacts Other Techniques Code Analysis Applications
• Model Checking • Bug-finding (PREfix)
• Theorem Proving • Concurrency assurance (Fluid)
• Dynamic Anal. • Alias Analysis (Steensgaard)
• Type Systems • Optimization
• User-defined Properties (Metal)

1
Analysis Tradeoffs Evaluation
Automated, Manual, • Class participation (~10%)
Increasing Cost
Incremental Global – Discussion and presentations
• Homework (30%)
– Basic understanding of analysis techniques
Dynamic Static (dataflow,
Increasing Guarantees – Engineering tradeoffs
(testing, model checking)
profiling) • Mini-projects (30%)
– Evaluate analysis tools on studio or other project
• Written reports and in-class presentations
– Write and apply custom analyses
Common Theme: engineering tradeoffs between different
• Midterm and final exams (10% and 20%)
analysis techniques – Theory and engineering

Ph.D. Projects Readings


• Possible topics • Textbook
– Literature survey – Principles of Program Analysis by Neilson, Neilson,
• Study techniques, put into framework, identify open problems
and Hankin
– Comparative evaluation
• Your experience with multiple techniques or tools – Won’t be in the bookstore until end of January
• Higher standard than mini tool evals • Badly timed re-printing
– Development of a new analysis technique • Will do much of the reading before then
– Application of an analysis technique to a new problem domain • Try to get it online—a link to bookstores is on the course
home page
• Requirements
• Share if you can
– Written report
• I’ll do my best to make the lectures self-contained
• Length depends on nature of project
– Class presentation • Papers from the analysis literature
• Details to be arranged with instructor – Will be provided in class and on the web

Course Emphasis Free Advice


• Differs slightly from textbook • Slides will be provided on the web
– Broader: we will analyze non-code artifacts – Focus on asking, answering questions
and consider techniques not in the book – Write down what’s NOT in the slides
– Shallower: we will not cover all the theory and • Come to class
techniques in the book
– Participation is required and graded
– Motivation: we focus on engineering rather
– Exercises worked in class will help you
than optimization
– The book and papers are terse and
• The text will still be a very useful reference incomplete

You might also like