Nächste Seite:
Einleitung
CASE und Projektmanagement
Vorlesung
Johannes Waldmann, HTWK Leipzig
Einleitung
Inhalt
Material
Organisation
Leistungen:
Programme und Softwaresysteme
Software ist schwer zu entwickeln
Produktivität
The Pragmatic Programmer
Lernen! Lernen! Lernen!
Regelmäßig investieren
Übung KW 11
Fred Brooks: The Mythical Man Month
Edsger W. Dijkstra über Softwaretechnik
Was macht diese Funktion?
Spezifikation 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
Die richtigen Invarianten für Bubble-Sort
Partielle und totale Korrektheit
Termination: Beispiel
Termination ,,von selbst``
Termination für Ersetzungs-Systeme
Produktqualität (analytisch)
Klassifikation der Verfahren
Dynamische Tests
Dynamische Tests: Black/White
Black-Box-Tests
Probleme mit GUI-Tests
Mischformen
Testen mit JUnit
JUnit und Extreme Programming
Eclipse (I)
Eclipse (II)
Kontrollfluß-Tests
Datenfluß-Analyse
Daten lokalisieren
Globale Variablen
Prüfen von Testabdeckungen
Übung Profiling
Code-Optimierungen
Kosten von Algorithmen schätzen
Code-Transformationen zur Optimierung
Gefährliche ,,Optimierungen``
Code-Metriken
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
Entwurfsmuster, Refactoring
Entwurfsmuster
Beispiel zu Entwurfsmustern
Beispiel: Strukturmuster: Kompositum
Beispiel: Verhaltensmuster: Strategie
Beispiel: Strukturmuster: Dekorierer
Beispiel: Erzeugungsmuster: (abstrakte) Fabrik
Beispiel: Verhaltensmuster: Befehl
Muster und Funktionales Programmieren
Muster und Programmierung höherer Ordnung
Anonyme Klassen
Strukturmuster: Fliegengewicht
Verhaltensmuster: Interpreter
Verhaltensmuster: Memento
Verhaltensmuster: Zustand
Verhaltensmuster: Beobachter
Verhaltensmuster: Beobachter
Übung zu Entwurf(smustern)
OO-Entwurfsmuster
Musterkatalog
Wie Entwurfsmuster Probleme lösen
Vorlage: Muster in der Architektur
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)
Aufgaben zu Refaktoring (II)
Class Design
Klassen-Entwurf
Immutability
Immutability
Vererbung bricht Kapselung
Vererbung bricht Kapselung
Code- und Interface-Dokumentation
Code dokumentieren?
Abstand v. Dokumenation u. Code
Selbst-dok. Code: Klassen
Selbst-dok. Code: Methoden
Selbst-dok. Code: Daten
Selbst-dok. Code: Datenorganisation
Selbst-dok. Code: Ablauf
Selbst-dok. Code: Design
Kommentare
Selbst-dok. Code: Warum?
Schnittstellen-Dokumentation
JavaDoc
Übung Javadoc
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
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 Bugzilla
Zusammenfassung
Inhalt
Einordnung der Softwaretechnik
Rolle der Hochschulen
Verhältnis von Theorie und Praxis
Auswertung der Umfragen zur LV
Zukünftiger Bachelor/Master-Plan
Autotool-Highscore
Über dieses Dokument ...
Johannes Waldmann 2006-06-26