Software Maintenance and Evolution

Faculteit | Science and Engineering |
Jaar | 2022/23 |
Vakcode | WMCS013-05 |
Vaknaam | Software Maintenance and Evolution |
Niveau(s) | master |
Voertaal | Engels |
Periode | semester I b |
ECTS | 5 |
Rooster | rooster.rug.nl |
Uitgebreide vaknaam | Software Maintenance and Evolution | ||||||||||||||||||||||||
Leerdoelen | At the end of the course, the student is able to: 1) understand the steps of the lifecycle of typical large-scale software products in the industry, and differentiate the various phases, activities, and involved tools and techniques involved during these steps 2) Differentiate between different program comprehension models and strategies, regarding their elements, steps and usefulness to software analysis. 3) Apply top-down program comprehension approaches and use reverse engineering tools to capture the architecture of a large-scale software system (over a hundred thousand lines of code). 4) Explain common software quality metrics and different types of code and design anomalies, which threat the quality of a software system. 5) Judge the size and quality of large-scale software systems (over a hundred thousand lines of code) using standard software metrics and using quality assessment tools. |
||||||||||||||||||||||||
Omschrijving | During the course, the following subjects are covered: Basic principles:
Program comprehension:
Software quality:
|
||||||||||||||||||||||||
Uren per week | |||||||||||||||||||||||||
Onderwijsvorm | Hoorcollege (LC), Opdracht (ASM), Werkcollege (T) | ||||||||||||||||||||||||
Toetsvorm |
Opdracht (AST)
(Each assignment is divided into a number of steps. Grading is based on the maximum mark (10) divided by the number of steps to complete in the assignment. If an assignment has more sub-steps, the grade fraction is subdivided accordingly. Students must be able to completely finish more than 50% of steps of the assignment in order to pass the course.) |
||||||||||||||||||||||||
Vaksoort | master | ||||||||||||||||||||||||
Coördinator | Prof. Dr. A. Capiluppi | ||||||||||||||||||||||||
Docent(en) | Prof. Dr. A. Capiluppi | ||||||||||||||||||||||||
Verplichte literatuur |
|
||||||||||||||||||||||||
Entreevoorwaarden | Assumed prior knowledge/ skills: - familiarity with a mainstream programming language (e.g. C, C++, Java, C#/.NET, Python, or similar). Matlab and JavaScript would not qualify. - having (co-)developed a sizeable application in a mainstream programming language (over 2000 lines or code) - familiarity with object-oriented programming and software design (inheritance, encapsulation, polymorphism, design patterns) - familiarity with using a mainstream source control management system (SVN, Git, CVS, or similar) - basic calculus and statistics notions (univariate function analysis, derivatives, gradients, histograms, normal distribut |
||||||||||||||||||||||||
Opmerkingen | |||||||||||||||||||||||||
Opgenomen in |
|