Softwaretechnik WS2005/2006
Dies ist die detaillierte Veranstaltungsseite zur
Vorlesung und Übung "Softwaretechnik".
Beschreibung
Softwaretechnik (oder englisch Software Engineering) ist die Lehre von
der Softwarekonstruktion im Großen, also das Grundlagenfach zur Methodik.
Die Softwaretechnik ist bemüht, Antworten auf die folgenden Fragen zu geben:
- Wie findet man heraus, was eine Software für Eigenschaften haben soll (Anforderungsermittlung)?
- Wie beschreibt man dann diese Eigenschaften (Spezifikation)?
- Wie strukturiert man die Software so, dass sie sich leicht bauen und flexibel verändern lässt (Entwurf)?
- Wie verändert man Software, die keine solche Struktur hat oder deren Struktur man nicht (mehr) versteht (Wartung, Reengineering)?
- Wie deckt man Mängel in Software auf (Qualitätssicherung, Test)?
- Wie organisiert man die Arbeit einer Softwarefirma oder -abteilung, um regelmäßig kostengünstige und hochwertige Resultate zu erzielen (Prozessmanagement)?
- Welche (großenteils gemeinsamen) Probleme liegen allen diesen Fragestellungen zu Grunde und welche (großenteils gemeinsamen) allgemeinen Lösungsansätze liegen den verwendeten Methoden und Techniken zu Grunde?
- …und viele ähnliche mehr.
Diese Vorlesung gibt einen Überblick über die Methoden und stellt
essentielles Grundwissen für jede/n ingenieurmäßig arbeitende/n
Informatiker/in dar.
Organisatorisches
Veranstalter
Voraussetzungen/Zielgruppe, Einordnung, Leistungpunkte etc.
Siehe den
Eintrag im KVV.
Die Veranstaltung ist eine Pflichtveranstaltung für die Studiengänge
Informatik Diplom und Informatik Bachelor.
Termine und Nachrichten
Zum Empfang aktueller Mitteilungen über die Vorlesung und Übung sollten
sich alle Hörer/innen auf die Mailingliste
se_v_swt@lists.spline.inf.fu-berlin.de
eintragen. Dort bitte auch den vollen Namen angeben.
- Vorlesung:
- Mo, 16-18 Uhr, Hörsaal 028 Takustr. 9
- Do, 12-14 Uhr, Hörsaal 028 Takustr. 9
- Die Einteilung zu den Übungsgruppen erfolgt ausschließlich über das KVV. Bedenken Sie, dass die Teilnahme an den Übungen Voraussetzung für die Teilnahme an der Klausur ist!
- Die Übungsgruppen/Tutorien sind (begrenzte Teilnehmerzahl pro Termin!):
- Mo, 14-16 Uhr, R. 046 Takustr. 9 (Tutorin: Andrea Schuhmann)
- Mo, 14-16 Uhr, R. 053 Takustr. 9 (Tutor: Nicolai Kamenzky)
- Mi, 14-16 Uhr, R. 055 Takustr. 9 (Tutor: SebastianJekutsch)
- Do, 10-12 Uhr, R. 055 Takustr. 9 (Tutor: Nicolai Kamenzky)
- Do, 10-12 Uhr, R. 046 Takustr. 9 (Tutorin: Andrea Schuhmann)
- Do, 14-16 Uhr, R. 055 Takustr. 9 (Tutor: Nicolai Kamenzky)
- Do, 14-16 Uhr, R. 046 Takustr. 9 (Tutorin: Andrea Schuhmann)
- Übungsaufgaben erscheinen immer montags. Sie sind unten auf dieser Seite zufinden als PDF. Besprochen werden sie in den Tutorien eine Woche danach. In der ersten Woche fallen daher die Tutorien aus.
- Klausur: Mo, 20.2.06, 12 Uhr s.t., Habelschwerdter Allee 45, Hörsaal 1a + 1b (Verteilung nach Anfangsbuchstaben des Nachnamens. Die Zuordnung wird an den Türen der Hörsäle hängen.)
- Klausureinsicht: Mittwoch, 03.05.2006, 16:00 bis mind. 16:30 Uhr, SR 051, Takustr. 9
- Nachklausur: Do, 27.4.06, 10 Uhr s.t., Habelschwerdter Allee 45, Hörsaal 1a
Prüfungsmodalitäten
Kriterien für den Erwerb des Übungsscheins (Diplom) bzw. der Leistungspunkte
(Bachelor) sind
- die regelmäßige Bearbeitung der Übungsblätter,
- 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.
- Bei der Klausur darf folgendes Hilfsmittel verwendet werden: Eine selbst angefertigte Unterlage im Umfang von 1 Blatt, das maximal das Format DIN A3 haben darf. Es gibt keine Einschränkungen zu Schriftgröße und Inhalt. Jede/r darf nur ihre/seine eigene mitgebrachte Unterlage benutzen.
Es ist notwendig, sich zur Klausur anzumelden, und zwar bis zum 13.2.! Dies tun sie entweder in den Tutorien oder (zur Not) im Sekretariat von Prof. Prechelt, Raum 013.
Die Details werden in den Übungsgruppen erläutert. Klausurtermine siehe bei
VorlesungSoftwaretechnik2005.
Inhalt
Literatur
Die Vorlesung basiert in Teilen auf dem Buch
Bernd Brügge, Allen H. Dutoit:
Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Pearson 2004.
Andere Quellen und Literaturhinweise sind direkt in den einzelnen Foliensätzen angegeben.
Zur Korrespondenz von deutschen und englischen Fachausdrücken siehe
VorlesungSoftwaretechnikGlossar.
Die grundlegenden Aussagen der Vorlesung fasst das
Miniskript zusammen (16 Seiten).
Stoffplan
- Einführung:
Einführung
- Software; Softwaretechnik (SWT); Aufgaben der SWT; Persönlicher Bezug; Beteiligte; Gütemaßstab: Kosten/Nutzen; Qualität; Produkt und Prozess; Prinzip, Methode, Verfahren, Werkzeug; technische vs. menschliche Aspekte; Arten von SWT-Situationen; Lernziele; Lernstil
- Fallbeispiel:
Elektronische Gesundheitskarte, Teil 1
- Einleitung, Objektmodell eRezept; Rahmenarchitektur (RA); RA:Geschäftsprozesse, RA:Anwendungsfälle (Use-Cases).
- Fallbeispiel:
Elektronische Gesundheitskarte, Teil 2 (Folien 26-65)
- Digitale Signatur; RA:Sicherheitsanforderungen und –architektur; RA:nichtfunktionale Anforderungen; RA:Subsysteme, RA:Primärsysteme und Anbindung
- Fallbeispiel:
Elektronische Gesundheitskarte, Teil 3 (Folien 66-89)
- Lösungsarchitektur (LA); LA:Schichtenmodell, LA:Akteure, LA:eRezept-Handhabung; Erkenntnisse; Rolle von Domänenwissen
- Einführung:
Die Welt der Softwaretechnik
- Routine und Innovation: Normales und radikales Vorgehen; Taxonomie: Probleme und Lösungen
- Modellierung:
UML Einleitung und statische Sicht
- Modelle und Modellierung (Realität vs. Modell; Phänomene vs. Konzepte); UML; Schnelldurchgang; Use-Case-Diagramme; Klassendiagramme
- Modellierung:
UML dynamische Sicht und Sonstiges
- Sequenzdiagramme; Zustandsdiagramme (statechart); Aktivitätsdiagramme; sonstige Diagrammarten (Komponentendiagramme, Kollaborationsdiagramme, Inbetriebnahmediagramme, Kommunikationsdiagramme, Interaktions-Übersichts-Diagramme); UML Metamodell; Profile; einige Notationsdetails (Klassen, Assoziationen, Schnittstellen, Zustände)
- Ermitteln WAS:
Anforderungsbestimmung
- Erhebung (Requirements Elicitation): Anforderungen und Anforderungsbestimmung (Requirements Engineering); Arten von Anforderungen; Anforderungen und Modellierung; Harte und weiche Systeme; Probleme und Chancen erkennen; Erhebungstechniken (herkömmliche, darstellungs-basierte, soziale, wissenserhebende)
- Ermitteln WAS:
Anwendungsfälle (Use Cases)
- Was ist ein Use Case?; Wichtige Parameter (Bereich, Detailgrad/Zielniveau); schrittweise Präzisierung; Use-Case-Hierarchien (Überblick, Benutzerziele, Details); Checkliste für Use Cases
- Verstehen WAS:
Analyse (statisches Objektmodell)
- Von Use-Cases zu Klassen, Abbott's Methode (Substantive sind Kandidaten für Klassen, Verben für Operationen, Adjektive für Attribute, Eigennamen für Objekte, "ist ein" für Vererbung etc.); Checklisten zur Identifikation von Klassen, Assoziationen, Attributen, Operationen, Vererbung; Entwicklerrollen und Modellarten (Analysemodell vs. Entwurfsmodell)
- Verstehen WAS:
Analyse (dynamisches Objektmodell)
- Klassen finden mit dynamischer Modellierung; Zustandsdiagramme (statechart diagrams); Sequenzdiagramme; Aufbau eines Anforderungsanalyse-Dokuments; Validierung (und Gegensatz zu Verifikation)
- Entscheiden WIE:
Software-Architektur
- Architektur=Gesamtstruktur; Erfüllen nichtfunktionaler und funktionaler Anforderungen; globale Eigenschaften; wiederverwendbare Architekturen (Standard-Architekturen); Archtekturstile (zum Selbstentwickeln von Architekturen); Modularisierung (Modulbegriff, Aufteilungskriterien)
- Entscheiden WIE:
Modularisierung
- Modulbegriff; Kriterien für Aufteilung; Fallstudie: KWIC; KWIC 1: Datenflusskette; Einschätzen der Entwurfsqualität; KWIC 2: Zentrale Steuerung; KWIC 3: Datenabstraktion; Verhalten bei Änderungen; Verwandtschaft mit Architekturstilen
- Wiederverwenden WIE:
Entwurfsmuster, Teil 1
- Was macht ein Problem schwierig?; Einfachheit durch Wiedererkennen von Mustern; Idee von Entwurfsmustern; Kompositum-Muster (composite pattern); Adapter-Muster (adapter pattern); Brücken-Muster (bridge pattern); Fassaden-Muster (facade pattern)
- Wiederverwenden WIE:
Entwurfsmuster, Teil 2
- Arten von Entwurfsmustern; Stellvertreter-Muster (proxy pattern); Kommando-Muster (command pattern); Beobachter-Muster (observer pattern); Strategie-Muster (strategy pattern); Abstrake-Fabrik-Muster (abstract factory pattern); Erbauer-Muster (builder pattern)
- Spezifizieren WIE:
Schnittstellenspezifikation
- Sichtbarkeiten (public, protected, private, package), Signaturen (Parameter, Resultate), OCL (context, pre, post, inv)
- Umsetzen (Implementierung):
Modelltransformation zur Objektimplementierung
- Modelltransformation, Forward Engineering, Reverse Engineering, Refaktorisierung; Modelloptimierungen; Abbildung von Assoziationen; Abbildung von Schnittstellenverträgen; Abbildung auf relationale Datenbankstabellen
- Prüfen OB:
Analytische Qualitätssicherung, Teil 1
- Defekttest; Auswahl der Eingaben (Funktionstest, Strukturtest); Auswahl der Testgegenstände (bottom-up, top-down, opportunistisch); Ermittlung des erwarteten Verhaltens (Referenzsystem, (Teil)Orakel); Wiederholung von Tests (Rückfalltesten, Testautomatisierung)
- Prüfen OB:
Analytische Qualitätssicherung, Teil 2
- Testautomatisierung (Werkzeuge, Strukturierung, JUnit); Stoppkriterien für das Testen; Defektortung; Benutzbarkeitstest; Lasttest; Akzeptanztest; manuelle statische Prüfung (Durchsicht; Inspektion; Perspektiven-basiertes Lesen); automatische statische Prüfung (Modellprüfung; Quelltextanalyse)
- Vorbeugen DAMIT:
Konstruktive Qualitätssicherung (Qualitätsmgmt., Prozessmgmt.)
- Projekt- vs. Prozessmgmt.; Arten von Prozessmgmt.-Leitlinien; CMM-SW (5 Prozessreifestufen); TQM (Prinzip: Kundenzufriedenheit); ISO 9000
- Entscheiden WIE (Prozess):
Prozessmodelle
- Rollen, Artefakte, Aktivitäten; Wasserfallmodell; Reparatur 1: Iteration (Prototypmodell, Evolutionäre Modelle, Spiralmodell); Reparatur 2: Flexiblere Planung (Agile Methoden); Prozessmodell-Auswahlkriterien; Anpassbare Prozessmodelle: RUP, V-Modell XT; Erklärung "Agile Methode" (XP)
- Randbedingungen:
Persönlichkeitstyp
- Was und warum; Die MBTI-Dimensionen (E/I, S/N, T/F, J/P); Warnungen und Hinweise; Die Keirsey-Temperamente (SJ, SP, NT, NF); Andere Typsysteme; Typen und SW-Engineering; Stärken und Gefahren; Typische Tendenzen; Eigenen Typ herausfinden
- Umsetzen (Prozess):
Projektmanagement, Teil 1
- Was und wofür?; Aufgabenfelder; Schätzen (Schätzverfahren; Funktionspunktschätzung); Todesmarschprojekte
- Umsetzen (Prozess):
Projektmanagement, Teil 2
- Zeit- und Ressourcenplanung; MS-Project; Critical Path Method (CPM); Finden von Aufgabenzerlegungen; Risikomanagement; Risikolisten; DOs and DON'Ts
- Umsetzen (Prozess):
Projektmanagement, Teil 3
- Teams; Sportteam oder Chor?; Organisationsstrukturen; Rollen; Kommunikationsstrukturen; psychologische Faktoren; Schätzen von Wahrscheinlichkeiten; Motivation; Attribution; Haltungen; soziale Einflüsse
- Umsetzen (Prozess):
Projektmanagement, Teil 4
- Projektplan; Projektleitung; nichtlineare Dynamik (Brook's Gesetz; Selbstverstärkung von Qualitätsmängeln; Teufelskreis von Qualität und Zeitdruck); Kommunikation (geplant/ungeplant, synchron/asynchron); Medien; Besprechungen
- Normales Vorgehen maximieren:
Wiederverwendung, Teil 1
- Arten der WV (Produkt/Prozess; Gegenstand; Ziel); Risiken und Abwägung; Hindernisse; Produktivität; WV für normales Vorgehen; Muster; Arten von Mustern; Prinzipien (Abstraktion, Strukturierung, Hierarchisierung, Modularisierung, Lokalität, Konsistenz, Angemessenheit, Wiederverwendung, Notationen); Analysemuster
- Normales Vorgehen maximieren:
Wiederverwendung, Teil 2
- Benutzbarkeitsmuster; Prozessmuster; Mustersprachen; Anti-Muster; Werkzeuge
- Wissen weitergeben:
Dokumentation
- Arten von Dokumentation; Qualitätseigenschaften (übersichtlich, präzise, korrekt, hilfreich); positive und negative Beispiele; Prinzipien (Selbstdokumentation, Minimaldokumentation); Begründungsmanagement (Fragen + Vorschläge + Kriterien + Argumente ergeben Entscheidungen)
- Berühmte letzte Worte:
Zusammenfassung
- Wiederholung aus 1. Vorlesung; Schnelldurchgang durch Stoffplan; wichtige nicht besprochene Themen; einige Empfehlungen
Und dann gibt es noch das
Miniskript mit einer Zusammenfassung der grundlegenden Aussagen der Vorlesung (16 Seiten).
Übungen
Übungsblätter
Das neue Übungsblatt (nur hier online) erscheint spätestens Montag mittags.
- Übungsblatt 1: Einführung (zu Vorlesung 1)
- Übungsblatt 2: Begriffe, eCard-Modellierung (zu Vorlesungen 2,3)
- Übungsblatt 3: Objektorientierung, dynamische Modelle (zu Vorlesungen 4,5)
- Übungsblatt 4: UML (zu Vorlesungen 6,7)
- Übungsblatt 5: Anforderungserhebung (zu Vorlesungen 8,9)
- Übungsblatt 6: Anforderungsanalyse (zu Vorlesungen 10,11)
- Übungsblatt 7: Modularisierung, Architektur (zu Vorlesungen 12,13)
- Die KWIC-Quellen sind als ZIP gepackt (jeweils etwa 15 KByte) und enthalten Eclipse-Projekt-Dateien:
- KWIC 1
- KWIC 2
- KWIC 3
- Übungsblatt 8: Entwurfsmuster (zu Vorlesungen 14,15)
- Übungsblatt 9: Schnittstellenspezifikation, OCL (zu Vorlesungen 16,17)
- Übungsblatt 10: Analytische Qualitätssicherung (zu Vorlesungen 18,19)
- Übungsblatt 11: Qualitätssicherung, Persönlichkeitstyp (zu Vorlesungen 18,19,22)
- Übungsblatt 12: Konstruktive Qualitätssicherung, Prozessmodelle (zu Vorlesungen 20,21)
- Übungsblatt 13: Projektmanagement: Schätzung, Planung, Risiken (zu Vorlesungen 23,24)
- Übungsblatt 14: Dokumentation, Wartung (zu Vorlesung 28)
- Extra-Übungsblatt: Typische Klausuraufgaben
- Lösungshinweise für einige Aufgaben der Übungsblätter 1-14
Quellen
- Zur Einarbeitung in UML (Version 1.5, die aktuelle ist aber 2.0!) können Sie neben dem empfohlenen Buch von Brügge/Dutoit folgende Online-Quellen nutzen: UML-Spezifikation (Achtung: Sehr schwer zu lesen!), Uni Magdeburg, OBJECTspektrum, Wikipedia, Poster (von oose.de GmbH)
- Wenn Sie UML-Diagramme zeichnen möchten, können Sie UML-Werkzeuge nutzen oder aber ein ganz normales, vektor-orientiertes Zeichenprogramm.
- Links zu Entwurfsmustern: Huston, Pattern Stories, WikiWiki 1, WikiWiki 2, Hillside
- Zum Thema OCL ist ausnahmsweise mal die Spezifikation selbst zu empfehlen. Sie ist übersichtlich und hat eine Menge Beispiele auf Basis eines UML-Klassendiagramms.
- Die Techniken des Extreme Programming sind kurz aber gut von Frank Westphal beschrieben worden. Ausführlichere Quellen sind http://www.xprogramming.com/xpmag/whatisxp.htm oder http://www.extremeprogramming.org/.
Klausurvorbereitung
Grundsätzlich wird der Stoff der Vorlesung plus Stoff der Übungen geprüft. Die Übungsblätter geben einen guten Hinweis auf mögliche Aufgaben. Sie waren meistens wie folgt aufgeteilt: In der ersten Aufgabe wurden Begriffe abgefragt. In der Klausur werden diese Begriffe ohne weitere Erläuterung benutzt, aber explizit abgefragt werden sie allenfalls in Richtig/Falsch-Fragen, die insgesamt nur einen kleinen Teil der Klausur ausmachen werden, wenn überhaupt. Die letzten Aufgaben der einzelnen Übungsblätter waren meist Diskussionsanregungen, die in dieser Form schwerlich für Klausuren geeignet sind. Die zwei oder drei Aufgaben dazwischen definieren also den typischen Klausurstoff.
Ein Extra-Übungsblatt zur Klausurvorbereitung ist unter den Übungsblättern zu finden, zu dem auch Lösungshinweise gibt. Selbstverständlich kann es in der Klausur auch andere Aufgabenthemen und -typen geben; einige der Aufgaben dort sind aber alte Klausuraufgaben. Desweiteren sind oben auch Lösungshinweise für einige Aufgaben der regulären Übungsblätter zu finden. Unter
http://www.teachswt.de/ finden Sie weitere relevante Übungen (mit Lösungen) zum Thema.
Es ist notwendig, sich zur Klausur anzumelden, und zwar bis zum 13.2.! Dies tun sie entweder in den Tutorien oder (zur Not) im Sekretariat von Prof. Prechelt, Raum 013.
Sonstiges
Übersetzungs-Glossar
Die deutschen und englischen Entsprechungen vieler wichtiger Begriffe finden Sie im
Glossar
Historie des Stoffplans
WS 2005/2006:
- Vorlesung komplett umgestellt auf ein eigenes Konzept, teilweise basierend auf Buch "Objektorientierte Softwaretechnik" von Brügge und Detoit.
WS 2004/2005:
- Vorlesung komplett umgestellt auf Buch SE7 von Ian Sommerville (zuvor: Buch von Helmut Balzert)
WS 2003/2004:
- Weggelassen:
- Einheit zu Komponenten (JavaBeans, COM);
- Einheit zu serverseitigen Komponenten (EJB, Corba, COM+)
- Einheit zu Web-UI (Servlet, JSP, CGI)
- Einheit zu Wiederverwendung
- Zugefügt:
- Einheit zu Dokumentation
- Einheit zu Testautomatisierung
- Einheit zu Risikomanagement
- Verändert:
WS 2002/2003 (Blockkurs im März):
- erste Durchführung, basierend auf Buch "Lehrbuch der Softwaretechnik" (Teil 1 und 2) von Helmut Balzert.
(Kommentare)
Wenn Sie Anmerkungen oder Vorschläge zu dieser Seite haben, können Sie sie
hier (möglichst mit Datum und Name) hinterlassen:
SWTIDSR