Webcam Diggs Cam


Configuration Management und CASE

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)
Printansicht Inhalt Anfang zurück vor
Kapitel 1Einleitung
Einführung, Geschichte...
Kapitel 2Eigenschaften
Filtern und Trennen, Modularisierung...
Kapitel 3Strukturierte Analyse
Strukturierte und OO-Analyse, Petri-Netze
Kapitel 4Spezifikation
Risikoanalyse, Modellierungshilfen, Spezifikationen
Kapitel 5Entwurfsprozess
Entwurf, DFD, Tests, UI...
Kapitel 6Prozessmodelle
Softwarekrise, Lebenszyklusmodelle...
Kapitel 7CASE und PM
CASE, Projektmanagement...
Kapitel 8Software-Metriken
Softwarequalität, Entwurfsmetriken...
Kapitel 9Programmierungskonzepte
Legacy Systeme, Reengineering...
PDF download:
Ausarbeitung STKomplett
Quellen:
Petr Kroha
Softwaretechnologie
Prof. Kroha
Vorlesungsskript
L. Rosenhainer
Vorlesungsskript
Word Wide Web
Verschiedenste Seiten
Links:
Introduction to Software Engineering
University Of California
UML Einführung
Uni Hannover

login

last change 06.04.2008 16:28:32  © 2002 - 2005 Holger Kreissl