Seminars & Projects © Marcelo d’Amorim 2010
Grade 20% seminar 80% project © Marcelo d’Amorim 2010
Students Leopoldo Teixeira Elton Alves Andrei Alvares Diego Dias Ademir Rocha © Marcelo d’Amorim 2010
SEMINARS © Marcelo d’Amorim 2010
Seminar S1 Symbolic execution of Pointers – S. Khurshid, C. Pasareanu and W. Visser. Generalized Symbolic Execution for Model Checking and Testing. TACAS 2003 © Marcelo d’Amorim 2010
Seminar S2 Symbolic execution of Strings – D. Shannon, S. Hajra, A. Lee, D. Zhan, and S. Khurshid. Abstracting Symbolic Execution with String Analysis. TAIC-PART 2007 © Marcelo d’Amorim 2010
Seminar S3 Tutorial on Andersen’s and Steensgaard’s Points-to analysis – References on request © Marcelo d’Amorim 2010
Seminar S4 Local pattern search – Nathaniel Ayewah, David Hovemeyer, J. David Morgenthaler, John Penix, William Pugh. Experiences Using Static Analysis to Find Bugs. IEEE Software, 2008 © Marcelo d’Amorim 2010
Seminar S5 Global pattern search – Andrew J. Ko and Brad A. Myers. Debugging, Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior. ICSE 2008 © Marcelo d’Amorim 2010
Seminar S6 Code differencing (for evolution) – B. Fluri et al. Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction. TSE © Marcelo d’Amorim 2010
Seminar S7 SSA vs. SSI © Marcelo d’Amorim 2010
PROJECTS © Marcelo d’Amorim 2010
Project P1 Symbolic executor instrumenter using Jimple © Marcelo d’Amorim 2010
Project P2 Query Language (LTL or ERE) – Example “A (f.open() => E (f.close()))”, where A means Always, and E means Eventually © Marcelo d’Amorim 2010
Project P3 API rule mining (conceptually, inverse of P2) – Example: API calls: “Whenever you call this method you eventually call that” © Marcelo d’Amorim 2010
Project P4 Lightweight slicing – “What lines of the program are relevant to violate state assertion?” © Marcelo d’Amorim 2010 O1O2O3O4O5 O1 {10,15} O2 {20} O3 O4 {25} O5 – Hypothesis: Several parts of the state (and thus locs) are irrelevant (see blue cells) Transitive closure on this relation from faulty object(s), say o1.
Project P5 Behavior-preserving differencing – Question: Which static changes affect behavior? – Input: Two source bases, output relevant changes – Several approaches… © Marcelo d’Amorim 2010
Project P6 Extract interfaces for feature modularization (Marcio Ribeiro PhD thesis subject) © Marcelo d’Amorim 2010
Project P7 Finding security flaws in PHP programs using tainted-flow analysis © Marcelo d’Amorim 2010
Assignments Leopoldo Teixeira (S5,P6) Elton Alves (S6, P5) Andrei Alvares (S7,P7) Diego Dias (S3,P2) Ademir Rocha (S6,P5) © Marcelo d’Amorim 2010 Apresentações 20 e 22 de Abril. Andrei apresentará no dia 20.