623.824 (17S) Current Topics in Software Engineering: Software Evolution
Overview
- Lecturer
- Course title german Current Topics in Software Engineering: Software Evolution
- Type Lecture - Course (continuous assessment course )
- Hours per Week 2.0
- ECTS credits 4.0
- Registrations 7 (30 max.)
- Organisational unit
- Language of instruction English
- Course begins on 07.03.2017
- eLearning Go to Moodle course
-
Remarks (english)
For registration and de-registration or organisational questions contact Kerstin Smounig (kerstin.smounig@aau.at)
Time and place
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 including the use of eLearning tools
Classes and lab work (two practical assignments to be solved in teams of two students)
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.
Topics
- 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
Working Effectively with Legacy Code, Michael Feathers, Prentice Hall, 2004 Additional:
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.
Examination information
Examination methodology
Presentation and discussion of two lab assignments, submission of two written reports (problem detection report and re-engineering report)
Examination topic(s)
There are two lab assignments. The first assignment covers the topics presented in the lectures for detecting shortcomings in the implementation of an existing software system. The second assignment covers the topics presented in the lectures for refactoring a selected set of these shortcomings.
Assessment criteria / Standards of assessment for examinations
Quality of the presentation (content, language, slides) and the quality of the two submitted reports (relevance of the shortcomings detected and significance of the improvements achieved by resolving some of them).
Grading scheme
Grade / Grade grading schemePosition 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 (2.0h VC / 4.0 ECTS)
-
Current Topics in Software Engineering: Software Evolution (
2.0h VK / 4.0 ECTS)
-
Subject: Software Engineering
(Compulsory elective)
- Masterstudium Informatik
(SKZ: 921, Version: 09W.1)
-
Subject: Software Engineering
(Compulsory subject)
-
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)
-
Current Topics in Software Engineering (
2.0h VK / 4.0 ECTS)
-
Subject: Software Engineering
(Compulsory subject)
- Master's degree programme Informatics
(SKZ: 921, Version: 03W.1)
-
Subject: Software Engineering
(Compulsory subject)
-
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)
-
Current Topics in Software Engineering (
2.0h VK / 4.0 ECTS)
-
Subject: Software Engineering
(Compulsory subject)
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 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 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)