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

Reverse Engineering (Wintersemester 2023/2024)

Lecturer: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Dr. Jens Lincke (Software-Architekturen) , Toni Mattis (Software-Architekturen) , Tim Felgentreff (Software-Architekturen) , Fabio Niephaus (Software-Architekturen)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 01.10.2023 - 31.10.2023
  • 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 or prototype software and documentation, architecture, and software design are missing, outdated, or confounded by years of evolution and maintenance. 


Reverse engineering is a process of analyzing such systems, by identifying their components and their interrelationships, and creating 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 on reverse engineering projects in the context of GraalVM (Java, Python, Smalltalk, JavaScript). Challenges will be reverse engineering, analysing, or visualizing existing software and modules from a wide range of domains, e.g. SSL, TCL/Tk, nt/winreg, libGDX.

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.

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.

Dates

Vorstellung der Themen: Dienstag 17.10, 13:30 - 15:00

Assignment der Themen: Dienstag 24.10, 13:30 - 15:00

Ort: K-2.04


Join Zoom Meeting
https://uni-potsdam.zoom.us/j/69721324308

Meeting ID: 697 2132 4308
Passcode: 39169378

Zurück