Modulbeschreibung

Modul: Softwareanalyse

Lehrveranstaltungen:

TitelTypSWSZeitraum
SoftwareanalyseVorlesung2Wintersemester
SoftwareanalyseGruppenübung2Wintersemester

Modulverantwortlich:

Prof. Sibylle Schupp

Zulassungsvoraussetzungen:

Keine

Empfohlene Vorkenntnisse:

  • Grundverständnis der Aufgaben im Software-Engineering
  • Diskrete algebraische Strukturen
  • Objekt-orientiertes Programmieren, Algorithmen und Datenstrukturen
  • Funktionales Programmieren oder Prozedurales Programmieren

Modulziele / angestrebte Lernergebnisse:

Fachkompetenz

Wissen

Students apply the major approaches to data-flow analysis, control-flow analysis, and type-based analysis, along with their classification schemes, and employ abstract interpretation. They explain the standard forms of internal representations and models, including their mathematical structure and properties, and evaluate their suitability for a particular analysis. They explain and categorize the major analysis algorithms. They distinguish precise solutions from approximative approaches, and show termination and soundness properties. 

Fertigkeiten

Presented with an analytical task for a software artifact, students select appropriate approaches from software analysis, and justify their choice. They design suitable representations by modifying standard representations. They develop customized analyses and devise them as safe overapproximations. They formulate analyses in a formal way and construct arguments for their correctness, behavior, and precision.

Personale Kompetenzen

Sozialkompetenz

Students discuss relevant topics in class. They defend their solutions orally. They communicate in English. 

Selbstständigkeit

Using accompanying on-line material for self study, students can assess their level of knowledge continuously and adjust it appropriately.  Working on exercise problems, they receive additional feedback. Within limits, they can set their own learning goals. Upon successful completion, students can identify and precisely formulate new problems in academic or applied research in the field of software analysis. Within this field, they can conduct independent studies to acquire the necessary competencies and compile their findings in academic reports. They can devise plans to arrive at new solutions or assess existing ones. 

Leistungspunkte Modul:

6 LP

Studienleistung:

Fachtheoretisch-fachpraktische Arbeit

Arbeitsaufwand in Stunden:

Eigenstudium: 124, Präsenzstudium: 56


Lehrveranstaltung: Softwareanalyse

Dozent:

Sibylle Schupp

Sprache:

Englisch

Zeitraum:

Wintersemester

Inhalt:

  • Modeling: Control-Flow Modeling, Data Dependences, Intermediate Languages)
  • Classical Bit-Vector Analyses (Reaching Definition, Very Busy Expressions, Liveness, Available Expressions, May/Must, Forward/Backward)
  • Monotone Frameworks (Lattices, Transfer Functions, Ascending Chain Condition, Distributivity, Constant Propagation)
  • Theory of Data-Flow Analysis (Tarski's Fixed Point Theorem,  Data-Flow Equations, MFP Solution, MOP Solution, Worklist Algorithm)
  • Non-Classical Data-Flow Analyses
  • Abstract Interpretation (Galois Connections, Approximating Fixed Points, Construction Techniques)
  • Type Systems (Type Derivation, Inference Trees, Algorithm W, Unification)
  • Recent Developments of Analysis Techniques and Applications

Literatur:

  • Flemming Nielsen, Hanne Nielsen, and Chris Hankin. Principles of Program Analysis. Springer, 2nd. ed. 2005.
  • Uday Khedker, Amitabha Sanyal, and Bageshri Karkara. Data Flow Analysis: Theory and Practice. CRC Press, 2009.
  • Benjamin Pierce, Types and Programming Languages, MIT Press.
  • Selected research papers