Kapitel Projektmanagement
Before Width: | Height: | Size: 620 KiB After Width: | Height: | Size: 620 KiB |
Before Width: | Height: | Size: 371 KiB After Width: | Height: | Size: 371 KiB |
Before Width: | Height: | Size: 241 KiB After Width: | Height: | Size: 241 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
BIN
Assets/Softwaretechnik1_Burndownchart.png
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
Assets/Softwaretechnik1_FPA1.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
Assets/Softwaretechnik1_FPA2.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
Assets/Softwaretechnik1_FPA3.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
BIN
Assets/Softwaretechnik1_Organisation_hierarchisch.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
Assets/Softwaretechnik1_Organisation_matrix.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
Assets/Softwaretechnik1_ProjektplanungBeispiel.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
Assets/Softwaretechnik1_Projektstruktur.png
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
Assets/Softwaretechnik1_Ressourcenplanung.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
Assets/Softwaretechnik1_ScrumVorgehen.png
Normal file
After Width: | Height: | Size: 210 KiB |
BIN
Assets/Softwaretechnik1_Spiralmodell.png
Normal file
After Width: | Height: | Size: 170 KiB |
BIN
Assets/Softwaretechnik1_UnifiedProcess.png
Normal file
After Width: | Height: | Size: 185 KiB |
BIN
Assets/Softwaretechnik1_XP.png
Normal file
After Width: | Height: | Size: 35 KiB |
@ -13,7 +13,7 @@ Unterlagen zu Informatik Vorlesungen der TU Ilmenau
|
||||
- [Computergrafik](Computergrafik.md)
|
||||
- [Computergrafik Cheatsheet](Computergrafik%20-%20Cheatsheet.pdf) (work in progress)
|
||||
- [Datenbanksysteme](Datenbanksysteme.md)
|
||||
- [Fragenkatalog](Datenbanksysteme%20-%20Fragen.md) (work in progress)
|
||||
- [Fragenkatalog](Datenbanksysteme%20-%20Fragen.md)
|
||||
- [Einführung in die Medizinische Informatik](Einführung%20in%20die%20Medizinische%20Informatik.md)
|
||||
- [Grundlagen und diskrete Strukturen](Grundlagen%20und%20Diskrete%20Strukturen.md)
|
||||
- [GudS - Cheatsheet](Grundlagen%20und%20Diskrete%20Strukturen%20-%20Cheatsheet.pdf)
|
||||
@ -25,7 +25,7 @@ Unterlagen zu Informatik Vorlesungen der TU Ilmenau
|
||||
- [Praktikum A1](Rechnerarchitekturen%201%20-%20Praktikum%20A1.pdf)
|
||||
- [Praktikum A2](Rechnerarchitekturen%201%20-%20Praktikum%20A2.pdf)
|
||||
- [Rechnerarchitekturen 2](Rechnerarchitekturen%202.md)
|
||||
- [Softwaretechnik](Softwaretechnik.md) (work in progress)
|
||||
- [Softwaretechnik](Softwaretechnik.md)
|
||||
- [MindMap](Softwaretechnik%20-%20MindMap.pdf) (work in progress)
|
||||
- [Seminar](Softwaretechnik%20-%20Seminar.pdf) (work in progress)
|
||||
- [Beispiel Flowchart](Softwaretechnik%20Flowchart.tex)
|
||||
|
@ -414,8 +414,8 @@ Randbedingungen
|
||||
- Vorgaben durch Marketing und Vertrieb
|
||||
- Technische Randbedingungen (nichtfunktionale Anforderung)
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Geforderte (Meta-)Eigenschaften
|
||||
- Vollständig: alle Szenarien sind beschrieben
|
||||
@ -442,7 +442,7 @@ Geforderte (Meta-)Eigenschaften
|
||||
- Beteiligt: Entwickler
|
||||
- Ergebnis: funktionale Spezifikation - Produktdefinition, Analysemodell, Pflichtenheft
|
||||
|
||||

|
||||

|
||||
|
||||
| | Anforderungsermittlung | Systemmodellierung |
|
||||
| -- | -- | -- |
|
||||
@ -604,8 +604,8 @@ Leitfaden für Anwendungsfälle
|
||||
- Reihenfolge festlegen
|
||||
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Objektorientierte Analyse und Systemmodellierung
|
||||
- Übersicht
|
||||
@ -638,8 +638,8 @@ Leitfaden für Anwendungsfälle
|
||||
- Dynamisches Modell (Zustands- und Sequenzdiagramme)
|
||||
- Unterscheidung der Objekttypen
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
- Heuristik Sprache $\rightarrow$ OO-Modell
|
||||
- Objektarten im Systemmodell
|
||||
@ -2391,14 +2391,463 @@ Unterstützungsprozesse / -Aktivitäten
|
||||
- Gesamter SW-Lebenszyklus
|
||||
|
||||
|
||||
|
||||
## Iterative Modelle
|
||||
Iterativer Entwicklungsprozess
|
||||
- Spezifikation, Entwurf und Implementierung müssen immer wieder verändert und angepasst werden
|
||||
- Häufiges Integrieren, Validieren und Testen
|
||||
- "You should use iterative development only on projects that you want to succeed." [Fowler]
|
||||
|
||||
Inkrementelle Entwicklung
|
||||
- Wenn möglich, sollte es immer einen lauffähigen (unvollständigen) Prototypen geben
|
||||
- Neue Funktionen sofort integrieren
|
||||
- Neue Versionen gegenüber Anforderungen Validieren
|
||||
|
||||

|
||||
Spiralmodell
|
||||
- Risikogetrieben: Größte Projektrisiken identifizieren und als erstes bearbeiten (Prototyp?)
|
||||
- Spirale = iterativer Zyklus durch dieselben Schritte
|
||||
- Ziele jedes Durchlaufs aus alten Ergebnissen ableiten
|
||||
- Kosten/Nutzen abwägen
|
||||
- Regelmäßige Überprüfung des Prozessmodells
|
||||
- Anpassbar
|
||||
- Hoher Management-Overhead, große Projekte
|
||||
|
||||
Unified Process
|
||||
- Vorgehensmodelle zur objektorientierten Softwareentwicklung
|
||||
- Ivar Jacobson, Grady Booch and James Rumbaugh: The Unified Software Development Process, (Rational/IBM), 1999
|
||||
- Phasen der Entwicklung
|
||||
- Anfang, Ausarbeitung, Erstellung, Überleitung
|
||||
- Unterteilung in Iterationen
|
||||
- Definition von Meilensteinen
|
||||
- Definition von Kernprozessen, die in den Phasen ablaufen
|
||||
- Geschäftsprozessmodellierung, Anforderungsanalyse, Analyse & Design, Implementierung, Test, Auslieferung
|
||||
- In unterschiedlichen Anteilen parallel ablaufend!
|
||||
|
||||
Prinzipieller Ablauf des Unified Process
|
||||

|
||||
- Haupteigenschaften des UP
|
||||
- Inkrementell, iterativ, evolutionär
|
||||
- Anwendungsgetrieben
|
||||
- Architekturzentriert
|
||||
- Risikoorientiert
|
||||
- Ereignisorientiert
|
||||
- Nutzt die UML als Notationssprache
|
||||
- Erweiterbar / Anpassbar
|
||||
- Verbreitete Vertreter
|
||||
- Rational Unified Process – RUP (Rational / IBM)
|
||||
- Open Unified Process – OpenUP (Eclipse Foundation)
|
||||
- Object Engineering Process – OEP (oose GmbH)
|
||||
- Vorteile
|
||||
- Vorteile der Eigenschaften (iterativ, inkrementell, anpassbar, ...)
|
||||
- Berücksichtigung des Risikos
|
||||
- Passend für objektorientiertes Paradigmas und UML
|
||||
- Tool-Unterstützung
|
||||
- Reaktion auf Änderungen möglich
|
||||
- Industriestandard
|
||||
- Nachteile
|
||||
- Hoher Bürokratischer Aufwand -> Tailoring notwendig!
|
||||
- Relativ hohe „Lernkurve“ aller Beteiligten
|
||||
- Keine schnelle Reaktion auf Änderungen
|
||||
- Keine integrierte Qualitätssicherung
|
||||
|
||||
## Agile Methoden
|
||||
- Ausgangspunkt
|
||||
- Ziv's Unsicherheitsprinzip des Software Engineering: "Unsicherheit ist im Software-Entwicklungsprozess und den Produkten inhärent und unvermeidlich." (Ziv, 1996)
|
||||
- Humphrey's Prinzip der Anforderungsunsicherheit: "In einem neuen Software System werden die Anforderungen solange nicht komplett bekannt sein, bis die Anwender damit arbeiten." (Humphrey, 1995)
|
||||
- Wegner's Lemma: "Es ist unmöglich, ein interaktives System komplett zu spezifizieren." (Wegner, 1995)
|
||||
- Ziele
|
||||
- geringer bürokratischer Aufwand
|
||||
- Hauptziel ist die Softwareentwicklung
|
||||
- nur wenige Regeln bzw. Verhalten definiert
|
||||
- sehr flexibel gehaltenes Vorgehen
|
||||
- stark Anwendungs- und Ereignisorientiert
|
||||
- iterativ / inkrementell / evolutionär
|
||||
- sehr schnelle Entwicklungsiterationen
|
||||
- meist Architekturzentriert
|
||||
- auch testgetriebenes Vorgehen möglich
|
||||
- Berücksichtigung sozialer Aspekte
|
||||
- Softwareentwicklung: Kreative Arbeit von Kreativen
|
||||
|
||||
Das Agile Manifest (2001)
|
||||
- Individuen und Interaktionen bedeutender als Prozesse und Tools
|
||||
- Funktionierende Software bedeutender als übermäßige Dokumentation
|
||||
- Stetige Zusammenarbeit mit dem Kunden bedeutender als Vertragsverhandlung
|
||||
- Mut und Offenheit für Änderungen bedeutender als Befolgen eines Plans
|
||||
|
||||
Eigenschaften agiler Vorgehensmodelle
|
||||
- Team ist für Ergebnis verantwortlich und organisiert sich selbst
|
||||
- Kleine Teams 5-8 Personen
|
||||
- Definition von Richtlinien, Werten und Prinzipien
|
||||
- Beispiele für Werte
|
||||
- Kommunikation (Kommunikation statt Dokumentation)
|
||||
- Einfachheit (KISS „Keep it small and simple“)
|
||||
- Feedback
|
||||
- Mut
|
||||
- Respekt
|
||||
- Beispiele für Prinzipien
|
||||
- Beidseitiger Vorteil
|
||||
- Fehlschläge hinnehmen
|
||||
- Ständige Verbesserungen
|
||||
- Ständige Lauffähigkeit des Codes
|
||||
- Kleine Schritte
|
||||
- Wiederverwendung bestehender / bewährter Lösungen
|
||||
- Beispiele für Praktiken
|
||||
- Pair-Programing, Coding Rules
|
||||
- Kollektives Eigentum / Gemeinsamer Codebesitz
|
||||
- Testgetriebene Entwicklung
|
||||
- Ständiges Refactoring
|
||||
- Keine Überstunden
|
||||
- Vorteile agiler Methoden
|
||||
- Geringer bürokratischer Aufwand
|
||||
- Besseres Arbeitsklima (Berücksichtigung Sozialer Aspekte)
|
||||
- Ständige Verfügbarkeit einer lauffähigen Version
|
||||
- Mögliche / nötige Einflussnahme des Kunden
|
||||
- „Freie“ Wahl der Prinzipien/Regeln
|
||||
- Vermeidung von Spezialistentum und individuellem Besitz
|
||||
- Nachteile
|
||||
- Schwierigeres Projektmanagement
|
||||
- Chaotische Vorgehen
|
||||
- Schwere Planbarkeit des Ergebnisses
|
||||
- Notwendige Beteiligung des Kunden
|
||||
- Ergebnis ist schwer vorherzusagen
|
||||
|
||||
### eXtreme Programming (XP)
|
||||
- Beck 1999, aus Kritik an „monumentalen Modellen“
|
||||
- Evolutionäre Entwicklung in kleinen Schritten
|
||||
- Möglichst einfaches Design
|
||||
- Konzentration auf Programmcode als Analyseergebnis, Entwurfsdokument und Dokumentation
|
||||
- Weglassen von explizitem Design, ausführlicher Dokumentation und Reviews
|
||||
- Code wird permanent lauffähig gehalten (täglich)
|
||||
- Schnell und flexibel
|
||||
- Erfordert Disziplin der Teilnehmer
|
||||
- Rollen: Projektleiter, Kunde (verfügbar), Entwickler
|
||||
- Max. 5-10 Entwickler
|
||||
- Kunde bestimmt Anforderung und Prioritäten
|
||||
- planning game; story cards (use cases)
|
||||
- Implementierung in kleinen Schritten
|
||||
- pair programming, collective code ownership
|
||||
- Häufige Releases inkl. Integration
|
||||
- Refactoring bei Designänderungen
|
||||
- Programmier-Konventionen
|
||||
- Regelmäßiges automatisiertes Testen
|
||||
- test-first Ansatz
|
||||
- Morgendliches Meeting im Stehen ohne Diskussionen
|
||||
- 40h-Woche
|
||||
- XP
|
||||
- Sammlung von 12 "best practices"
|
||||
- Test-getrieben
|
||||
- Flexibel, effizient
|
||||
- Kleine Teams
|
||||
- Erfordert Disziplin der Teilnehmer
|
||||
- 
|
||||
|
||||
### Scrum
|
||||
- [Ken Schwaber, Jeff Sutherland und Mike Beedle]
|
||||
- Haupteigenschaften
|
||||
- Iterativ / Inkrementell, Evolutionär
|
||||
- stark Anwendungs- und Ereignisorientiert
|
||||
- schnelle Entwicklungsiterationen
|
||||
- Sprint
|
||||
- eine schnelle Iteration: Dauer ca. 30 Tage
|
||||
- Festlegung welche Features umgesetzt werden
|
||||
- Product Backlog
|
||||
- Liste der gewünschten Features des Produkts
|
||||
- Vom Produkt-Owner priorisiert / Aufwand vom Team geschätzt
|
||||
- Jeder kann Einträge beisteuern
|
||||
- Rollen
|
||||
- Product Owner
|
||||
- Erfasst Bedürfnisse der Kunden und Stakeholder
|
||||
- Pflegt Backlog, definiert, priorisiert Features pro Sprint
|
||||
- Scrum Master
|
||||
- Berät das Team, Überprüft Einhaltung von Werten und Techniken, moderiert die Meetings
|
||||
- Schützt das Team vor äußeren Störungen
|
||||
- Repräsentiert Team gegenüber Management
|
||||
- Scrum Team (ca. 5-9 Personen)
|
||||
- Team organisiert sich und die Aufgaben selbst
|
||||
- Team bedeutet: Zielgerichtet und funktionsübergreifend arbeiten, gemeinsames Ziel verfolgen, selbstloses Handeln, Teamentscheidungen vertreten
|
||||
|
||||
Sprint Backlog
|
||||
- Für die aktuelle Iteration ausgewählte Aufgaben
|
||||
- Aufgabe nicht länger als 2 Tage Aufwand
|
||||
- Team-Mitglieder wählen Tasks aus – keine Zuweisung
|
||||
- Restaufwand wird täglich aktualisiert – Burndown Chart
|
||||
- Team-Mitglied kann Tasks hinzufügen, löschen, ändern
|
||||
- Darstellung an prominenter Stelle
|
||||
|
||||
Daily Meeting
|
||||
- ca. 15 Minuten
|
||||
- Kurze Statusmeldung, Was wurde geschafft? Was ist zu tun? Was behindert den Fortschritt?
|
||||
- Weiterführende Diskussionen erst im Anschluss
|
||||
|
||||

|
||||
|
||||
Sprint Review-Meeting
|
||||
- Präsentation des Erreichten (Feature Demo)
|
||||
- Product Owner, Kunde usw. geben Feedback
|
||||
- Neue Anforderungen hinzufügen / Neu priorisieren
|
||||
- Qualitätsansprüche ändern
|
||||
|
||||
Sprint-Retrospektive
|
||||
- Rückkopplungsschleife
|
||||
- Was war gut und was hat nicht funktioniert?
|
||||
- Was kann verbessert werden?
|
||||
- Nach jedem Sprint
|
||||
- Diskussion der identifizierten Probleme
|
||||
- Identifikation von wenigen „Action Items“
|
||||
|
||||
Burndown Chart
|
||||
- Darstellung der offenen und erledigten Aufwände / Tasks
|
||||
- 
|
||||
|
||||
## Zusammenfassung
|
||||
- Software-Entwicklungsmethode
|
||||
- Elemente
|
||||
- Darstellung – Notation und Semantik für Modelle, Diagrammtypen, Dokumentvorlagen (Artefakte)
|
||||
- Vorgehensmodell – Phasen, Arbeitsschritte
|
||||
- Verfahren – Regeln, Anweisungen, Aktivitäten (+Rollen)
|
||||
- Werkzeuge
|
||||
- Industriestandards: RUP + UML
|
||||
- Öffentliche Auftraggeber: V-Modell
|
||||
- Firmenintern: eigene Varianten, evtl. projektabhängig
|
||||
- Weitere Themen
|
||||
- Reifegradbeurteilung CMMI, SPICE, ISO 9000
|
||||
- Charakterisierung von Vorgehensmodellen
|
||||
- Sequenziell
|
||||
- Teilprozesse strikt nacheinander
|
||||
- Keine Änderungen abgeschlossener Artefakte
|
||||
- Nebenläufig
|
||||
- Teilprozesse laufen teilweise parallel für bessere Zeitnutzung
|
||||
- Dokumentgetrieben
|
||||
- Erstellung von Dokumenten (Artefakte) im Vordergrund
|
||||
- Festlegung der Dokumente pro Phase
|
||||
- Charakterisierung von Vorgehensmodellen
|
||||
- Iterativ
|
||||
- Definition einer sich wiederholenden Abfolge von Teil-Prozessen bzw. Aktivitäten
|
||||
- Schnelles Wiederholen dieser Abfolgen
|
||||
- Inkrementell
|
||||
- Definition und Kontrolle des Fortschritts pro Iteration
|
||||
- Kleine Erweiterungen
|
||||
- Evolutionäres Vorgehen
|
||||
- Schnelle Prototypen
|
||||
- Lauffähiger Prototyp jederzeit vorhanden
|
||||
- Toolunterstützung (Versionierung)
|
||||
- Charakterisierung von Vorgehensmodellen
|
||||
- Ereignisorientiert
|
||||
- Schnelle Reaktion auf Anforderungsänderungen
|
||||
- Keine starre Abfolge von Tätigkeiten / Prozessen
|
||||
- Voraussetzung: Prozesse laufen parallel ab
|
||||
- Architekturzentriert
|
||||
- Starke Gewichtung der Architektur
|
||||
- Verwendung von Modellen, Mustern und vorhandenem Wissen
|
||||
- Anwendungsgetrieben
|
||||
- Orientierung an den Anwendungsfällen
|
||||
- Umsetzen, was einem Anwendungsfall zugeordnet werden kann
|
||||
- Anwender steht im Mittelpunkt (User Stories)
|
||||
- Risikoorientiert
|
||||
- Risiko der Entwicklung wird in Planung berücksichtigt
|
||||
- Risiko- / Nutzen-Analyse
|
||||
- Test- / Qualitätsgetrieben
|
||||
- Qualität steht im Vordergrund
|
||||
- Test wird während oder sogar vor der Implementierungs-phase erstellt
|
||||
- Erweiterbar / Anpassbar (tailoring)
|
||||
- Nur Rahmen des Vorgehens festgelegt
|
||||
- Konkretes Vorgehen wird an die Bedürfnisse angepasst
|
||||
- Grundlegende Eigenschaft von Vorgehensmodellen
|
||||
- Softwareprojekt im Sommersemester
|
||||
- Auswahl aus 3 Vorgehensmodellen
|
||||
- Klassisches Vorgehen
|
||||
- Unified Process
|
||||
- Agiles Vorgehen
|
||||
|
||||
# Projektmanagement
|
||||
|
||||
# Projektmanagement
|
||||
Was ist ein Projekt?
|
||||
- Merkmale von Projekten
|
||||
- Zielgerichtetes Vorhaben
|
||||
- Einmaligkeit
|
||||
- Zeitliche, finanzielle und personelle Rahmenbedingungen
|
||||
- Abgrenzung zu anderen Vorhaben
|
||||
- Projektspezifische Organisation
|
||||
- Komplexität (Unterteilung in abhängige Teilaufgaben nötig)
|
||||
- Unsicherheit vor allem in den Frühphasen
|
||||
- Risiko durch unbekannte Aufgabe
|
||||
|
||||
Was ist Projektmanagement?
|
||||
- Überbegriff für planende und durchsetzende Aktivitäten zur Vorbereitung und Durchführung eines Projekts
|
||||
- Management des Problemlösungsprozesses
|
||||
- Nicht die Lösung selbst, eigene Disziplin
|
||||
- Aufgaben
|
||||
- Problemabgrenzung
|
||||
- Zielfestlegung, Ablaufplanung
|
||||
- Planung und Bereitstellung personeller, finanzieller und sachlicher Ressourcen
|
||||
- Führen der Projektgruppe und Koordination der Aktivitäten
|
||||
- Steuerung und Überwachung des Projektablaufes
|
||||
- Zum großen Teil Planungs- und Kommunikationsleistung!
|
||||
|
||||
## Projektplanung
|
||||
Planung des Projektablaufs
|
||||
- Zunächst wieder: Teile und Herrsche!
|
||||
- Projektstruktur
|
||||
- Teilung der Projektaufgabe in Arbeitspakete (work packages) und darin enthaltenen Aktivitäten (activities)
|
||||
- Einteilung möglich anhand Produktstruktur, fachlicher Struktur oder Phasenmodell des Entwicklungsprozesses
|
||||
- Überblick weiterer Planungsaufgaben
|
||||
- Bestimmen der Abhängigkeiten
|
||||
- Ermitteln der nötigen Ressourcen
|
||||
- Schätzen der Aufwände
|
||||
- Zeitplan aufstellen
|
||||
- Meilensteine definieren
|
||||

|
||||
|
||||
Ablaufplanung
|
||||
- Abhängigkeiten (Anordnungsbeziehungen) zwischen Vorgängen A und B: 4 Möglichkeiten
|
||||
- Ende-Anfang (Normalfolge)
|
||||
- B kann begonnen werden, sobald A beendet worden ist
|
||||
- Anfang-Anfang (Anfangsfolge)
|
||||
- B kann begonnen werden, sobald A begonnen worden ist
|
||||
- Anfang-Ende (Sprungfolge)
|
||||
- B kann beendet werden, sobald A begonnen worden ist
|
||||
- Ende-Ende (Endfolge)
|
||||
- B kann beendet werden, sobald A beendet worden ist
|
||||
- Netzplantechnik
|
||||
- Planungsarten
|
||||
- Vorwärtsplanung (ab Startzeitpunkt)
|
||||
- Rückwärtsplanung (ab gewünschtem Projektende)
|
||||
- Berechnete Daten für Vorgänge
|
||||
- Frühester und spätester Anfangszeitpunkt (FAZ / SAZ)
|
||||
- Frühester und spätester Endzeitpunkt (FEZ / SEZ)
|
||||
- Pufferzeiten, z.B. freier Puffer (Verzögerung ohne Verschiebung des Nachfolgers), Gesamtpuffer (Verzögerung ohne Gefährdung des Projektendes)
|
||||
- Notation unterschiedlich
|
||||
- Allgemein
|
||||
- Kritischer Pfad (Verzögerung vergrößert Projektdauer)
|
||||
- Kritische Vorgänge: Teil des kritischen Pfades
|
||||
|
||||
Beispiel:
|
||||
- Arbeitspakete laut Pflichtenheft (z.B.: Use Case)
|
||||
- Aufgaben festlegen
|
||||
- Abhängigkeiten festlegen
|
||||
- Vorwärtsrechnung durchführen
|
||||
- Rückwärtsrechnung durchführen
|
||||
- Kritischer Pfad und Puffer finden
|
||||
- 
|
||||
|
||||
Aufwandsschätzung
|
||||
- Aus Erfahrungswerten systematisiert
|
||||
- Versuch, wichtige Einflussfaktoren zu erfassen
|
||||
- Metriken für Spezifikationen
|
||||
- Komplexität von Teilfunktionen
|
||||
- Menge der Funktionen
|
||||
- Anpassung durch individuelle Faktoren, z.B. abhängig von Erfahrung in der Projektorganisation
|
||||
- Methoden
|
||||
- Function Point Analyse
|
||||
- CoCoMo
|
||||
|
||||
### Function Point Analyse
|
||||
- Ursprung IBM Ende 1970er Jahre
|
||||
- Funktionsumfang und Schwierigkeitsgrad von Software
|
||||
- Verschiedene Verfahren
|
||||
- für Echtzeit- (Full Function Point Method) und „normale“ Software (Int. Function Point User Group, ISO14143)
|
||||
- 
|
||||
- Jeweils Anzahl x Gewicht
|
||||
- Summe aller Werte = Unadjusted Function Points (UFP)
|
||||
- Function Points = UFP x EG
|
||||
- Einflussgrad EG = 1 + 0.01 x SummeEinflussfaktoren
|
||||
- Einflussfaktoren: Einfluss auf Anwendungsentwicklung
|
||||
- 
|
||||
- Berechnung der Personen-Monate aus Erfahrungen vorangegangener Projekte
|
||||
- Aufwand, der von einer Person in einem Monat unter Idealbedingungen erledigt werden kann
|
||||
- Umrechnung mit Tabelle (nichtlinearer Verlauf)
|
||||
- 
|
||||
|
||||
### CoCoMo II
|
||||
- Constructive Cost Model [Boehm2000]
|
||||
- Ausgangspunkt: geschätzte Anzahl Zeilen Quellcode
|
||||
- SLOC, source lines of code (zB. aus UFP schätzen)
|
||||
- Aufwand Personen-Monate (PM) $PM = A * Size^E \prod_{i=1}^n EM$ mit $E=B+0,01*\sum_{j=1}^5 SF_j$
|
||||
- Faktoren $A=2.94$ und $B=0.91$ (anpassbare Koeffizienten)
|
||||
- Effort multiplier $EM: n=6..16$, Tabelle nach Boehm
|
||||
- Beispiele: Komplexität, Wiederverwendbarkeit, ...
|
||||
- Werte $0,7 .. 3,0$
|
||||
- Scale factor SF: Fünf Einflüsse auf Rentabilität der Softwareentwicklung
|
||||
- Notwendige Entwicklungszeit (time to develop) $TDEV = C * PM^F$ mit $F = D + 0,2 * ( E - B )$
|
||||
- Faktoren $C=3,67$ und $D=0,28$, anpassbar
|
||||
- Ressourcenplanung 
|
||||
- Zeitplanung
|
||||
- Zeitplan aus Abhängigkeiten, Aufwänden und Ressourcen sowie festen Terminen
|
||||
- Darstellung als Gantt-Chart / Balkendiagramm
|
||||
|
||||
## Projektdurchführung
|
||||
Projektorganisation
|
||||
- Teilnehmer: Personen, Rollen, Verantwortung, Teams
|
||||
- Linienorganisation:
|
||||
- hierarchisch 
|
||||
- Matrixorganisation 
|
||||
- Reine Projektorganisation: Mitarbeiter werden aus Organisation herausgelöst und Projektleiter unterstellt
|
||||
|
||||
Projektmanager - Rolle und Aufgaben
|
||||
- Planung, Start, Kontrolle und Beenden des Projekts
|
||||
- Schnittstelle zur Umgebung des Projekts
|
||||
- Kunden, Unterauftragnehmer, interne Kontakte, Verträge
|
||||
- Team zusammenstellen und steuern
|
||||
- 5-7 Mitglieder gemischter Qualifikation
|
||||
- Team von äußeren Aufgaben abschirmen
|
||||
- Teilaufgaben definieren, vergeben und koordinieren
|
||||
- Fortschritt kontrollieren und Probleme beseitigen
|
||||
- Weitere Ressourcen bereitstellen
|
||||
- Notwendige Planänderungen erkennen und reagieren
|
||||
- Wichtiger Dienstleister für den Projekterfolg
|
||||
|
||||
Projektstart
|
||||
- Nach Abschluss der Planungsphase
|
||||
- Festlegung von ...
|
||||
- Arbeitsstil und interne Organisation
|
||||
- Aufgabenverteilung und Themen-Verantwortung
|
||||
- Erste Aufgaben, Verantwortliche und Termine
|
||||
- Einigung über Meilensteine und Termine
|
||||
- Art und Termine der Projekttreffen
|
||||
- Informationen und Kommunikationswege
|
||||
- Technische Infrastruktur (Versionskontrollsystem, Entwicklungsumgebung, Dokumentverwaltung, Rechnerzugang, verwendete PM-Software usw.)
|
||||
- Starttreffen des Projekts (kick-off meeting)
|
||||
|
||||
Meetings / Projekttreffen
|
||||
- Regelmäßige Abstimmung der Projektteilnehmer
|
||||
- Außerdem zu wichtigen Meilensteinen
|
||||
- Inhalt und Ablauf: geplant (Tagesordnung), Moderator
|
||||
- Protokoll des letzten Treffens korrekt?
|
||||
- Aktueller Stand
|
||||
- Bericht über individuelle Aufgaben
|
||||
- Planung des nächsten Termins
|
||||
- Protokoll
|
||||
- Datum, Zeit, Ort, Teilnehmer, Moderator
|
||||
- Bezeichnung
|
||||
- Tagesordnung mit einzelnen Punkten
|
||||
- Kurz und knapp, neutral bei Diskussionen!
|
||||
|
||||
Fortschrittskontrolle
|
||||
- Meilensteine
|
||||
- Klar definiertes Zwischenresultat zur Beurteilung des Projektfortschritts
|
||||
- Beispiele: Feinentwurfsdokument fertiggestellt und an Auftraggeber übergeben oder Paket XYZ implementiert und fertig getestet
|
||||
- Besprechung in Projekttreffen
|
||||
- Besprechung des Status jedes Meilensteins / jeder Aufgabe
|
||||
- Welche Aufgaben sind bereits erledigt?
|
||||
- Welche Probleme sind aufgetreten / gelöst?
|
||||
- Verbleibender Aufwand – Terminverschiebung nötig?
|
||||
- Planung der nächsten Schritte (Aufgabe, Verantwortlicher, Termin)
|
||||
|
||||
Meilenstein-Trendanalyse
|
||||
- Technik zur Fortschrittskontrolle
|
||||
- Überwachung des Projektfortschritts zur Erkennung von Terminverzögerungen
|
||||
- Bei Verzögerungen:
|
||||
- Ressourcen erhöhen
|
||||
- Termine verschieben
|
||||
- Funktionen reduzieren
|
||||
|
||||
Wie viel Planung?
|
||||
- Planung ist wichtig, aber nicht übertreiben!
|
||||
- Aufwand und Detaillierungsgrad der Planung an Projektgröße und „echten“ Aufwand anpassen
|
||||
- Pläne müssen sich ändern können!
|
||||
- Projekte sind einmalig und daher unvorhersehbar
|
||||
- Adaptiv planen: nächste Aufgaben genau, spätere grob
|
||||
- Einsatz von Projektmanagement-Software
|
||||
- Projektende
|
||||
- Abschlusstreffen
|
||||
- Bewertung von Ergebnis und Organisation - was kann in Zukunft besser gemacht werden?
|