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

Wintersemester 2021/22

Registration deadline has expired.

First course session
04.10.2021 10:00 - 12:00 S.2.42 On Campus
... no further dates known

Overview

Due to the COVID-19 pandemic, it may be necessary to make changes to courses and examinations at short notice (e.g. cancellation of attendance-based courses and switching to online examinations).

For further information regarding teaching on campus, please visit: https://www.aau.at/en/corona.
Lecturer
Course title german Current Topics in Software Engineering: Software Evolution/Reengineering
Type Lecture - Course (continuous assessment course )
Course model Attendance-based course
Hours per Week 2.0
ECTS credits 4.0
Registrations 14 (30 max.)
Organisational unit
Language of instruction English
Course begins on 04.10.2021
eLearning Go to Moodle course

Time and place

Please note that the currently displayed dates may be subject to change due to COVID-19 measures.
List of events is loading...

Course Information

Intended learning outcomes

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;

Teaching methodology

Classes, lab work (two practical assignments to be solved in teams of two students), presentation and discussion of the lab work.

Course content

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

Literature

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.

Examination information

Im Fall von online durchgeführten Prüfungen sind die Standards zu beachten, die die technischen Geräte der Studierenden erfüllen müssen, um an diesen Prüfungen teilnehmen zu können.

Examination methodology

Two written reports and two presentations.

Examination topic(s)

Two lab assignments: 

  1. Reverse engineering and  problem detection
  2. Testing and refactoring

Assessment criteria / Standards of assessment for examinations

Quality of the solutions, written report, and presentation of the two lab assignments. Each lab assignment contributes 50% to the final grade.

Grading scheme

Grade / Grade grading scheme

Position in the curriculum

  • Master's degree programme Applied Informatics (SKZ: 911, Version: 13W.1)
    • Subject: Software Engineering (Compulsory elective)
      • 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)
  • Master's degree programme Informatics (SKZ: 911, Version: 19W.2)
    • Subject: Software Engineering (Compulsory elective)
      • 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
  • Master's degree programme Information Management (SKZ: 922, Version: 19W.1)
    • Subject: Specialisation in Information Management (Compulsory elective)
      • 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

Equivalent courses for counting the examination attempts

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 2020/21
  • 623.824 VC Current Topics in Software Engineering: Software Evolution/Reengineering (2.0h / 4.0ECTS)
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)