Transcript Aufgabe3

Blatt 2 Aufgabe 3
Function Point Analyse
und
Cocomo 81
Gruppe AIA1
Besir Öztürk
Georg Arnaoutis
Imdat Salman
Khoa Do
Serhat Cinar
Stefan Linke
Protokollant
Projektleiter
Repräsentant
Fachhochschule Köln Campus Gummersbach
Projektmanagement SS2003
Prof.Dr. Winter
Inhalt
Aufgabenstellung
Differenzierungen – Ausarbeiten der Punkte im Lastenheft

Funktionen

Komponenten

Schnittstellen

Dateien

Datenbanktabellen

(Eingabe-)Formulare
Function-Point-Analyse

Roh-Function-Points aus Daten-Eingaben, Daten-Ausgaben, Externe Abfragen,
Interne Dateien / Daten

System-Infrastruktur

Output: Function Points, Umrechnung in Aufwand: PM und LOC
Cocomo81

Analysemodell

Projektmodus

Costdriver

Aufwand in PM
Ergebnis und Interpretation
2
Aufgabenstellung
Aufwandschätzung des Projekts SeminarIS
Faktoren der Function-Point-Analyse
Durchführung der Function-Point-Analyse
Überprüfung der Schätzung mit Cocomo81
3
Differenzierungen
Um die im Lastenheft genannten Funktionen besser
bewerten zu können, muss eine Differenzierung
durchgeführt werden.
4
Differenzierungen: Funktionen
F40 wird aufgeteilt in:
F40A
Ersterfassung, Änderung & Löschung von Seminarveranstaltungen
F40B
Ersterfassung, Änderung & Löschung von Seminartypen
F70 wird aufgeteilt in:
F70A
Teilnehmerliste
F70AX
Festlegen des Layouts für die Teilnehmerliste
F70B
Teilnahmebescheinigung
F70BX
Festlegen des Layouts für die Teilnahmebescheinigung
F70C
Umsatzliste
F70CX
Festlegen des Layouts für die Umsatzliste
F80 wird aufgeteilt in:
F80A
Seminartermine
F80B
Zahlungsverkehr
F80C
Wohnortstatistik
5
Differenzierungen: Komponenten, Schnittstellen &
Dateien
Wiederverwertbare Komponenten
C1
Liste zur Auswahl von Seminaren für F10, F20, F30
2 Felder (DT110 –Seminar ID, Name)
C2
Komponente für RTF-Text
Frei editierbares RTF-Feld
Schnittstellen
S2
Datenbank JDBC
S3
Fakturierung Buchhaltung, TCP / IP
Dateien
BK10
Backup aller Daten
6
Differenzierungen: Datenbanktabellen
DT10
DT20
DT30
DT50
DT60
DT70
DT80
DT90
DT100
DT110
DT120
Personendaten
(PK) Personen ID, Vorname, Nachname, Strasse, PLZ, Ort, Postfach, Kontonummer, BLZ,
Telefonnummer, Mobilnummer, Email
Personen-Seminare
(PFK) Personen ID, (PFK) Seminar ID, besucht oder gehalten
Personen-Zahlungen (Zahlungsposten)
(PFK) Personen ID, (PFK) Seminar ID, Betrag, Datum, ausgezahlt / eingezahlt / Gutschrift
Firmendaten
(PK) Firmen ID, Firmenname, Strasse, PLZ, Ort, Postfach, Telefonnummer, Email, (FK) Branchen ID
Branchen
(PK) Branchen ID, Bezeichnung
Firmen-Personen
(PFK) Firmen ID, (PFK) Personen ID, Stellung
Legende
Dozentendaten
PK: Primärschlüssel
(PFK) Personen ID, Stundenlohn
FK: Fremdschlüssel
Fachgebiete
PFK: Fremdschlüssel als Primärschlüssel
(PK) Fach ID, Bezeichnung
(identifizierende Beziehung)
Dozenten-Fachgebiete
(PFK) Personen ID, (PFK) Fach ID
Seminardaten
(PK) Seminar ID, Name, (FK) Fachgebiet, Begin, Ende, Preis pro Teilnehmer, Strasse, PLZ, Ort,
Raum, Teilnehmerkapazität
Benutzerdaten
(PK) Username, Passwort, Letzter Login, Abteilung
7
Differenzierungen: Formulare (1)
FR10
FR20
FR30
FR40A
FR40B
FR50
FR60AB
FR60X
FR70A
FR70AX
F10: Eingabe, Änderung & Löschung von Personendaten
12 Felder (DT10) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
F20: Ersterfassung, Änderung und Löschung von Firmen
9 Felder (DT50) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
F30: Ersterfassung, Änderung und Löschung von Seminarbelegungen
Benutzt C1 + 1 Feld Eingabe (DT10 - Personen ID) + Liste der Teilnehmer
(DT10 – Personen ID, Name) + 1 Feld (Anzeige Summe der Teilnehmer) +
3 Felder (Auswahl Erfassen, Ändern, Löschen)
Ersterfassung, Änderung und Löschung von Seminarveranstaltungen
Benutzt C1 + 11 Felder (DT110) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
Ersterfassung, Änderung und Löschung von Seminartypen
Benutzt C1 + 2 Felder (DT90) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
Ersterfassung, Änderung und Löschung von Dozenten sowie Zuordnung zu Seminarveranstaltungen
und -typen.
Benutzt C1 + FR10 + 2 Felder (DT100) + 2 Felder (Anzeige bereits abgeschlossener Seminare –
Seminar ID, Name) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
Erstellen von Rechnungen und Gutschriften
Benutzt C1 + 4 Felder (Bestätigen von Eingaben, Erstellen von Gutschriften)
+ 1 Eingabefeld Personen ID
Festlegen des Layouts für die Gutschriften - Benutzt C2
Erstellung verschiedener Listen und Bescheinigungen – Teilnehmerliste
Benutzt C1 + 2 Felder (Speichern, Drucken)
Festlegen des Layouts für die Teilnehmerliste - Benutzt C2
8
Differenzierungen: Formulare (2)
FR70B
FR70BX
FR70C
FR70CX
FR80A
FR80B
FR80C
FR90
FR100
FR110
Erstellung verschiedener Listen und Bescheinigungen – Teilnahmebescheinigungen
Benutzt C1 + 1 Feld Personen ID + 2 Felder (Speichern, Drucken)
Festlegen des Layouts für die Teilnahmebescheinigung - Benutzt C2
Erstellung verschiedener Listen und Bescheinigungen – Umsatzliste pro Jahr/Person/Firma
3 Felder (Jahr oder Personen ID oder Firma ID) + 1 Feld (Erzeugen)
Festlegen des Layouts für die Umsatzliste - Benutzt C2
Seminartermine - Benutzt C1
Zahlungsverkehr
Benutzt C1 + 1 Feld (Personen ID) + 2 Felder (Auswahl Zahlungsverzug oder bezahlte Posten)
Wohnortstatistik - 2 Felder (Wohnort, PLZ)
Erstellen von Backups des kompletten Datenbestandes
1 Feld (Dateiauswahl) + 1 Feld (Speicherformat)
Löschungen von Daten wie z. B. veraltete oder stornierte Seminare, Personendaten,
etc.. Löschungen müssen aus Sicherheitsgründen protokolliert und genehmigt werden.
1 Liste (Liste der zu löschenden Daten mit Kontrollfeld zur Bestätigung).
Einrichten und Ändern von Benutzern
4 Felder (DT120) + 2 Felder (Auswahl Einrichten oder Ändern)
9
Ermitteln der Roh-Function-Points
Die Roh-Function-Points werden durch die Bewertung der
Komplexität der Funktionen gewonnen. Jedes Mitglied des Teams
hat dafür die Komplexität eingeschätzt.
10
Bewertung: Daten-Eingaben
Was
Komplexität
Punkte
Begründung, Eingabekomponenten
C1
C2
FR10
FR20
FR30
Einfach
Komplex
Komplex
Mittel-Komplex
Mittel
3
6
6
5
4
FR40A
FR40B
FR50
FR60AB
FR70A
FR70B
FR70C
FR80B
FR80C
FR90
FR100
FR110
Komplex
Einfach
Mittel
Einfach
Sehr Einfach
Sehr Einfach
Einfach
Sehr Einfach
Einfach
Einfach
Mittel-Komplex
Einfach
6
2,5
4
3
2
2
3
2
3
3
5
3,5
Liste mit Einfach-Auswahl
Freies RTF-Textfeld
12 Eingabefelder, 3 Buttons, teils Semantische Prüfungen
9 Eingabefelder, 3 Buttons, teils Semantische Prüfungen
1 Eingabefeld, 3 Buttons, 1 Semant. Prüfung, Liste der
Teilnehmer mit Einfachauswahl
11 Eingabefelder, 3 Buttons, teils Semant. Prüfungen
2 Eingabefelder, 3 Buttons
2 Eingabefelder, 3 Buttons, Zusammen mit FR10
1 Eingabefeld + 4 Buttons
2 Buttons
1 Eingabefeld, 2 Buttons
3 Eingabefelder, 1 Button
1 Eingabefeld, 2 Buttons
2 Eingabefelder, Semantische Prüfung
1 Auswahlfeld, 1 Eingabefeld
Liste mit Mehrfachauswahl und Bestätigungen
4 Eingabefelder, 2 Buttons, eine semant. Prüfung
Summe:
62,5
11
Bewertung: Daten-Ausgaben
Was
Komplexität
Punkte
Begründung, Ausgabekomponenten
C1
FR30
FR40A
FR50
FR60A
FR60B
FR70A
FR70B
FR70C
FR80A
FR80B
FR80C
FR90
FR100
FR110
Einfach
Einfach-Mittel
Sehr Einfach
Einfach
Mittel
Mittel
Mittel
Einfach
Mittel-Komplex
Mittel
Komplex
Einfach-Mittel
Komplex
Einfach
Einfach
3
3,5
2,5
3
5
5
5
4
6
5
7
4,5
7
4
4
Liste mit 2 Attributen
1 Feld (Anzeige Summe der Teilnehmer), Liste Teilnehmer
Liste der Seminartypen
Anzeige bereits abgeschlossener Seminare
Druckaufbereitung der Rechnung
Druckaufbereitung der Gutschrift
Druckaufbereitete Teilnehmerliste
Druckaufbereitete Teilnahmebescheinigung pro Teilnehmer
Druckaufbereitete Umsatzliste mit 3 Gruppenwechseln
Seminarkalender, Seminartermine Liste
Gruppierungen pro Person, Verzüge, Zahlungen etc.
Diagramm der Wohnortverteilung
Komplexes Dateiformat aller Datenbestände
Liste der zu löschenden Daten mit Kontrollfeld
Liste der vorhandenen Benutzer
Summe:
68,5
12
Bewertung: Externe Abfragen
Was
Komplexität
Punkte
Begründung, beteiligte Tabellen
C1
FR10
FR20
FR30
FR40A
Einfach
Einfach
Einfach
Mittel
Komplex
3
3
3
4
6
FR40B
FR50
FR60A
FR60B
FR70A
FR70B
FR70C
Sehr Einfach
Komplex
Mittel
Mittel
Mittel
Mittel
Komplex
2
6
4
4
4
4
6
FR80A
FR80B
FR80C
FR90
FR100
FR110
Einfach
Komplex
Sehr Einfach
Sehr Komplex
Sehr Komplex
Sehr Einfach
3
6
2
8
7
2,5
Liste mit 2 Attributen aus einer Tabelle
Person nach Personen ID suchen
Firma nach Firma ID suchen
Personendaten, Seminardaten
Seminardaten, Personendaten, Personen-Zahlungen (für
Gutschriften)
Alle Seminartypen
Personendaten, Seminardaten, Personen-Zahlungen
Personendaten, Personen-Zahlungen
Personendaten, Personen-Zahlungen
Personendaten, Seminardaten
Personendaten, Seminardaten
Personendaten, Seminardaten, Personen-Zahlungen,
Firmendaten
Seminardaten
Personendaten, Personen-Zahlungen, Seminardaten
Personendaten nach Wohnort
Alle Spalten und Tabellen
Alle mögl. Spalten, Kontrollfreigaben
Vorhandene Benutzer
Summe:
77,5
13
Bewertung: Interne Dateien / Daten
Was
Komplexität
Punkte
Begründung, Zusammensetzung
BK10
DT10
DT20
DT30
DT50
DT60
DT70
DT80
DT90
DT100
DT110
DT120
Komplex
Mittel
Einfach-Mittel
Einfach-Mittel
Mittel-Komplex
Einfach
Einfach-Mittel
Einfach
Einfach
Einfach-Mittel
Mittel-Komplex
Einfach
15
10
8,5
9
12
7
8,5
7
7
8,5
12
7
Alle Spalten und Tabellen
1 PK, 1 FK (Orte/PLZ), 12 Spalten
2 PFK, 3 Spalten
2 PFK, 5 Spalten
1 PK, 3FK, 9 Spalten
1 PK, 2 Spalten
2 PFK, 3 Spalten
1 FPK, 2 Spalten
1 FPK, 2 Spalten
2 FPK, 3 Spalten
1 PK, 2 FK, 11 Spalten
1 PFK, 4 Spalten
Summe:
111,5
14
Bewertung: Externe Schnittstellen
Was
Komplexität
Punkte
Begründung
S2
S3
Komplex
Komplex
10
10
Verschiedene Spaltenbreiten & Abfragetypen
Verschiedene Kommunikationstypen
Summe:
20
15
Roh-Function-Points
Summe der Roh-Function-Points:
62,5 + 68,5 + 77,5 + 111,5 + 20 = 340 RFP
16
Bewertung der System-Infrastruktur
Faktor
Punkte
Begründung
COMmunication
DIStributed
RESponse
STRess
TRAnsactions
ONLine
EFFicience
UPDatability
KMPlexity
REUsability
PORtybility
USAbility
MANdant
MAIntainability
5
3
3
4
5
5
4
4
3
4
2
5
1
4
Kommunikationen über Netzwerk, TCP/IP
Verarbeitungsfunktionen haupts. beim Server, Formularlogik bei Clients
Wegen Usability schnelle Antwortzeiten
Anwendung soll Stabil sein
Mehrere Bearbeiter können zugleich Arbeiten
Alle Ein-/Ausgaben und Bewertungen geschehen online
Endbenutzer steht im Vordergrund
Echtzeit Update der Datenbestände
Nicht sehr komplex Anwendungslogik
Produkt soll später weiterentwickelt werden
Produktplattform ist festgelegt auf WIN32 und Oracle
Endbenutzer steht im Vordergrund
Anpassbarkeit ist so nicht wichtig
Produkt soll später weiterentwickelt werden
Summe:
52 SI
17
Function Points
Berechnungen der Function Points aus
den Roh-Function-Points
FP
= RFP * (0,65 + (0,01 * SI))
= 340 * (0,65 + (0,01 * 52))
= 397,8 Function Points
Umrechnung in LOC für Java (29 LOC/FP):
397,8 * 29 = 11536,2 LOC
18
Aufwand in PM
Ermitteln der Personenmonate anhand
des Diagramms
300
250
PM
200
150
100
27
50
0
0
397
1000
2000
3000
FP
397 Function-Points ergeben nach dem Diagramm
etwa 27 Personenmonate.
19
Cocomo Analysemodell
Zuerst wird ein Analysemodell ausgewählt, je nach dem, wie genau die
Schätzung sein soll. Es gibt:
Basic Cocomo
- Die Kostenfaktoren sind phasenunabhängig (grob)
- Schnelle und frühe aber grobe Abschätzung der Softwarekosten
- Ungenau, da Faktoren wie Unterschiede in der Hardware, Qualität des Personals und dessen
Erfahrung, die Verwendung moderner Hilfsmittel und andere Projektattribute mit bekanntem
Einfluss keine Berücksichtigung finden
- Keine Berücksichtigung von besonderen Kostenfaktoren
Intermediate Cocomo
- Die Kostenfaktoren sind phasenunabhängig (grob)
- Faktoren wie Unterschiede in der Hardware, Qualität des Personals und dessen Erfahrung, die Verwendung
moderner Hilfsmittel und andere Projektattribute mit bekanntem Einfluss werden berücksichtigt
- Die Berechnung bewertet jeden Kostenfaktor
- Die Berechnung seperater Module möglich
Detailed Cocomo
- Kostenfaktoren Phasenabhängig separat (fein)
- Beurteilt die Faktoren abhängig von den Projektphasen, für die sie von Bedeutung sind.
- Verschiedene Gewichtungsfaktoren je Phase:
- Analyse (Requirements (RQ))
- Entwurf (Product Design (PD))
- Feinentwurf (Detailed Design (DD))
- Implementierung und Modultest (Code & Unit Test (CT))
- Integration und Test (Integrate & Test (IT))
- Wartung (Maintenance (MN))
- Geeignet um verschiedene Entwicklungsstrategien zu vergleichen
20
CoCoMo Projektmodus
Wahl eines Projektmodus abhängig von
der Größe des Projekts
Organic Mode
- Kleines Projekt (kleiner als 50 000 DSI)
- Stabile Entwicklungsumgebung
- Jeder Mitarbeiter kennt das gesamte Projekt
- Keine große Innovation
Semidetached Mode
- Mittelgroßes Projekt (zwischen 50 000 und 300 000 DSI)
- Jeder Mitarbeiter besitzt Spezialwissen bezüglich der Entwicklung.
- Spezialwissen ist verteilt
Embedded Mode
- Großes Projekt (über 300 000 DSI)
- Starke Arbeitsaufteilung
- Straffe und unflexible Strukturen
- Änderungen der Software nur über Änderung der Spezifikation
- Unbekanntes Terrain
21
CoCoMo Projektmodus Konstanten
Die Auswahl des Analysemodells Intermediate Cocomo und die
Einschätzung des Projekts als Semidetached ergibt folgende
Konstanten a, b, c:
a = 3.0
b = 1.12
c = 0.35
22
CoCoMo Cost Driver Bewertung
Cost Driver
Khoa
Imdat
Georg
Stefan
Serhat
Besir
Ø
Reliability
1.40
1.15
1.00
1.15
0.88
1.40
1.16
Database Size
1.16
1.08
1.08
1.08
0.94
1.16
1.08
Product Complexity
1.00
1.00
1.00
1.00
1.00
1.00
1.00
Execution Time Constraints
1.66
1.00
1.00
1.00
1.00
1.66
1.22
Main Storage Constraints
1.00
1.00
1.00
1.06
1.00
1.00
1.01
Virtual Machine Volatility
1.00
1.00
0.87
0.87
1.00
0.87
0.94
Turn Around Time
1.15
1.15
1.07
1.00
0.84
1.15
1.06
Analyst Capability
0.71
1.00
1.19
1.00
1.00
0.71
0.94
Application Experience
1.13
1.00
1.13
1.00
0.91
1.00
1.03
Programmer Capability
0.70
0.86
1.00
1.00
1.02
1.00
0.93
Virtual Machine Experience
0.90
1.00
0.90
0.90
0.90
1.00
0.93
Language Experience
1.00
0.95
1.00
0.95
0.95
1.00
0.96
Modern Programming Practices
1.00
0.91
0.91
1.00
0.91
1.00
0.98
Use of Software Tools
1.00
0.91
0.91
1.00
1.00
1.00
0.96
Requ. Development Schedule
1.00
1.08
1.00
1.00
1.04
1.04
1.03
23
CoCoMo Endergebnis
Produktsumme der Costdriver
1.16 * 1.08 * 1.00 * 1.22 * 1.01 * 0.94 * 1.06 * 0.94 *
1.03 * 0.93 * 0.93 * 0.96 * 0.98 * 0.96 * 1.03
= 1,198
Formel für Aufwand in Personenmonaten
PM = Produktsumme der Costdriver * a * KLOC^b
= 1,198 * 3,0 * 11,5362^1,12
= 55,6 PM
24
Vergleich
Function Point Analyse:
27 PM
CoCoMo Analyse:
55,6 PM
CoCoMo berücksichtigt unsere persönliche Leistungskurve nicht,
jedoch die Costdrivers und damit die Projektrahmenbedingungen (z.B.
unerfahrenes Team).
25