Software-Evolution

Software-intensive Systeme, die in einer realen Umgebung betrieben werden, müssen sich ständig ändern, um nicht zunehmend unbrauchbar zu werden. Mit der Evolution dieser Systeme wird jedoch ihre Struktur tendenziell komplexer. Deshalb müssen zusätzliche Aufwände für die Erhaltung und Vereinfachung der Systemstruktur aufgewendet werden, um diese Systeme über einen langen Zeitraum und wiederholte Änderungen und Erweiterungen hinweg betreiben zu können. Dies erfordert besondere Kenntnisse und Fertigkeiten sowie eine geeignete Werkzeugunterstützung.

Lernziele

Durch den Besuch der Vorlesung Software-Evolution lernen die Studierenden die besonderen Herausforderungen langlebiger Software-intensiver Systeme kennen sowie Möglichkeiten über eine gezielte Software-Evolution die zukünftige Entwicklung eines Software-intensiven Systems zu beeinflussen.

Kenntnisse und Verständnis

Den Studierenden wird klar, welche Mittel und Konzepte Sie im Rahmen der Software-Evolution
einsetzen können und welche Faktoren sich auf den Software-Entwicklungsprozess auswirken.
Neben den theoretischen Grundlagen erhalten die Studierenden Einblick in Praxisbeispiele und
geeignete Werkzeuge, die den Umgang mit Software-Evolution vereinfachen.
Den Teilnehmern wird ein Querschnitt aus Implementierungsaspekten, Techniken, Management und
Konzepten vermittelt.

Fertigkeiten

Die Studierenden beherrschen dem Umgang unter anderem mit verschiedenen Software-Entwicklungsprozessen, Besonderheiten langlebiger Software-intensiver Systeme, Evolutionsszenarien für Software-intensive Systeme, Software-Architekturentwicklung, Software-Sanierung, Implementierungstechniken, Architekturmuster, Traceability, Software-Bewertungsverfahren, Wartbarkeitsanalysen und Werkzeuge zur Unterstützung von Software-Evolution.

Urteilsvermögen und Vorgehensweise

Die Studierenden werden in die Lage versetzt langlebige Software-intensive Systeme zu analysieren,
bewerten und verbessern.

Literatur

  • Folien
  • Ian Sommerville. Software Engineering. Addison Wesley
  • Penny Grubb and Armstrong A. Takang. Software Maintenance: Concepts and Practice. World Scientific Publishing Company
  • Michele Lanza and Radu Marinescu. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems. Springer
  • Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall
  • Oscar Nierstrasz, Stéphane Ducasse and Serge Demeyer. Object-Oriented Reengineering Patterns. Square Bracket Associates
Kontakt

Prof. Dr. Robert Heinrich