Kapitel 7 - Configuration Management und CASE
|
Inhalt
|
- Configuration Management
- CASE-Tools
- Projektmanagement
- Scheduling
|
Konfigurationsmanagement
- Meiste viele Ausführungen eines Produktes erstellt
- Produkte unterliegen vielen Änderungen bei Wartung
- Softwarehaus muss jede Änderung nachvollziehen können
- Nur so Gewissheit, wie Fehler zu korrigieren sind und Entscheidungen zu treffen sind
- Release = Gruppe von Komponenten die zusammen erstellt werden
- Wie soll dies kontrolliert werden? -> Configurationmanagement
Configurationmanagement
- Version = Instanz eines Objektes
- Configuration item = spezielle version einer Komponentengruppe
- Baseline = eingefrorene Release, welche spezifischen Status repräsentiert
- Variante = configuration item, was sich leicht unterscheidet
- Change request = online Form, welche alle Änderungsnotizen festhält
- CM kontrolliert Änderungen und die Evulotion eines Produktes
- Probleme sind das Teilen von Komponenten und das Handhaben von Produktfamilien
Teilung von Komponenten
Problem des Mehrfachzugriffes auf ein gemeinsamen Pool von Komponenten
- Mehrfachzugriffe müssen abgeglichen und synchronisiert werden
- Andere müssen über Änderungen informiert werden
- Es darf nicht zu Datenverlusten oder Inkonsistenten im Code kommen
Verwaltung von Produktfamilien
- CM verwaltet nicht nur Source Codes, sondern auch Doks, Testdaten und Manuals
- Problem ist, daß eine Komponente in mehreren Versionen exisitieren kann
Lösungsmöglichkeiten
- Jedes Familienmitglied besteht aus verschiedenen Versionen der Komponenten
- Jede Familienmitglied beinhaltet eine eigene Kopie aller notwendigen Komponenten
Versionierung
- Zentrale shared database welche mit Projekt assoziiert wird
- Jeder Programmierer hat seinen privaten Entwicklerplatz, wo seine Zwischenversionen abgelegt werden, an denen er gerade arbeitet
- Das Ausgeben von Modulen nur über CheckIn / CheckOut Funktionalität
CASE-Werkzeuge - Vorteile, Nachteile
- Computer Aided Software Engineering
- Unabhängig von Hardware, OS und Sprache
- Unterstützt Analyse und das Definieren von Datenflüssen
- Hift beim Entwurf bei Erstellung detaillierter Spezifikationen
- Hilft beim Programmieren und vereinfacht und unterstützt die Dokumentation in jeder Phase
- Hilft beim Projektmanagement und kontrolliert das Projekt
- Datenanalyse ist in CASE Tools integriert
CASE Tools garantieren, daß nichts vergessen wird:
- Jedes Datum mit Attributen
- Jeder Prozess
- Jede Beziehung zwischen Daten
Nachteile:
- CASE Tools sidn Komplex - viel Einarbeitungszeit notwendig
- CASE Tools sind Hilfsmittel, keine Lösungsgeneratoren
Reverse-Engineering
- Einige CASE-Tools unterstützen dies
- Es wird versucht, von Umsetzung zurück zu Spezifikation zu kommen
- Alles genau umgekehrt...
Auswahl eines CASE-Werkzeugs
- Komplette Integration von Analyse, Entwurf, Coding und Tests?
- Welche Standarts und Methologien werden unterstützt?
- Teamwork möglich?
- Client / Server Konzept?
- Wie benutzerfreundlich? (einfach zu nutzen mit GUI, Icons, Hilfesystem)
- Arbeit sollte mit CASE nicht länger dauern als ohne
Architektur eines CASE-Werkzeugs
- Für jede Phase gibt es andere Editoren, welche für jede Phase Dokumente erzeugen
- Datenbank als DS sinnvoll da gegen inkonsistenten und Mehrbenutzerbetrieb unterstützt
- Relationales DBMS nicht effizient, da zu viele relationen zwischen Objekten und Objekte zu komplex (zu viele Joins notwendig, wenn ein Objekt geholt werden soll)
- Zentrales Data Dictonary welches Definitonen aller Daten und Attribute enthält
- OODB hat viele Vorteile (hebt Nachteile von relationalen DBMS auf)(Gespeicherte Objekte werden nicht durch Normalisierung gesplittet)
Technisches Management:
- Projektabschätzung, Projektplanung, Planung des Personalbedarfs, Aufteilung und Zuweisung von Aufgaben, Projektsteuerung und -überwachung
Personalmanagement:
- Personal einstellen, Mitarbeiter motivieren, die richtigen Leute den richtigen Aufgaben zuweisen
Projektmanagement - Ziele und Probleme
- Planen, Abschätzen, Einteilen, Überwachen, Berichten -> Kontrolle
- Nutzen ovn PM Software
- Prozess des Koordinierens aller Schritte während des gesamten Software Lebenszyklus
Projektmanager können sein
- Senior Systemanalyst
- Large IS => einzelner Manager
- Small IS => Programmierer selbst
Allgemeine Aufgaben des Managements
- Planen aller Aktivitäten (Aufgaben identifizieren und Zeit/Kostenabschätzung)
- Aufgaben verteilen (Team zusammenstellen)
- Organisatorisches (Projektarbeit strukturieren und einteilen)
- Überwachen der Prozesse (Führen, Beraten, Koordinieren)
- Kontrollieren der Arbeiten (Ergebnisse überprüfen ...)
Planung eines Projekts
- Planung am Anfang einer jeden Phase
- Eine Aktivität benötigt verschiedene Ressourcen (Personal, Zeit, Geld)
- Ereignisse festlegen (milestones etc.)
- Planung am Ende einer Phase, um Kosteneinschätzung zu verifizieren
Methoden der Projektabschätzung
- Schwierigste überhaupt am Projektmanagement
- Projektgröße und benötigte Ressourcen verlaufen nocht propoprtional!
- Kommunikation, Änderungen, Schnittstellen etc...
- Graph mit (1/2) n (n - 1) Kanten (also quadratischer Aufwand)
3 Methoden
- Quantitative unterstützt
- Erfahrungsbasierte Methode
- Constraintmethode
Methode der quantitativen Abschätzung
- Tabellen und Formeln zur Abschätzung benutzt
- Tabellen: Nummern und Typen der Dateien, Funktionen etc. als Anhaltspunkt welcher mit Produktivität dividiert wird
- D.h. es werden Zahlengewichte für einzelne Probleme gegeben
- Work * Experience / Productity = person/days
Methode der Abschätzung auf Basis der Erfahrung
- Basiert auf Erfahrung vorangehender Projekte
- Funktioniert nicht bei Großprojekten da zu komplex
Methode der Beschränkungen
- Projekt Anforderungen dienen als Basis
Zeitplan eines Projekts (Scheduling)
- Reihenfolge der Aufgaben festlegen
- Welche Aufgaben hängen von welchen Ergebnissen ab?
- Abhängigkeiten werden festgestellt, indem Aktivitäten in logische Sequenz gelegt werden
- Grantt Diagramme und PERT/CPM
Gantt-Diagramme
- Können schnell zu groß werden
- Dekomposition: pro Team ein Plan, Pro Aufgabe ein Plan
Nachteile:
- Keine Abhängigkeiten dargestellt
- Keine Personalhinweise oder Personentage angegeben
PERT/CPM-Diagramme
Die "Kritischer Weg" - Methode mit einem gerichtetenr Graph mit:
- Aktivitäten / Aufgaben als Kanten
- Ereignissen als Knoten und für Synchronistation (z.B. Abhängigkeiten) Dummy-Knoten
- Im Knoten wird Earliest Completion Time und Latest Completion Time eingetragen
- So entstehen Buffer, welche zur Reallokation bei Verschiebungen benutzt werden
Nachteile:
- Wird schon für kleine Projekte sehr kompliziert
- Kein Personenscheduling
Kritischer Weg
Kritischer Pfad ist ein Weg welcher aus Knoten besteht bei denen kein Buffer vorhanden (ECT == LCT)
Kosten-Nutzen-Analyse
- Es werden die Kosten mit dem Nutzen verglichen
- Ökonomischen Nutzen ermitteln und mit alternativen Lösungen vergleichen
Stragtegien:
- Payback Analyse
- Return and Investment Analyse
- Present Value Analyse
Pay-back-Analyse
- Wieviel Zeit ist notwendig, das investierte Geld wieder reinzuholen?
- Nachteil: Lässt kosten nach Payback Periode außer acht
Return-and-Investment-Analyse
- ROI = ( Totaler Nutzen - Totale Kosten) / Totale Kosten
- Prozentuale Angabe welche angibt, wie Profitabel das Geschäft wäre
- Projekte müssen ein Minimum unterschreiten
- Nachteile: Durchschnittswerte als Grundlage
Present-value-Analyse
- Money today = money yesterday + Interest
- PV (present value)
|
|
|
|
|
| Kapitel 1 | Einleitung |
|
Einführung, Geschichte...
|
| Kapitel 2 | Eigenschaften |
|
Filtern und Trennen, Modularisierung...
|
| Kapitel 3 | Strukturierte Analyse |
|
Strukturierte und OO-Analyse, Petri-Netze
|
| Kapitel 4 | Spezifikation |
|
Risikoanalyse, Modellierungshilfen, Spezifikationen
|
| Kapitel 5 | Entwurfsprozess |
|
Entwurf, DFD, Tests, UI...
|
| Kapitel 6 | Prozessmodelle |
|
Softwarekrise, Lebenszyklusmodelle...
|
| Kapitel 7 | CASE und PM |
|
CASE, Projektmanagement...
|
| Kapitel 8 | Software-Metriken |
|
Softwarequalität, Entwurfsmetriken...
|
| Kapitel 9 | Programmierungskonzepte |
|
Legacy Systeme, Reengineering...
|
|
|
|
|
|
|
Quellen:
|
Petr Kroha
Softwaretechnologie
|
Prof. Kroha
Vorlesungsskript
|
L. Rosenhainer
Vorlesungsskript
|
Word Wide Web
Verschiedenste Seiten
|
|
|
|
|
|
|