623.824 (19W) Current Topics in Software Engineering: Software Evolution/Reengineering

Wintersemester 2019/20

Anmeldefrist abgelaufen.

Erster Termin der LV
14.10.2019 10:00 - 12:00 , S.2.69
Nächster Termin:
21.10.2019 10:00 - 12:00 , S.2.69

Ü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-Anrechungspunkte
4.0
Anmeldungen
13 (30 max.)
Organisationseinheit
Unterrichtssprache
Englisch
mögliche Sprache/n der Leistungserbringung
Englisch
LV-Beginn
14.10.2019
eLearning
zum Moodle-Kurs

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

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: 

  1. Reverse engineering and  problem detection
  2. 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/Grade Benotungsschema

Position 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)
  • Masterstudium Informatics (SKZ: 911, Version: 19W.1)
    • 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. Semester empfohlen
  • 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

Gleichwertige Lehrveranstaltungen im Sinne der Prüfungsantrittszählung

Diese Lehrveranstaltung ist keiner Kette zugeordnet