Paradigmen und Konzepte der Softwareentwicklung

Vorlesung

Paradigmen und Konzepte der Softwareentwicklung (PKS)

Dozent:
  • Prof. Dr. Stefan Eicker
  • Tobias Brogt, M. Sc.
Ansprechpartner:
Semester:
Sommersemester 2019
Turnus:
Sommersemester
Termin:
Online-Kurs mit zwei Präsenzterminen (11.04 und 11.07 - jeweils 10:15-11:45)
Raum:
R09 R04 H02
Beginn:
11.04.2019
Ende:
04.07.2019
Sprache:
deutsch
Moodle:
Veranstaltung in Moodle
Hörerschaft:

Beschreibung:

Die Vorlesung wiederholt zunächst grundlegende Themengebiete und Konzepte wie Objektorientierung, Modellierung, Frameworks und verteilte Programmiermodelle. Des Weiteren werden neben traditionellen Architekturansätzen auch neuere Ansätze wie z.B. serviceorientierte Architekturen und Microservices behandelt.

Zu den Schwerpunkten dieser Vorlesung zählen zum einen die Einführung und Anwendung von Patterns. Ein Pattern ist die abstrakte Darstellung eines Problems, welches in ähnlicher Form häufig auftritt, und dessen Lösung. Die abstrakte Darstellung ermöglicht die wiederholte Anwendung eines Patterns.

Ein weiterer Schwerpunkt liegt auf den unterschiedlichen Vorgehensweisen der Softwareentwicklung. Hier werden neben traditionellen Verfahren auch aktuelle Ansätze wie RUP, Extreme Programming und Test-Driven Development vorgestellt.

Über diese Themen hinaus erfolgt die Auseinandersetzung mit weiteren praxisrelevanten Themen: Software-Produktmanagements, Versionierung, Konventionen und Quellcodeverwaltung sowie Konfigurationsmanagement und Dokumentation. 

Die Veranstaltung wird in diesem Semester als Blended Learning angeboten. Es finden zwei Präsenztermine statt:

  • Einführung am 11.04.2019
  • Abschluss am 11.07.2019

Qualifikationsziele:

Die Studierenden

  • sind in der Lage, Softwareprojekte sowohl zu planen, als auch durchzuführen
  • können die Konzepte des Software-Konfigurationsmanagements erläutern und anwenden
  • haben die Fähigkeit, unterschiedliche Aspekte der Qualitätssicherung von Softwareanwendungen wiederzugeben und zu bewerten
  • kennen die wesentlichen Aspekte der Software-Ergonomie

Gliederung:

  • Objektorientierte Programmierung
  • Unified Modeling Language    
    • Vorstellung der verschiedenen Diagrammtypen   
    • Systemanalyse und Systemrealisierung mit der UML
  • Softwarearchitektur
    • Architektur-Entwicklung und -Dokumentation
    • Prototyping
  • Service-Oriented Architecture
    • Architekturebenen
    • Service Engineeing
  • Vorgehensmodelle
    • Plangesteuerte VM
    • Agile VM
  • Architekturmuster
    • u.a. REST und Microservices
  • Entwurfsmuster
  • Konfigurationsmanagement
    • Versionsmanagement
    • Änderungsmanagement
    • Buildmanagement
    • Releasemanagement
  • Technical Debt
  • Software-Ergonomie
  • Softwarequalität
    • Verbesserung der Prozessqualität und CMMI-DEV
    • Testen im Softwarelebenszyklus
    • Test-Driven Developement

Literatur:

  • ACM: Software Engineering Code of Ethics and Professional Practice; 1999; www.acm.org/serving/se/code.htm
  • Balzert, H.: Lehrbuch der Softwaretechnik, Spektrum, 1998
  • Berlack, H.R.: Software Configuration Management, Wiley 1992
  • Bundesrepublik Deutschland: V-Modell XT, 2004
  • Capability Maturity Model® Integration Version 1.1 (CMMI-SE/SW/IPPD/SS, V1.1), Staged Representation; 2002; Carnegie Mellon University www.sei.cmu.edu/cmmi/cmmi.html
  • Hailpern, B.; Santhanam, P.: "Software debugging, testing, and verification"; IBM Systems Journal, Vol. 41, No. 1, 2002
  • IEEE: Guide to the Software Engineering Body of Knowledge (SWEBOK®, Version 2004), www.swebok.org
  • Kneuper, Ralf: CMMI - Verbesserung von Softwareprozessen mit Capability Maturity Model Integration; 2003; dpunkt.verlag
  • Myers, G.J.: Software Reliability, John Wiley & Sons, Inc., 1976
  • Pressman, R.S.: Software Engineering - A Practitioner's Approach, 6th Edition, McGraw-Hill, 2005
  • Sommerville, Ian: Software Engineering 7; 2005; Pearson Education Limited

Prüfungsart:

Klausur (6 CP)