Reverse-Engineering (Wintersemester 2018/2019)
Dozent:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
Allgemeine Information
- Semesterwochenstunden: 4
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 26.10.2018
- Lehrform: Projektseminar
- Belegungsart: Wahlpflichtmodul
- Lehrsprache: Deutsch
Studiengänge, Modulgruppen & Module
- IT-Systems Engineering
- IT-Systems Engineering
- IT-Systems Engineering
- IT-Systems Engineering
- ISAE: Internet, Security & Algorithm Engineering
- HPI-ISAE-K Konzepte und Methoden
- ISAE: Internet, Security & Algorithm Engineering
- HPI-ISAE-S Spezialisierung
- ISAE: Internet, Security & Algorithm Engineering
- HPI-ISAE-T Techniken und Werkzeuge
- 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
Beschreibung
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.
Voraussetzungen
In-depth knowledge in at least on dynamic programming language
Literatur
[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.
Leistungserfassung
Die Leistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas erbracht. Dazu soll das jeweilige Thema theoretisch erarbeitet und präsentiert sowie praktisch umgesetzt werden. In Gruppenarbeit werden Komponenten einer Explorativen Software-Entwicklungsumgebung implementiert und in ein bestehendes System integriert. Jede Gruppe stellt im Rahmen von regelmäßigen Treffen ihre Erkenntnisse und Ergebnisse vor.
Zur Erlangung der sechs benoteten Leistungspunkte sind die folgenden Anforderungen zu erfüllen:
Regelmäßige Anwesenheit im Seminar bzw. beim Treffen mit den Projektbetreuern
Eigenständige Erarbeitung und Präsentation eines ausgewählten Themas zu den Seminargrundlagen
Bearbeitung eines Projektthemas in einer Gruppe sowie regelmäßige Demonstration des Fortschrittes
Abschlusspräsentation der Ergebnisse des Projektes
Zurück