SluitenHelpPrint
Switch to English
Cursus: 201400225
201400225
Software Evolution
Cursus informatieRooster
Cursus201400225
Studiepunten (ECTS)5
CursustypeCursus
VoertaalEngels
Contactpersoondr.ir. V. Zaytsev
E-mailv.zaytsev@utwente.nl
Docenten
Contactpersoon van de cursus
dr.ir. V. Zaytsev
Examinator
dr.ir. V. Zaytsev
Collegejaar2021
Aanvangsblok
2A
AanmeldingsprocedureZelf aanmelden via OSIRIS Student
Inschrijven via OSIRISJa
Cursusdoelen
After completing this course, the students can list important challenges associated with software evolution; discuss methods and tools addressing these challenges, their advantages and disadvantages; apply the methods and tools to existing software systems and interpret the results obtained in a scientifically responsible way. They will also gain experience in dealing with software evolution challenges typical for legacy software systems.

Inhoud
Nowadays change is often considered as the only constant factor in software development. Successful software systems are, therefore, those systems that can adapt to the ever changing requirements of the environment. Some even compare this process of adaptation to Darwin's survival of the fittest principle. However, that as not much is known about evolution of software systems as opposed to evolution of living organisms. This course will explore issues related to software evolution: why it is difficult, how we can cope with this difficulty and what we can learn from the past. Specifically, the course will look at advanced tools and techniques proposed by the research community to understand, ease and automate software evolution. We will discuss requirements evolution, architecture reconstruction, code cloning and differencing, repository mining, software quality and metrics, evolution of tests, refactoring and reengineering, verification of software changes and migration of legacy software systems. In this course, you will have a chance not only to learn about methods and tools of software evolution, but also to develop your own tools (in any language of your choice) for compiling and analysing code in a legacy language.
 
Voorkennis
Any prior knowledge on compiler construction and on software development will be beneficial for completing this course, especially when working on the assignments.
Participating study
Master Computer Science
Verplicht materiaal
-
Aanbevolen materiaal
Book
Managed Software Evolution (2019) https://doi.org/10.1007/978-3-030-13499-0
Book
Software Evolution (2008) https://doi.org/10.1007/978-3-540-76440-3
Werkvormen
Hoorcollege

Project begeleid
AanwezigheidsplichtJa

Toetsen
Written exam, Assignment

Opmerking
Exam 50%, assignment 50%

SluitenHelpPrint
Switch to English