Spezielle Themen der Softwaretechnik WS2007/2008
Dies ist die detaillierte Veranstaltungsseite zur
Vorlesung und Übung "Spezielle Themen der Softwaretechnik".
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, Leistungpunkte etc.
Siehe den
Eintrag im KVV.
Die Veranstaltung ist eine Wahlveranstaltung für höhere Semester.
Termine und Nachrichten
Siehe den
Eintrag im KVV.
Zum Empfang aktueller Mitteilungen über die Vorlesung und Übung sollten
sich alle Hörer/innen auf die Mailingliste
se_v_swt2@lists.spline.inf.fu-berlin.de
eintragen. Dort bitte den vollen Namen angeben (Vorname und Nachname).
- Klausur: 11.02.2008, 12-14 Uhr, SR 049
- Klausureinsicht: Donnerstag, 28.02.08, 12 Uhr bis mindestens 12:30, SR 051, Takustr. 9
- Nachklausur: nach Vereinbarung
Prüfungsmodalitäten
Kriterien für den Erwerb des Übungsscheins (Diplom) bzw. der Leistungspunkte
(Bachelor) sind
- die regelmäßige Bearbeitung der Übungsblätter (im Stoffplan der jeweiligen Tage zu finden),
- regelmäßige und aktive Teilnahme an den Übungen und
- 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.
Es ist notwendig, sich zur Klausur anzumelden, und zwar bis zum 04.02.!
Dies tun Sie entweder in der Übung oder (zur Not) im Sekretariat von
Prof. Prechelt, Raum 013.
Die Details werden in den Übungsgruppen erläutert.
Klausurtermine siehe bei
VorlesungSpezielleSoftwaretechnik2007.
Inhalt
Literatur
Die Vorlesung verwendet eine reiche Menge an wissenschaftlicher Literatur.
Verweise stehen jeweils in den Foliensätzen.
Zum Teil sind dort zitierte Artikel direkt unten im
VorlesungSpezielleSoftwaretechnik2007
als PDF zum Herunterladen zugänglich.
Der Zugang ist nur aus dem Netz der FU Berlin heraus möglich.
Stoffplan
Die Foliensätze sind in englischer Sprache.
The actual slides are in English language.
- Einführung:
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 lernen, Durchsichten (PDF, JUnit_Error.zip)
- Merkmale für Prozessgüte:
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 (PDF, Problem.pdf, Aufzeichnungssoftware)
- Merkmale für Prozessreife:
CMMI (Fortsetzung)
- Generische Ziele und Praktiken; Stufendarstellung vs. kontinuierliche Darstellung; Resultate/Wirkungen von Prozessverbesserungen gemäß CMMI; Implenentierungstipps
- Übung: Einarbeitung in ein Open Source Projekt, Defektbehebung mittels TDD, Paarprogrammierung (PDF, BibTeX-Beispiel)
- Und worauf kommt es wirklich an?:
Ökonomie und Nutzenbewertung in der Softwaretechnik
- Herkömmliche Sicht: Maximale Qualität zu minimalen Kosten; Ökonomische Sicht: Maximaler Nutzen zu minimalen Kosten; Messen und Verfolgen des Nutzens; Nutzensicht auf Entwurf: Modularität schafft nutzenvolle Realoptionen (nämlich auf spätere Änderungen)
- Übung: TDD im Großen, Paarprogrammierung, Open Source (PDF)
- Quantifizieren:
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: Siehe letzte Woche
- Prozessdiversität 1a:
Open-Source-Entwicklungsprozesse
- Definition; Prozesseigenschaften; Fallstudie Apache httpd; Erfolgsfaktoren (herkömmliche Sicht); Erfolgsfaktoren (ökonomische Sicht); ökonomische Szenarios
- Übung: Fristverlängerung Übung 4
- Prozessdiversität 1b:
Open-Source-Entwicklungsprozesse (Fortsetzung)
- Leitungs- und Entscheidungsstrukturen; Teilnehmerrollen und die "OSS-Karriere"; Führungsmodelle (demokratisch, "wohlmeinender Diktator"); OSS-Lizenzmodelle (Basistypen GPL und BSD, andere, Kompabilität); Werkzeuge in OSS-Prozessen; Forschungsthema: Innovationsmanagement in OSS-Projekten
- Übung: OSS-Prozesse (PDF)
- Prozessdiversität 2:
Cleanroom Software Engineering
- Prinzipien; Empirische Ergebnisse; Typische Verfahrensweisen; Entwicklung mittels Schrittweiser Verfeinerung; Statistisches Testen; Cleanroom und CMMI
- Übung: Wissenschaftliche Untersuchungen zu OSS-Prozesse (PDF, MocFieHer02)
- Prozessdiversität 3:
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: Metriken/GQM (PDF, BasWei84)
- Mikroprozess 1:
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: Fortsetzung Übung GQM
- Mikroprozess 2:
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: Fortsetzung Übung GQM
- Leichtgewichtige Prozesse 1:
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(PDF)
- Leichtgewichtige Prozesse 2:
Agile 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: Fortsetzung Übung Cleanroom
- Leichtgewichtige Prozesse 3:
Details zur Paarprogrammierung (PP)
- Definition; verwandte Methoden (Distributed PP, Side-by-Side, Ping-Pong PP); bisherige Studien über PP; Rohe Produktivität gegenüber zwei Einzelprogrammierern? (nach Kosten, nach Zeit); Qualität entstehender Entwürfe?; Qualität entstehenden Codes? Nutzen daraus dass mehr Personen den Code gut kennen?; 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; Literatur: Belshee05, CaoXu05, CioSch02, Cockburn05, CocWil01, Domino03, GalAriDyb03, HulAbr05, KatWil04, KatWil05, LuiCha03, Mueller03, MulPad04, MulTic01, NawJasOle05, NawWoj01, Nosek98, Tomayko02, Williams01, WilKes00, WilKesCun00, WilShuAnt04,
- Übung: (Wissenschaftliche) Untersuchungen zu XP (PDF, HigCoc01)
- Leichtgewichtige Prozesse 4:
Andere Agile Methoden
- Scrum (insbes. daily scrum); Die Crystal-Light-Familie (insbes. Crystal Clear); Feature-Driven Development (FDD); Lean Software Development (Lean SD); Adaptive Software Development (ASD); Rational Unified Process (RUP); Dynamic Systems Development (DSDM); Pragmatic Programmer
- (c_example1.txt, c_example2.txt, c_example3.txt)
Sonstiges
Übersetzungs-Glossar
Die deutschen und englischen Entsprechungen vieler wichtiger Begriffe finden Sie im
Glossar
Historie des Stoffplans
WS 2006/2007:
- Vorlesung erstmalig durchgeführt
(Kommentare)
Wenn Sie Anmerkungen oder Vorschläge zu dieser Seite haben, können Sie sie
hier (möglichst mit Datum und Name) hinterlassen:
SWTIDSR