Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Software Engineering

Software Engineering II

 


Covid-19 Information:

Die Veranstaltung findet statt und ist zunächst als Präsenzveranstaltung geplant. Details hierzu werden an alle über Agnes registrierten Teilnehmer*innen versendet.

 

Wann und Wo

Vorlesung: Montag, 11-13, RUD 26, 1'306
Vorlesung: Dienstag, 11-13 (14tgl./1), RUD 26, 1'306
Übung: Dienstag, 11-13 (14tgl./2), RUD 26, 1'306

Moodle-Kurs

Wer

Dozent: Prof. Lars Grunske / Marc Carwehl, M.Sc.

Beschreibung und Aufbau der Lehrveranstaltung

Die Teilnehmenden erwerben tiefe und umfassende Kenntnisse auf dem Gebiet des Softwareprojekt-Managements und in den Techniken der automatisierten Software-Entwicklung und Qualitätssicherung.

Die speziellen Inhalte sind:

  • automatisierte Softwareentwicklung
  • Konstruktive Qualitätssicherung
  • Analytische Qualitätssicherung
  • Softwaretests und Verifikation
  • Organisationsaspekte der Software-Bearbeitung
  • Software-Prozesse, Prozess-Bewertung und -Verbesserung
  • Software-Wartung

 

Terminplanung bis Semesterende (Änderungen möglich)

Mo, 11.00-13.00   Thema   Di, 11.00-13.00   Thema
18.04.22 V

Ostermontag

 

 

  19.04.22 V

Keine Vorlesung

 

 

25.04.22 V

Einführung: Grundbegriffe Softwarequalitätssicherung und -prüfung (LL13, Lig10)

und

Vorstellung des Übungskonzepts

  26.04.22 V

Grundlagen: Heuristisches Suchen I

 

02.05.22 V

Grundlagen: Heuristisches Suchen II

 

  03.05.22 V Analytische Qualitätssicherung: Automatisierte Testfallgenerierung
09.05.22 V Analytische Qualitätssicherung: Fuzzing   10.05.22 V Analytische Qualitätssicherung: SymbolicExecution und Automatisierte Testfallgenerierung
16.05.22 V Analytische Qualitätssicherung: Fuzzing + SymbolicExecution   17.05.22 V Grundlagen: Maschinelles Lernen I
23.05.22 V

Grundlagen: Maschinelles Lernen II

 

  24.05.22 V Analytische Qualitätssicherung: Grammar Based Fuzzing + Explaining of Bugs
30.05.22 V Analytische Qualitätssicherung: Mutationstesten   31.05.22 V Analytische Qualitätssicherung: Automatisierte Fehlerfindung und Debugging
06.06.22 V

Pfingsten

  07.06.22 V

Konstruktive Qualitätssicherung: Automatisierte Patch-Generierung

13.06.22 V Analytische Qualitätssicherung: Testmanagement, -selektion und -priorisierung   14.06.22 V Analytische Qualitätssicherung: Regression Testing
20.06.22 V Konstruktive Qualitätssicherung: Metriken und Bewertungen   21.06.22 V Organisatorische Qualitätssicherung: Durchführung und Führung von/in Softwareprojekten
27.06.22 V Organisatorische Qualitätssicherung: Bewertung und Verbesserung von SW Prozessen   28.06.22 V

Gastvorlesung:

Dr. Roland Neumann, Bundesdruckerei "Quo Vadis Software Metriken“, Bundesdruckerei
04.07.22 V

Konstruktive Qualitätssicherung: Automatisierte Techniken im Anforderungs-management

  05.07.22 V

Konstruktive Qualitätssicherung: Automatisierte Techniken im Architektur- und Detailentwurf

11.07.22 V keine Vorlesung   12.07.22 V keine Vorlesung
18.07.22 P Präsentation Studierendenprojekt   19.07.22

P

V

Präsentation Studierendenprojekt

Zusammenfassung und Q&A

Links zu Berufsgemeinschaften für Informatiker/Softwaretechniker:
Software Engineering Links:

Skript und Übungsaufgaben

Alle Materialien zur Vorlesung werden in Moodle zur Verfügung gestellt. Das Passwort zum Kursbeitritt wird in der ersten Veranstaltung bekanntgegeben.

Nähere Informationen zum Übungsbetrieb werden im Verlauf des Semesters in der Vorlesung oder über Moodle bekannt gegeben.

Die Übung besteht aus einem Gruppenprojekt, in welchem ein Forschungswerkzeug analysiert, angewendet und erweitert werden soll.

Voraussetzungen und Prüfung

Umfassende Kenntnisse im Software Engineering werden vorausgesetzt. Insbesondere allgemeine Qualitätssicherungsmaßnahmen sollten bekannt sein.

Die Lehrveranstaltung wird mit einer semesterbegleitenden Portfolioübung und anschließender mündlicher Prüfung geprüft.

Es handelt sich hierbei um Sammlungen eigener Arbeiten, die innerhalb einer bestimmten Bearbeitungszeit nach festgelegten Kriterien zusammengestellt werden, um Lernfortschritte und Leistungsstände zu dokumentieren.

Die Portfolioübung besteht aus 3 Teilen:

  1. Moodle Test: Fragen zu den Vorlesungen bis einschließlich dem
  2. Programmierarbeit: Erklärung von Bugs mit Grammar-based Fuzzing und Machine Learning
  3. Hausarbeit: Forschungsprojekt zu den Themen der Vorlesung SEII

Die Bewertungsmaßstäbe werden mit Veröffentlichung der jeweiligen Aufgabe bekanntgegeben.

Literatur

  • Jochen Ludewig, Horst Lichter, Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag Heidelberg, 2010.
  • Peter Liggesmeyer, Software-Qualität. Testen, Analysieren und Verifizieren von Software. Spektrum Akademischer Verlag, 2002.