Michael Pradel: Catalogue data in Spring Semester 2013

Name Dr. Michael Pradel
URLhttp://mp.binaervarianz.de
DepartmentComputer Science
RelationshipLecturer

NumberTitleECTSHoursLecturers
252-0216-00LSoftware Architecture and Engineering Information 8 credits4V + 3UM. Vechev, M. Pradel
AbstractThis course introduces both theoretical and applied aspects of software analysis and engineering. We will cover both the theoretical and practical aspects of:

- Software Architecture
- Modelling
- Design Patterns
- Code Refactoring
- Program Testing
- Dynamic Program Analysis
- Static Program Analysis
ObjectiveThe course has 2 main objectives:

- Obtain an end-to-end (both, theoretical and practical) understanding of the core techniques used for building quality software.

- Understand how to apply these techniques in practice.
ContentSome of the core technical topics covered will be:

- modeling and mapping of models to code
- common code design patterns and how to apply them
- refactoring (as used in all modern development environments today): why, when and what to refactor
- testing: functional, model-based, structural, object-oriented, fault-based testing
- dynamic analysis: semantics, race detection, typestate analysis
- symbolic execution
- static program analysis: lattices, abstractions, fixed points, abstract domains.

To aid in practical understanding, the course will contain 2 projects: one for testing and the other for static program analysis where for both the students will build practical analyzers gaining hands-on understanding for how the concepts work.
LiteratureWill be announced in the lecture.