Nächste Seite:
Einleitung
CASE und Projektmanagement
Vorlesung, Sommersemester 2005
Johannes Waldmann, HTWK Leipzig
Einleitung
Inhalt
Material
Organisation
Programme und Softwaresysteme
Produktivität
Software ist schwer zu entwickeln
Übung KW 11
Planung Seminar Entwurfsmuster
Eclipse (I)
Eclipse (II)
Fred Brooks: The Mythical Man Month
Struktur von Java-Programmen
Packages
Sichtbarkeits-Bereiche
Gültigkeits-Bereiche
Schnittstellen
Schnittstellen (Beispiel)
Eclipse verwenden: ein Applet bauen
Die ActionListener-Schnittstelle
Anonyme Klassen
Diskussion zur Lokalität
Wer-Wen?
Refaktoring: Klassen teilen
Refaktorisieren: Schnittstelle einfügen
Quelltextverwaltung mit CVS
Anwendung, Ziele
CVS-Überblick
CVS-Tätigkeiten (I)
CVS-Tätigkeiten (II)
Konflikte verhindern oder lösen
Welche Formate?
Logging (I)
Logging (II)
Authentifizierung
Unser CVS-Server
Übung CVS
CVS - Einzelheiten
Datei-Status
CVS - Merge
Drei-Wege-Diff
Unterschiede zwischen Dateien
LCS
Aufgaben (autotool) zu LCS
LCS -- naiver Algorithmus (exponentiell)
LCS -- bottom-up (quadratisch)
+
Übung
LCS - eingeschränkt linear
JDK für Eclipse wählen
diff und LCS
Dynamische Optimierung, Beispiel II
Mehr zu CVS (KW 16)
Keyword Expansion
Das Keyword
$Log$
Text- und Binär-Dateien
Symbolische Revisionen (Tags)
Verzweigungen (branches)
Branches (II)
CVS-Benachrichtigungen
CVS-Benachrichtigungen (II)
Code- und Interface-Dokumentation
Code dokumentieren?
Abstand von Dokumenation und Code
Selbst-dokumentierender Code: Klassen
Selbst-dokumentierender Code: Methoden
Selbst-dokumentierender Code: Daten
Selbst-dokumentierender Code: Datenorganisation
Selbst-dokumentierender Code: Steuerung
Selbst-dokumentierender Code: Design
Kommentare
Selbst-dokumentierende Code: Warum?
Übung 16. KW
CVS-Einzelheiten
JavaDoc
Quelltext-Dokumentation mit Doxygen
Software-Management (KW 17)
Management: Definition
Management: Aufgaben
Produktivität
Software-Projekt-Eigenschaften
Qualität
Planung
Prozeß-Elemente
Prozesse und Vorgänge
Meilensteine
Netzpläne
Planung mit Netzplänen
Pufferzeiten, kritische Pfade
Scheduling-Probleme
Komplexität von Scheduling-Problemen
Open-Shop Scheduling
Aufgabe zu Projektplanung
Prozeß-Modelle (KW 18)
Definition (Aufgaben)
Das einfachste Prozeßmodell
Das Wasserfall-Modell
Wasserfall (Eigenschaften)
Das V-Modell
Submodelle, Rollen
Aktivitäten, Produkte
V-Modell, Eigenschaften
Probleme mit ,,klassischen`` Modellen
Prototypen
Arten von Prototypen
Prototyp und Produkt
Prototypen: Bewertung (+)
Prototypen: Bewertung (-)
Evolutionäres Modell
Filmtipp: Revolution OS
Seminar-Folien
Software? Peopleware! (V 27. 5.)
Die vier wichtigsten Elemente des Managements
Personal-Qualifikation
Spezialisierung
Spezialisierung (II)
Spezialisierung und Management
Organisations-Strukturen
Rollen
Laufbahnen
Management by ...
Diskussion
Ziele des Managments (?)
Falsche Hoffnungen
Ziele der Mitarbeiter
Arbeitsbedingungen
Peopleware
Qualitäts-Management (KW 21)
Was ist Qualität?
DIN ISO 9126
Messung von Qualität
Qualitäts-Management
Qualitäts-Sicherung
Qualitätssicherung im V-Modell
Bugzilla
Übung KW 21
Inspektionen
Inspektion
Inspektion (II)
Inspektion (III)
Kosten/Nutzen von Inspektionen
Clean Rooms
Produktqualität (analytisch)
Klassifikation
Dynamische Tests
Dynamische Tests: Black/White
Kontrollfluß-Tests
Datenfluß-Analyse
Daten lokalisieren
Globale Variablen
Übung 15. 6.: Debugging/Profiling
Black-Box-Tests
Probleme mit GUI-Tests
Mischformen
Testen mit JUnit
JUnit und Extreme Programming
Tests und Verifikation
Programming by contract
Verifikation
Schlußregel: Implikation
Axiom: Zuweisung
Regel: Sequenz
Regel: Verzweigung
Regel: Schleifen
Invarianten finden?
Automatische Verifikation?
Verifikation als Wundermittel?
Aufgaben zum Testen und Verifizieren (KW 23)
Partielle und totale Korrektheit
Termination: Beispiel
Termination ,,von selbst``
Termination für Ersetzungs-Systeme
Entwurfsmuster, Refactoring
Entwurfsmuster
Vorlage: Muster in der Architektur
OO-Entwurfsmuster
Musterkatalog
Wie Entwurfsmuster Probleme lösen
Veränderungen in Entwürfen vorhersehen
Refactoring
Herkunft
Refaktoring: Definition
Refactoring anwenden
Refaktorisierungen
Verwendung von Daten: Datenklumpen
Verwendung von Daten: Data Class
Primitive Daten (
primitive obsession
)
Temporäre Attribute
Nichtssagende Namen
Name enthält Typ
Programmtext
Größe und Komplexität
Mehrfachverzweigungen
null-Objekte
Richtig refaktorisieren
Aufgaben zu Refaktoring (I)
Aufgaben zu Refaktoring (II)
Über dieses Dokument ...
Johannes Waldmann 2005-06-21