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