Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

Reverse Engineering (Sommersemester 2022)

Lecturer: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Dr. Jens Lincke (Software-Architekturen) , Marcel Taeumel (Software-Architekturen) , Stefan Ramson (Software-Architekturen) , Tom Beckmann (Software-Architekturen) , Toni Mattis (Software-Architekturen) , Patrick Rein (Software-Architekturen) , Eva Krebs (Software-Architekturen)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 01.04.2022 - 30.04.2022
  • Examination time §9 (4) BAMA-O: 05.07.2022
  • Teaching Form: Project seminar
  • Enrolment Type: Compulsory Elective Module
  • Course Language: German

Programs, Module Groups & Modules

IT-Systems Engineering MA
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-K Konzepte und Methoden
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-S Spezialisierung
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-T Techniken und Werkzeuge
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-K Konzepte und Methoden
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-S Spezialisierung
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-T Techniken und Werkzeuge
Data Engineering MA

Description

Understanding and enhancing existing software systems can be hard, especially when the subject system is legacy software or a still prototype and good documentation, architecture and software design are missing or not yet there. 

Reverse engineering is a process of analyzing such systems, by identifying its components and their interrelationships, and create representations of the system in another form or at a higher level of abstraction (see [1]), that help refactoring and evolving such systems.  

In this seminar, the participants will work in teams to develop reverse engineering tools in the context of exploratory development environments Squeak (Smalltalk) and Lively4 (JavaScript) that facilitate such a process. 

Requirements

In-depth knowledge in at least on dynamic programming language

Literature

[1] Chikofsky, E. J.; Cross, J. H. (January 1990). "Reverse engineering and design recovery: A taxonomy". IEEE Software. 7: 13–17. doi:10.1109/52.43044.

Learning

The seminar will be held in room A 1.2 (Tuesday 9:15), but will also be mirrored in Zoom at the same time:

https://uni-potsdam.zoom.us/j/61611397237
Kenncode: 14622442

Examination

Grading will take place based on the work on one of the projects. To complete the course, the following requirements are to be fulfilled:

To obtain the six credits, the following requirements are to be fulfilled:

  • Work on a project topic, regular demonstration of progress, quality of code (50%)
  • Final presentation of results (30%)
  • Documentation of topic, its background, results, and software design decisions (20%)

One week before the final presentation, students will submit a draft of their current slides for feedback. One day before the final presentation, students will submit

  • sources (e.g. PPTX) of the presentation slides,
  • a PDF version of the presentation,
  • current state of the project’s source code, and
  • a short screencast (mp4)

All source code created during this seminar will be licenced under the MIT license.

Zurück