623.824 (19W) Current Topics in Software Engineering: Software Evolution/Reengineering
Überblick
- Lehrende/r
- LV-Titel englisch Current Topics in Software Engineering: Software Evolution/Reengineering
- LV-Art Vorlesung-Kurs (prüfungsimmanente LV )
- Semesterstunde/n 2.0
- ECTS-Anrechnungspunkte 4.0
- Anmeldungen 12 (30 max.)
- Organisationseinheit
- Unterrichtssprache Englisch
- mögliche Sprache/n der Leistungserbringung Englisch
- LV-Beginn 14.10.2019
- eLearning zum Moodle-Kurs
Zeit und Ort
LV-Beschreibung
Intendierte Lernergebnisse
After completing this course students will be able to:
- Explain state-of-the-art techniques and tools in software re-engineering;
- Explain and apply best practices to analyze and understand existing software systems;
- Use heuristics and tools to detect shortcomings in the design and implementation of software systems;
- Apply tests and re-factoring techniques to systematically remove these shortcomings;
Lehrmethodik inkl. Einsatz von eLearning-Tools
Classes, lab work (two practical assignments to be solved in teams of two students), presentation and discussion of the lab work.
Inhalt/e
Software evolution refers to the process of developing software by repeatedly updating it. Software Reengineering is one of the key tasks to evolve software systems by restructuring a software system to fix real or perceived problems in preparation for further development and extension of the system. This course is on theories and best practices of re-engineering and the application of them in the re-engineering lab. The following topics will be addressed in this course:
- Reverse Engineering
- Software visualization
- Code smells and evolution
- OO design principles and violations
- Code smell detection
- Refactoring
- Software testing for re-engineering
Literatur
Object-Oriented Reengineering Patterns, Serge Demeyer, Stephane Ducasse, and Oscar Nierstrasz, 2008
Object-Oriented Metrics in Practice, Michele Lanza and Radu Marinescu, Springer, 2006
Working Effectively with Legacy Code, Michael Feathers, Prentice Hall, 2004
Additional Literature:
Refactoring for Software Design Smells, Girish Suryanarayana, Ganesh Samarthyam, Tushar Shara, Morgan Kaufmann, 2015.
Code as a Crime Scene, Adam Tornhill, The Pragmatic Programmers, 2015.
Refactoring: Improving the Design of Existing Code, Martin Fowler. Addison-Wesley Professional, 2nd edition, 2018.
Refactoring to Patterns, Joshya Kerievsky, Addison-Wesley Professional, 2004.
Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002.
Prüfungsinformationen
Prüfungsmethode/n
Two written reports and two presentations.
Prüfungsinhalt/e
Two lab assignments:
- Reverse engineering and problem detection
- Testing and refactoring
Beurteilungskriterien/-maßstäbe
Quality of the solutions, written report, and presentation of the two lab assignments. More details are available on the moodle web-site.
Beurteilungsschema
Note BenotungsschemaPosition im Curriculum
- Masterstudium Angewandte Informatik
(SKZ: 911, Version: 13W.1)
-
Fach: Software Engineering
(Wahlfach)
-
Current Topics in Software Engineering: Software Evolution (
2.0h VK / 4.0 ECTS)
- 623.824 Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h VC / 4.0 ECTS)
-
Current Topics in Software Engineering: Software Evolution (
2.0h VK / 4.0 ECTS)
-
Fach: Software Engineering
(Wahlfach)
- Masterstudium Informatics
(SKZ: 911, Version: 19W.2)
-
Fach: Software Engineering
(Wahlfach)
-
Weitere LVen aus dem gewählten Spezialisierungsfach (
0.0h XX / 12.0 ECTS)
- 623.824 Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h VC / 4.0 ECTS) Absolvierung im 1., 2. Semester empfohlen
-
Weitere LVen aus dem gewählten Spezialisierungsfach (
0.0h XX / 12.0 ECTS)
-
Fach: Software Engineering
(Wahlfach)
- Masterstudium Information Management
(SKZ: 922, Version: 19W.1)
-
Fach: Specialisation in Information Management
(Wahlfach)
-
Specialisation in Information Management (
0.0h VO, VC, KS / 16.0 ECTS)
- 623.824 Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h VC / 4.0 ECTS) Absolvierung im 1., 2., 3. Semester empfohlen
-
Specialisation in Information Management (
0.0h VO, VC, KS / 16.0 ECTS)
-
Fach: Specialisation in Information Management
(Wahlfach)
Gleichwertige Lehrveranstaltungen im Sinne der Prüfungsantrittszählung
-
Wintersemester 2023/24
- 623.824 VC Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h / 4.0ECTS)
-
Wintersemester 2022/23
- 623.824 VC Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h / 4.0ECTS)
-
Wintersemester 2021/22
- 623.824 VC Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h / 4.0ECTS)
-
Wintersemester 2020/21
- 623.824 VC Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h / 4.0ECTS)
-
Wintersemester 2018/19
- 623.824 VC Current Topics in Software Engineering: Software Evolution (2.0h / 4.0ECTS)
-
Sommersemester 2017
- 623.824 VC Current Topics in Software Engineering: Software Evolution (2.0h / 4.0ECTS)