623.824 (18W) Current Topics in Software Engineering: Software Evolution

Wintersemester 2018/19

Anmeldefrist abgelaufen.

Erster Termin der LV
01.10.2018 10:00 - 12:00 , S.2.69
... keine weiteren Termine bekannt

Überblick

Lehrende/r
LV-Titel englisch
Current Topics in Software Engineering: Software Evolution
LV-Art
Vorlesung-Kurs (prüfungsimmanente LV )
Semesterstunde/n
2.0
ECTS-Anrechungspunkte
4.0
Anmeldungen
6 (30 max.)
Organisationseinheit
Unterrichtssprache
Englisch
LV-Beginn
01.10.2018
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 and lab work (two practical assignments to be solved in teams of two students)

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.

Topics

  • 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, Kent Beck, John Brant, William Opdyke, and Don Roberts. Addison-Wesley Professional, 1999. 

Refactoring to Patterns, Joshya Kerievsky, Addison-Wesley Professional, 2004. 

Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002.

Prüfungsinformationen

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 (2.0h VC / 4.0 ECTS)
  • Masterstudium Informatik (SKZ: 921, Version: 09W.1)
    • Fach: Software Engineering (Pflichtfach)
      • Current Topics in Software Engineering ( 2.0h VK / 4.0 ECTS)
        • 623.824 Current Topics in Software Engineering: Software Evolution (2.0h VC / 4.0 ECTS)
  • Masterstudium Game Studies and Engineering (SKZ: 992, Version: 17W.2)
    • Fach: Gebundenes Wahlfach (Wahlfach)
      • Modul: Game Engineering
        • 4.1 VC Current Topics in SE: Software Evolution ( 0.0h VC / 4.0 ECTS)
          • 623.824 Current Topics in Software Engineering: Software Evolution (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