stop Die aktuelle Softwaretechnik-Webseite finden Sie stets unter VorlesungSoftwaretechnik. stop

Softwaretechnik WS2007/2008

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:

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.

Termine und Nachrichten

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

  1. 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
  2. Fallbeispiel:
    Elektronische Gesundheitskarte, Teil 1
    • Einleitung, Objektmodell eRezept; Rahmenarchitektur (RA); RA:Geschäftsprozesse, RA:Anwendungsfälle (Use-Cases).
  3. Fallbeispiel:
    Elektronische Gesundheitskarte, Teil 2 (Folien 26-65)
    • Digitale Signatur; RA:Sicherheitsanforderungen und –architektur; RA:nichtfunktionale Anforderungen; RA:Subsysteme, RA:Primärsysteme und Anbindung
  4. Fallbeispiel:
    Elektronische Gesundheitskarte, Teil 3 (Folien 66-89)
    • Lösungsarchitektur (LA); LA:Schichtenmodell, LA:Akteure, LA:eRezept-Handhabung; Erkenntnisse; Rolle von Domänenwissen
  5. Einführung:
    Die Welt der Softwaretechnik
    • Routine und Innovation: Normales und radikales Vorgehen; Taxonomie: Probleme und Lösungen
  6. Modellierung:
    UML Einleitung und statische Sicht
    • Modelle und Modellierung (Realität vs. Modell; Phänomene vs. Konzepte); UML; Schnelldurchgang; Use-Case-Diagramme; Klassendiagramme
  7. 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)
  8. 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)
  9. 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
  10. 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)
  11. Verstehen WAS:
    Analyse (dynamisches Objektmodell)
    • Klassen finden mit dynamischer Modellierung; Zustandsdiagramme (statechart diagrams); Sequenzdiagramme; Aufbau eines Anforderungsanalyse-Dokuments; Validierung (und Gegensatz zu Verifikation)
  12. 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)
  13. 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
  14. 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)
  15. Wiederverwenden WIE:
    Entwurfsmuster, Teil 2
    • Arten von Entwurfsmustern; Stellvertreter-Muster (proxy pattern); Kommando-Muster (command pattern); Beobachter-Muster (observer pattern); Strategie-Muster (strategy pattern); Abstrakte-Fabrik-Muster (abstract factory pattern); Erbauer-Muster (builder pattern)
  16. Spezifizieren WIE:
    Schnittstellenspezifikation
    • Sichtbarkeiten (public, protected, private, package), Signaturen (Parameter, Resultate), OCL (context, pre, post, inv)
  17. Umsetzen (Implementierung):
    Modelltransformation zur Objektimplementierung
    • Modelltransformation, Forward Engineering, Reverse Engineering, Refaktorisierung; Modelloptimierungen; Abbildung von Assoziationen; Abbildung von Schnittstellenverträgen; Abbildung auf relationale Datenbankstabellen
  18. 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)
  19. 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)
  20. Vorbeugen DAMIT:
    Konstruktive Qualitätssicherung (Qualitätsmgmt., Prozessmgmt.)
    • Projekt- vs. Prozessmgmt.; Arten von Prozessmgmt.-Leitlinien; CMM-SW/CMMI (5 Prozessreifestufen); TQM (Prinzip: Kundenzufriedenheit); ISO 9000
  21. 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)
  22. 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
  23. Umsetzen (Prozess):
    Projektmanagement, Teil 1
    • Was und wofür?; Aufgabenfelder; Schätzen (Schätzverfahren; Funktionspunktschätzung); Todesmarschprojekte
  24. Umsetzen (Prozess):
    Projektmanagement, Teil 2
    • Zeit- und Ressourcenplanung; Microsoft Project; Critical Path Method (CPM); Finden von Aufgabenzerlegungen; Risikomanagement; Risikolisten; DOs and DON'Ts
  25. Umsetzen (Prozess):
    Projektmanagement, Teil 3
    • Teams; Sportteam oder Chor?; Organisationsstrukturen; Rollen; Kommunikationsstrukturen; psychologische Faktoren; Schätzen von Wahrscheinlichkeiten; Motivation; Attribution; Haltungen; soziale Einflüsse
  26. 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
  27. 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
  28. Normales Vorgehen maximieren:
    Wiederverwendung, Teil 2
    • Benutzbarkeitsmuster; Prozessmuster; Mustersprachen; Anti-Muster; Werkzeuge
  29. 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)
  30. Berühmte letzte Worte:
    Zusammenfassung
    • Wiederholung aus 1. Vorlesung; Schnelldurchgang durch Stoffplan; wichtige nicht besprochene Themen; einige Empfehlungen

Übungen

Um den Studierenden des laufenden Semesters nicht den Spaß an der Übung nicht zu verderben, gibt es das Übungsmaterial nur für Studierende aus dem Vorjahr auf Anfrage beim Übungsleiter der aktuellen Softwaretechnikvorlesung.

Historie des Stoffplans

(Kommentare)

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

 

SWTIDSR