Software Maintenance and Evolution
Faculteit | Science and Engineering |
Jaar | 2020/21 |
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:
|
||||||||||||||||||||||||
Uren per week | |||||||||||||||||||||||||
Onderwijsvorm | Hoorcollege (LC), Opdracht (ASM) | ||||||||||||||||||||||||
Toetsvorm |
Opdracht (AST), Presentatie (P)
(The course grading is a weighted final grading of an assignment (80%) and a presentation (20%) about the results of the assignment. Each assignment is divided into a number of steps with different weights. Grading is based on the maximum mark (10) divided by the number of steps (based on their weights) to complete in the assignment. If a step has more sub-steps, the grade fraction is subdivided accordingly. Students must be able to completely finish more than 60% of steps of the assignment in order to pass the course.) |
||||||||||||||||||||||||
Vaksoort | master | ||||||||||||||||||||||||
Coördinator | dr. M.A.M. Soliman | ||||||||||||||||||||||||
Docent(en) | dr. M.A.M. Soliman | ||||||||||||||||||||||||
Verplichte literatuur |
|
||||||||||||||||||||||||
Entreevoorwaarden | - 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 distributions) |
||||||||||||||||||||||||
Opmerkingen | This course was registered last year with course code INMSME-08 | ||||||||||||||||||||||||
Opgenomen in |
|