Upload
almerich-geisen
View
107
Download
0
Embed Size (px)
Citation preview
Blatt 2 Aufgabe 3Function Point Analyse
undCocomo 81
Gruppe AIA1
Besir ÖztürkGeorg ArnaoutisImdat Salman ProtokollantKhoa DoSerhat Cinar Projektleiter Stefan LinkeRepräsentant
Fachhochschule Köln Campus Gummersbach Projektmanagement SS2003 Prof.Dr. Winter
2
InhaltAufgabenstellungDifferenzierungen – 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
3
Aufgabenstellung
Aufwandschätzung des Projekts SeminarIS
Faktoren der Function-Point-Analyse
Durchführung der Function-Point-Analyse
Überprüfung der Schätzung mit Cocomo81
4
Differenzierungen
Um die im Lastenheft genannten Funktionen besser bewerten zu können, muss eine Differenzierung durchgeführt werden.
5
Differenzierungen: FunktionenF40 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
6
Differenzierungen: Komponenten, Schnittstellen & Dateien
Wiederverwertbare Komponenten
C1 Liste zur Auswahl von Seminaren für F10, F20, F302 Felder (DT110 –Seminar ID, Name)
C2 Komponente für RTF-TextFrei editierbares RTF-Feld
Schnittstellen
S2
S3 Fakturierung Buchhaltung, TCP / IP
DateienBK10
Datenbank JDBC
Backup aller Daten
7
Differenzierungen: Datenbanktabellen
DT10 Personendaten(PK) Personen ID, Vorname, Nachname, Strasse, PLZ, Ort, Postfach, Kontonummer, BLZ, Telefonnummer, Mobilnummer, Email
DT20 Personen-Seminare (PFK) Personen ID, (PFK) Seminar ID, besucht oder gehalten
DT30 Personen-Zahlungen (Zahlungsposten) (PFK) Personen ID, (PFK) Seminar ID, Betrag, Datum, ausgezahlt / eingezahlt / Gutschrift
DT50 Firmendaten (PK) Firmen ID, Firmenname, Strasse, PLZ, Ort, Postfach, Telefonnummer, Email, (FK) Branchen ID
DT60 Branchen (PK) Branchen ID, Bezeichnung
DT70 Firmen-Personen(PFK) Firmen ID, (PFK) Personen ID, Stellung
DT80 Dozentendaten (PFK) Personen ID, Stundenlohn
DT90 Fachgebiete (PK) Fach ID, Bezeichnung
DT100 Dozenten-Fachgebiete (PFK) Personen ID, (PFK) Fach ID
DT110 Seminardaten (PK) Seminar ID, Name, (FK) Fachgebiet, Begin, Ende, Preis pro Teilnehmer, Strasse, PLZ, Ort, Raum, Teilnehmerkapazität
DT120 Benutzerdaten (PK) Username, Passwort, Letzter Login, Abteilung
LegendePK: PrimärschlüsselFK: FremdschlüsselPFK: Fremdschlüssel als Primärschlüssel (identifizierende Beziehung)
8
Differenzierungen: Formulare (1)
FR10 F10: Eingabe, Änderung & Löschung von Personendaten12 Felder (DT10) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
FR20 F20: Ersterfassung, Änderung und Löschung von Firmen9 Felder (DT50) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
FR30 F30: Ersterfassung, Änderung und Löschung von SeminarbelegungenBenutzt 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)
FR40A Ersterfassung, Änderung und Löschung von SeminarveranstaltungenBenutzt C1 + 11 Felder (DT110) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
FR40B Ersterfassung, Änderung und Löschung von SeminartypenBenutzt C1 + 2 Felder (DT90) + 3 Felder (Auswahl Erfassen, Ändern, Löschen)
FR50 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)
FR60AB Erstellen von Rechnungen und GutschriftenBenutzt C1 + 4 Felder (Bestätigen von Eingaben, Erstellen von Gutschriften)+ 1 Eingabefeld Personen ID
FR60X Festlegen des Layouts für die Gutschriften - Benutzt C2 FR70A Erstellung verschiedener Listen und Bescheinigungen – Teilnehmerliste
Benutzt C1 + 2 Felder (Speichern, Drucken) FR70AX Festlegen des Layouts für die Teilnehmerliste - Benutzt C2
9
Differenzierungen: Formulare (2)
FR70B Erstellung verschiedener Listen und Bescheinigungen – TeilnahmebescheinigungenBenutzt C1 + 1 Feld Personen ID + 2 Felder (Speichern, Drucken)
FR70BX Festlegen des Layouts für die Teilnahmebescheinigung - Benutzt C2 FR70C Erstellung verschiedener Listen und Bescheinigungen – Umsatzliste pro Jahr/Person/Firma
3 Felder (Jahr oder Personen ID oder Firma ID) + 1 Feld (Erzeugen) FR70CX Festlegen des Layouts für die Umsatzliste - Benutzt C2 FR80A Seminartermine - Benutzt C1 FR80B Zahlungsverkehr
Benutzt C1 + 1 Feld (Personen ID) + 2 Felder (Auswahl Zahlungsverzug oder bezahlte Posten) FR80C Wohnortstatistik - 2 Felder (Wohnort, PLZ) FR90 Erstellen von Backups des kompletten Datenbestandes
1 Feld (Dateiauswahl) + 1 Feld (Speicherformat) FR100 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).
FR110 Einrichten und Ändern von Benutzern4 Felder (DT120) + 2 Felder (Auswahl Einrichten oder Ändern)
10
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.
11
Bewertung: Daten-Eingaben
Was Komplexität Punkte Begründung, Eingabekomponenten
C1 Einfach 3 Liste mit Einfach-AuswahlC2 Komplex 6 Freies RTF-TextfeldFR10 Komplex 6 12 Eingabefelder, 3 Buttons, teils Semantische Prüfungen FR20 Mittel-Komplex 5 9 Eingabefelder, 3 Buttons, teils Semantische Prüfungen FR30 Mittel 4 1 Eingabefeld, 3 Buttons, 1 Semant. Prüfung, Liste der
Teilnehmer mit Einfachauswahl FR40A Komplex 6 11 Eingabefelder, 3 Buttons, teils Semant. Prüfungen FR40B Einfach 2,5 2 Eingabefelder, 3 Buttons FR50 Mittel 4 2 Eingabefelder, 3 Buttons, Zusammen mit FR10 FR60AB Einfach 3 1 Eingabefeld + 4 Buttons FR70A Sehr Einfach 2 2 Buttons FR70B Sehr Einfach 2 1 Eingabefeld, 2 ButtonsFR70C Einfach 3 3 Eingabefelder, 1 Button FR80B Sehr Einfach 2 1 Eingabefeld, 2 Buttons FR80C Einfach 3 2 Eingabefelder, Semantische Prüfung FR90 Einfach 3 1 Auswahlfeld, 1 Eingabefeld FR100 Mittel-Komplex 5 Liste mit Mehrfachauswahl und Bestätigungen FR110 Einfach 3,5 4 Eingabefelder, 2 Buttons, eine semant. Prüfung
Summe: 62,5
12
Bewertung: Daten-Ausgaben
Was Komplexität Punkte Begründung, Ausgabekomponenten
C1 Einfach 3 Liste mit 2 Attributen FR30 Einfach-Mittel 3,5 1 Feld (Anzeige Summe der Teilnehmer), Liste Teilnehmer FR40A Sehr Einfach 2,5 Liste der Seminartypen FR50 Einfach 3 Anzeige bereits abgeschlossener Seminare FR60A Mittel 5 Druckaufbereitung der RechnungFR60B Mittel 5 Druckaufbereitung der Gutschrift FR70A Mittel 5 Druckaufbereitete Teilnehmerliste FR70B Einfach 4 Druckaufbereitete Teilnahmebescheinigung pro Teilnehmer FR70C Mittel-Komplex 6 Druckaufbereitete Umsatzliste mit 3 Gruppenwechseln FR80A Mittel 5 Seminarkalender, Seminartermine ListeFR80B Komplex 7 Gruppierungen pro Person, Verzüge, Zahlungen etc. FR80C Einfach-Mittel 4,5 Diagramm der Wohnortverteilung FR90 Komplex 7 Komplexes Dateiformat aller Datenbestände FR100 Einfach 4 Liste der zu löschenden Daten mit Kontrollfeld FR110 Einfach 4 Liste der vorhandenen Benutzer
Summe: 68,5
13
Bewertung: Externe Abfragen
Was Komplexität Punkte Begründung, beteiligte Tabellen
C1 Einfach 3 Liste mit 2 Attributen aus einer TabelleFR10 Einfach 3 Person nach Personen ID suchen FR20 Einfach 3 Firma nach Firma ID suchen FR30 Mittel 4 Personendaten, Seminardaten FR40A Komplex 6 Seminardaten, Personendaten, Personen-Zahlungen (für
Gutschriften)FR40B Sehr Einfach 2 Alle SeminartypenFR50 Komplex 6 Personendaten, Seminardaten, Personen-Zahlungen FR60A Mittel 4 Personendaten, Personen-Zahlungen FR60B Mittel 4 Personendaten, Personen-Zahlungen FR70A Mittel 4 Personendaten, Seminardaten FR70B Mittel 4 Personendaten, Seminardaten FR70C Komplex 6 Personendaten, Seminardaten, Personen-Zahlungen,
FirmendatenFR80A Einfach 3 Seminardaten FR80B Komplex 6 Personendaten, Personen-Zahlungen, Seminardaten FR80C Sehr Einfach 2 Personendaten nach WohnortFR90 Sehr Komplex 8 Alle Spalten und Tabellen FR100 Sehr Komplex 7 Alle mögl. Spalten, KontrollfreigabenFR110 Sehr Einfach 2,5 Vorhandene Benutzer
Summe: 77,5
14
Bewertung: Interne Dateien / Daten
Was Komplexität Punkte Begründung, Zusammensetzung
BK10 Komplex 15 Alle Spalten und Tabellen DT10 Mittel 10 1 PK, 1 FK (Orte/PLZ), 12 Spalten DT20 Einfach-Mittel 8,5 2 PFK, 3 SpaltenDT30 Einfach-Mittel 9 2 PFK, 5 Spalten DT50 Mittel-Komplex 12 1 PK, 3FK, 9 Spalten DT60 Einfach 7 1 PK, 2 Spalten DT70 Einfach-Mittel 8,5 2 PFK, 3 Spalten DT80 Einfach 7 1 FPK, 2 Spalten DT90 Einfach 7 1 FPK, 2 Spalten DT100 Einfach-Mittel 8,5 2 FPK, 3 Spalten DT110 Mittel-Komplex 12 1 PK, 2 FK, 11 SpaltenDT120 Einfach 7 1 PFK, 4 Spalten
Summe: 111,5
15
Bewertung: Externe Schnittstellen
Was Komplexität Punkte Begründung
S2 Komplex 10 Verschiedene Spaltenbreiten & AbfragetypenS3 Komplex 10 Verschiedene Kommunikationstypen
Summe: 20
16
Roh-Function-Points
Summe der Roh-Function-Points:
62,5 + 68,5 + 77,5 + 111,5 + 20 = 340 RFP
17
Bewertung der System-Infrastruktur
Faktor Punkte Begründung
COMmunication 5 Kommunikationen über Netzwerk, TCP/IP DIStributed 3 Verarbeitungsfunktionen haupts. beim Server, Formularlogik bei Clients RESponse 3 Wegen Usability schnelle Antwortzeiten STRess 4 Anwendung soll Stabil sein TRAnsactions 5 Mehrere Bearbeiter können zugleich ArbeitenONLine 5 Alle Ein-/Ausgaben und Bewertungen geschehen onlineEFFicience 4 Endbenutzer steht im VordergrundUPDatability 4 Echtzeit Update der DatenbeständeKMPlexity 3 Nicht sehr komplex AnwendungslogikREUsability 4 Produkt soll später weiterentwickelt werdenPORtybility 2 Produktplattform ist festgelegt auf WIN32 und Oracle USAbility 5 Endbenutzer steht im Vordergrund MANdant 1 Anpassbarkeit ist so nicht wichtigMAIntainability 4 Produkt soll später weiterentwickelt werden
Summe: 52 SI
18
Function PointsBerechnungen 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
19
Aufwand in PM
Ermitteln der Personenmonate anhanddes Diagramms
0
50
100
150
200
250
300
0 1000 2000 3000
FP
PM
397 Function-Points ergeben nach dem Diagramm etwa 27 Personenmonate.
397
27
20
Cocomo AnalysemodellZuerst wird ein Analysemodell ausgewählt, je nach dem, wie genau dieSchä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 M odule 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
21
CoCoMo ProjektmodusWahl 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
22
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
23
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
24
CoCoMo Endergebnis
Produktsumme der Costdriver1.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 PersonenmonatenPM = Produktsumme der Costdriver * a *
KLOC^b = 1,198 * 3,0 * 11,5362^1,12 = 55,6 PM
25
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).