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

Wintersemester 2020/21

Ende der Anmeldefrist
04.10.2020 23:59

Erster Termin der LV
05.10.2020 10:00 - 12:00 , online
Nächster Termin:
12.10.2020 10:00 - 12:00 , online

Überblick

Bedingt durch die COVID-19-Pandemie können kurzfristige Änderungen bei Lehrveranstaltungen und Prüfungen (z.B. Absage von Präsenz-Lehreveranstaltungen und Umstellung auf Online-Prüfungen) erforderlich sein.

Weitere Informationen zum Lehrbetrieb vor Ort finden Sie unter: https://www.aau.at/corona.
Lehrende/r
LV-Titel englisch
Current Topics in Software Engineering: Software Evolution/Reengineering
LV-Art
Vorlesung-Kurs (prüfungsimmanente LV )
LV-Modell
Onlinelehrveranstaltung
Semesterstunde/n
2.0
ECTS-Anrechnungspunkte
4.0
Anmeldungen
17 (11 max.)
Organisationseinheit
Unterrichtssprache
Englisch
LV-Beginn
05.10.2020
eLearning
zum Moodle-Kurs

Zeit und Ort

Beachten Sie bitte, dass sich aufgrund von COVID-19-Maßnahmen die derzeit angezeigten Termine noch ändern können.
Liste der Termine wird geladen...

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.

Note, this semester we will hold all lectures of this course online using Big Blue Button. More information will be made available  on the Moodle site of this course.

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 

Refactoring for Software Design Smells, Girish Suryanarayana, Ganesh Samarthyam, Tushar Shara, Morgan Kaufmann, 2015.

Working Effectively with Legacy Code, Michael Feathers, Prentice Hall, 2004 

Additional Literature: 

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

Wintersemester 2019/20
  • 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)