Softwareprozesse WS 2017/2018

Dies ist die detaillierte Veranstaltungsseite zur Vorlesung und Übung "Softwareprozesse".

  • Den ersten Übungszettel gibt es in der ersten Vorlesungswoche.
  • Neue Übungsblätter finden sich auf der KVV-Seite der Veranstaltung. Sie werden nicht in Papierform ausgegeben.
    • Die Bearbeitung der Übungsblätter erfolgt in 2er-Gruppen
  • Die Übung beginnt in vollem Umfang erst in der zweiten Vorlesungswoche und findet somit erstmalig am 23.10.2017 statt.
    • In der ersten Vorlesungswoche werden direkt im Anschluss an die Vorlesung nur kurz organistorische Dinge besprochen.

Beschreibung

Es ist allgemein anerkannt, dass ein guter und ordentlich durchgeführter Prozess eine Voraussetzung dafür ist, ein gutes Softwareprodukt zu erzeugen.

Diese Vorlesung stellt zahlreiche verschiedene Ansätze dafür vor, wie man Softwareprozesse gestalten kann und diskutiert ihre Stärken, Schwächen, Anwendungsbereiche, Voraussetzungen etc.

In diesem Zusammenhang besprechen wir auch die aktuell von der Arbeitsgruppe Software Engineering bearbeiteten Forschungsfragen (die Gelegenheiten für Abschlussarbeiten bieten).

Die Teilnehmenden lernen, die Tauglichkeit gewisser Prozessmerkmale für gegebene Zwecke und Situationen zu beurteilen und erwerben somit die Fähigkeit, Softwareprozesse zu analysieren und sinnvolle Verbesserungen vorzuschlagen.


Organisatorisches

Veranstalter

Voraussetzungen/Zielgruppe, Einordnung, Leistungspunkte etc.

Siehe den Eintrag im KVV.

Die Veranstaltung ist eine Wahlveranstaltung im Masterstudiengang.


Termine und Nachrichten

Siehe den Eintrag im KVV.
  • Klausur: Mo 12.02.18, 11:59-14 Uhr
    • Nachnamen beginnend mit A-L: Raum 049 @ Takustr. 9
    • Nachnamen beginnend mit M-Z: Raum 006 @ Takustr. 9
  • Klausureinsicht NEUER TERMIN: Mi 25.04.18, von 16:00 bis mind. 16:30, Raum 053, Takustr. 9
  • Nachklausur: nach Vereinbarung


Prüfungsmodalitäten

Kriterien für den Erwerb der Leistungspunkte sind
  • Aktive Teilnahme an den Übungen: Aktive Mitarbeit in den Übungen & Regelmäßige Bearbeitung der Übungsaufgaben
  • Bestehen der Klausur.
    • Die Klausur dauert 90 Minuten; es gibt 90 Punkte.
    • Sie benötigen einen Studierendenausweis + Personalausweis/Reisepass.
    • Zum Bestehen wird eine Punktzahl ausreichen, die voraussichtlich im Bereich zwischen 28 und 38 liegen wird (ohne Gewähr). Die genaue Schwelle wird erst bei der Korrektur festgelegt.
    • Es sind keine Hilfsmittel zugelassen.

Die Details werden im Tutorium erläutert. Klausurtermine siehe bei Termine.


Inhalt

Literatur

Die Vorlesung verwendet eine reiche Menge an wissenschaftlicher Literatur. Hyperlinks stehen jeweils in den Foliensätzen; der Zugang ist oft nur aus dem Netz der FU Berlin heraus frei.

Stoffplan

Die Foliensätze sind in englischer Sprache. The actual slides are in English language.

Literatur: Ist jeweils in den Folien verlinkt.

  1. Einführung (2017-10-16):
    Einführung und Überblick
    • Welche Themen kommen in dieser Veranstaltung?; Welche Themen gehörten zur Veranstaltung "Softwaretechnik"?; Welche Bezüge gibt es dazwischen?
    • Übung: JUnit, Code Reviews
  2. Merkmale für Prozessreife (2017-10-23):
    CMMI
    • Beschreibungsrahmen für Prozessreifegrade (in 5 Stufen) anhand von 21 Prozessbereichen (mit jeweils spezifischen Zielen) und einigen "generischen Zielen"; Auswirkungen; praktische Hinweise
    • Prozessbereiche: (Stufe 2: Verwaltet): Requirements Mgmt REQM; Project Planning PP; Project Monitoring&Control PMC; Supplier Agreement Mgmt SAM; Measurement and Analysis MA; Process and Product Quality Assurance PPQA; Configuration Mgmt. CM;
      (Stufe 3: Definiert): Req's. Development REQD; Technical Solution TS; Product Integration PI; Verification VER; Validation VAL; Organizational Process Focus OPF; Organizational Process Definition OPD; Organizational Training OT; Integrated Project Mgmt. IPM; Risk Management RSKM; Decision Analysis and Resolution DAR;
      (Stufe 4: Quantitativ verwaltet): Organizational Process Performance OPP; Quantitative Project Mgmt QPM;
      (Stufe 5: Optimierend): Organizational Innovation and Deployment OID; Causal Analysis and Resolution CAR
    • Übung: TDD lernen, Paarprogrammierung
  3. Merkmale für Prozessreife (2017-10-30):
    CMMI (Fortsetzung)
    • Generische Ziele und Praktiken; Stufendarstellung vs. kontinuierliche Darstellung; Resultate/Wirkungen von Prozessverbesserungen gemäß CMMI; Implenentierungstipps
    • Übung: Auswahl Open-Source-Projekt und Issue
  4. Und worauf kommt es wirklich an? (2017-11-06):
    Das Wesentliche in der Softwaretechnik
    • "No silver bullet": Essentielle und nebensächliche Schwierigkeit
    • "Essence": 7 Grundkonzepte für fast alles
    • Herkömmliche Sicht: Maximale Qualität zu minimalen Kosten; einige Fakten zu Kosten und Nutzen; Ökonomische Sicht: Maximaler Nutzen zu minimalen Kosten;
    • Value-Based SW Engineering: 1. Nutzenerzielungsanalyse; 2. Beteiligten-Nutzen-Erhebung und -Konfliktauflösung; 3. Geschäftskonzeptanalyse; 4. Laufendes Risiko- und Chancenmanagement; 5. Gleichzeitiges System- und Software-Engineering; 6. Nutzenbasierte Projektüberwachung; 7. Änderungen als Chancen.
    • Modularisierung als Realoption. Technical Debt.
    • Übung: Lösungsansatz entwickeln und Projekt-Community vorstellen
  5. Quantifizieren (2017-11-13):
    Messen und Maße in der Softwaretechnik
    • Measure, measurement, scale type; validity, reliability, precision; product measures (for size, for quality); process measures (for productivity, for process quality); measurement application examples; Goal-Question-Metric (GQM)
    • Übung: Lösungsansatz mit Projekt-Community diskutieren
  6. Prozessdiversität 1a (2017-11-20):
    Open-Source-Entwicklungsprozesse
    • Definition; Prozesseigenschaften; Fallstudie Apache httpd; Erfolgsfaktoren (herkömmliche Sicht); Erfolgsfaktoren (ökonomische Sicht); ökonomische Szenarios
    • Übung: Patch implementieren und einreichen
  7. Prozessdiversität 1b (2017-11-27):
    Open-Source-Entwicklungsprozesse (Fortsetzung)
    • Leitungs- und Entscheidungsstrukturen; Teilnehmerrollen und die "OSS-Karriere"; Führungsmodelle (demokratisch, "wohlmeinender Diktator"); OSS-Lizenzmodelle (Basistypen GPL und BSD, andere, Kompatibilität); Werkzeuge in OSS-Prozessen; Forschungsthema: Innovationsmanagement in OSS-Projekten
    • Übung: Patch-Durchsichten bekommen und Akzeptanz des Patches durch die Community
  8. Prozessdiversität 2 (2017-12-04):
    Cleanroom Software Engineering
    • Prinzipien; Empirische Ergebnisse; Typische Verfahrensweisen; Entwicklung mittels Schrittweiser Verfeinerung; Statistisches Testen; Cleanroom und CMMI
    • Übung: GQM-Forschungsarbeiten
  9. Prozessdiversität 3 (2017-12-11):
    V-Modell XT
    • Übersicht; Metamodell; Projektdurchführungsstrategien; Einbettung anderer Entwicklungsmodelle; Entscheidungspunkte; Systemzerlegung; Vorgehensbausteine; Projekteigenschaften und Prozesszuschneiden; Rollen; Produktarten; Aktivitäten; Hinweise zur Geschichte; V-Modell und CMMI
    • Übung: Eigene GQM-Studie durchführen
  10. Mikroprozess 1 (2017-12-18):
    Fehler und Defekte
    • Fehler, Defekt, Versagen; Empirische Erkenntnisse über Defekte; Attribute und Klassifikation von Fehlern, Defekten, Versagen; Orthogonal defect classification (ODC); Andere Defektklassifizierungen; Defekte durch statische Analyse finden
    • Übung: Eigene GQM-Studie vorstellen
  11. Mikroprozess 2 (2018-01-08):
    Fehler und Defekte, Teil 2
    • Klassifikation von Fehlern (per Phänotyp, per Genotyp); Reale Beispiele (Videos) von Fehlermomenten und Korrekturmomenten; Lernen Fehler zu vermeiden; Persönlicher Softwareprozess (PSP); Forschung über automatisierte Hilfe auf diesem Gebiet
    • Übung: Cleanroom theoretisch
  12. Leichtgewichtige Prozesse 1 (2018-01-15):
    Agile Methoden
    • Ziele und Prioritäten in der SW-Entwicklung; Prinzipien von agilen Ansätzen; Häufige Missverständnisse über agile Ansätze; Annahmen von agilen Ansätzen; Balancieren von Risiken (Zu viel vs. zu wenig Planung; XP Planungsspiel; Dokumentation; Einfachheit; Personalfragen); CMMI-Prozessbereiche in agilen Ansätzen
    • Übung: Cleanroom praktisch
  13. Leichtgewichtige Prozesse 2 (2018-01-22):
    Praktiken agiler Methoden: Extreme Programming (XP)
    • Grundwerte von XP (Kommunikation, Einfachheit, Feedback, Mut, Respekt); Die XP-Praktiken (XP1 vs. XP2; Zusammen sitzen, vollständiges Team, informativer Arbeitsbereich, Arbeiten mit Energie, Paarprogrammierung, Stories, Wochentakt, Quartalstakt, Freiraum, 10-Minuten-Build, ständige Integration, Test-zuerst-Programmierung, inkrementeller Entwurf); Kritik an XP; Wann man XP (nicht) verwenden sollte; Eine Umfrage unter XP-Benutzern; XP und CMMI
    • Übung: Untersuchungen zu XP
  14. Leichtgewichtige Prozesse 3 (2018-01-29):
    Details zur Paarprogrammierung (PP)
    • Aspekte der Praktik "Pair Programming"; Überblick über bisherige PP-Studien (quantativ und qualitativ); Rohe Produktivität gegenüber zwei Einzelprogrammierern? (nach Kosten, nach Zeit); Qualität der Arbeitsergebnisse?; Nutzen durch bessere Unterbrechbarkeit?; Nutzen durch das Voneinander-Lernen?; Einfluss auf Motivation?; PP-Lernprozess?; Empfehlungen zur Wahl der Paare?; Empfehlungen zum Rollenwechsel?; Forschungsansatz zur Klärung des PP-Prozesses und einiger Teile der Fragen; Einfluss von Wissen/Wissenslücken auf den PP-Prozess; Verteilte Paarprogrammierung
    • Übung: Aufgabe für Probeklausur
  15. Leichtgewichtige Prozesse 4 (2018-02-05):
    Andere Agile Methoden
    • Warum so wenig XP?; Scrum (Backlogs, Planning, Sprint, Daily Scrum, Retrospektive); Lean Software Development (7 Prinzipien); Kanban (6 Prinzipien, Fluss, 6 Praktiken); Weitere Quellen (Agile Entwicklung in großem Maßstab; Pragmatic Programmer; …)


Übersetzungs-Glossar

Die deutschen und englischen Entsprechungen vieler wichtiger Begriffe finden Sie im Glossar.


Historie des Stoffplans

Kleine Korrekturen, Ergänzungen und Entfernungen gibt es außerdem jedes Jahr in den meisten Foliensätzen.

WS 2006/2007:
  • Vorlesung erstmalig durchgeführt

WS 2009/2010:
  • Agile other: Teil über Crystal etwas erweitert.

WS 2010/2011:
  • CMMI: auf CMMI v1.3 angepasst

WS 2011/2012:
  • Economics: superverwirrendes Entwurfsbewertungsbeispiel entfernt
  • Agile other: FDD, ASD, DSDM entfernt, Lean SD erweitert, Kanban zugefügt, Erzählreihenfolge geändert

WS 2012/2013:
  • V-Modell XT: auf V-Modell XT Version 1.4 aktualisiert
  • Agile other: Lean SD etwas komprimiert

WS 2013/2014:
  • Errors and Defects: "quantified self" ergänzt
  • Agile/XP: Häufigkeitsangaben von stateofagile zu den Praktiken ergänzt

WS 2015/2016:
  • V-Modell XT: grob auf V-Modell XT Version 2.0 aktualisiert
  • Errors and Defects: Emotionserkennung ergänzt

WS 2017/2018:
  • CMMI: empirische Resultate ergänzt
  • Das Wesentliche: Einheit "SW Engineering Economics" zu "SW Engineering Essentials" ausgebaut
  • Messen und Maße: Gedankengang umstrukturiert, CMMI-Bereiche erwähnt
  • Open Source: mit vielen jüngeren Quellen umfassend generalüberholt
  • Cleanroom: "Cleanroom testing in practice" ergänzt
  • V-Modell XT: Forschungsergebnisse ergänzt; auf V-Modell XT Version 2.1 aktualisiert
  • Agile methods: Wasserfallmythos ergänzt, agil dagegen abgegrenzt.
  • Agile technical practices: Titel geändert und Fokus auf (technische) Praktiken geschärft; Umfrage durch aktuellere ersetzt
  • Agile management practices: Titel geändert, Fokus auf Managementpraktiken geschärft, stark überarbeitet.
  • Pair programming: Mehr auf Sekundärliteratur gestützt, eigene Forschung ergänzt
  • TODO: Lernziele prüfen; Summaries prüfen; Stichwortlisten auf Wikiseite aktualisieren; Dateien umbenennen;

WS 2019/2020:
  • TODO: "Open Source": Das Pull-Request-Wesen erklären
  • TODO: "Fehler und Defekte" überarbeiten
  • TODO: "A View of 20th and 21st Century Software Engineering" integrieren (Einführung?)


Kommentare

Wenn Sie Anmerkungen oder Vorschläge zu dieser Seite haben, können Sie sie hier (möglichst mit Datum und Name) hinterlassen:

 

SWTIDSR