Scientific Visualization and Computer Graphics > CS > BI > FSE > RUG

Class overview

The course covers the following topics:

Software Evolution

  • definition of software evolution
  • laws of software evolution
  • impact of software evolution on the software lifecycle

Software Maintenance

  • definition of software maintenance
  • place of software maintenance in the software lifecycle
  • types of software maintenance (perfective, corrective, adaptive, preventive)
  • steps of software maintenance process
    • requirements analysis
    • change requests
    • impact analysis
    • (re)design, (re)factoring, (re)coding
    • release planning

Program Comprehension

  • definition and importance of program comprehension
  • types of program comprehension (top-down, bottom-up)
  • manual program comprehension
  • automated program comprehension
    • static analysis
    • dependency graphs (call, inheritance, type-usage, dataflow, control flow)
    • program slicing
  • program comprehension tools

Software Quality

  • definition of software quality
  • importance of software quality in maintenance
  • software quality taxonomies
  • software quality predictors
  • software quality metrics (code size, comment density, static/dynamic coupling, cohesion, complexity)
  • quality models
  • software quality tools

Software Maintenance in Practice

  • a selection of real-world use-cases from the IT industry
  • explanation of analyses and tools/techniques used to address each case