LE 2 1 Software-Technik 1 Die Planungsphase Lastenheft und Schätzmethoden Prof. Dr. Helmut Balzert Lehrstuhl für Software-Technik Ruhr-Universität Bochum © Helmut Balzert 1998 LE 2 2 E ni füh rung und Ü be rb lci k LE 1 V U n te rnehm en sm ode llei rung 1 G rund al gen 2 O b ej k to rei n tei r te U n te rnehm en sm ode llei rung LE 24 LE 25 2 LE IIISW Q - ua litä ts s ci he rung ISW -E n w t ci k ul ng IISW M - anagem en t 1 G rund al gen 1 D ei P al nung spha se 1 G rund al gen LE 2 – 3 LE 1 2 P al nung 2 Q ua litä ts s ci he rung 2 D ei D e fni itoi n spha se LE 2 3 O rgan si a toi n LE 4 – 22 LE 10 LE 23 – 31 3 M anue lel P rüm f e thoden LE 11 3 D ei E n w t u r fspha se LE 3 – 4 4 P e rsona l 4 D ei m I p elm en tei rung spha se LE 5 5 Le itung 6 K on tro lel LE 12 – 13 LE 33 5 P rodu k tqua litä t – K om ponen ten LE 14 – 17 6 D ei W a r tung s -& P fel gepha se LE 8 4 P ro zeß qua litä t LE 32 5 D ei A bnahm e - und E ni füh rung spha se LE 6 – 7 LE 9 LE 33 8 LE 6 P rodu k tqua litä t – S ys tem e LE 18 – 19 32 LE 11 LE V I Q ue rschn itte und A u sb lci ke 1 P rni z pi ei n & M e thoden LE 20 2 LE 21 3 W ei de rve w r e n d un g LE 22 4 S an ei rung LE 23 4 LE LE 2 3 Lernziele Für vorgegebene Aufgabenstellungen ein Lastenheft entsprechend dem beschriebenen Lastenheft-Schema erstellen können Die aufgeführten »Faustregeln« wiedergeben und auf Beispiele anwenden können. LE 2 4 Inhalt 1.1 Einführung und Überblick 1.2 Beispiel: Aufbau eines Lastenheftes 1.3 Einflußfaktoren der Aufwandsschätzung 1.4 Basismethoden der Aufwandsschätzung. LE 2 5 1.1 Einführung und Überblick Planen des Produktes: Auswählen des Produktes Trendstudien Marktanalysen Forschungsergebnisse Kundenanfragen Vorentwicklungen. LE 2 6 1.1 Einführung und Überblick Voruntersuchung des Produkts u.U. gezielte Ist-Aufnahme, wenn bereits Vorgängerprodukt vorhanden; anschl. Ist-Analyse Festlegen der Hauptanforderungen Festlegen der Hauptfunktionen Festlegen der Hauptdaten Festlegen der Hauptleistungen Festlegen der wichtigsten Aspekte der Benutzungsschnittstelle Festlegen der wichtigsten Qualitätsmerkmale. LE 2 7 1.1 Einführung und Überblick Durchführbarkeitsuntersuchung Prüfen der fachlichen Durchführbarkeit softwaretechnische Realisierbarkeit Verfügbarkeit Entwicklungs- und Zielmaschinen Prüfen alternativer Lösungsvorschläge Beispiel: Kauf und Anpassung von Standardsoftware vs. Individualentwicklung Prüfen der personellen Durchführbarkeit Verfügbarkeit qualifizierter Fachkräfte für die Entwicklung Prüfen der Risiken Prüfen der ökonomischen Durchführbarkeit Aufwands- und Terminschätzung Wirtschaftlichkeitsrechnung. LE 2 8 1.1 Einführung und Überblick Ergebnisse dieser Tätigkeiten: Durchführbarkeitsstudie (feasibility study) Lastenheft (grobes Pflichtenheft) Projektkalkulation Projektplan. LE 2 9 1.2 Beispiel: Aufbau eines Lastenheftes Aufgabe Adressaten Inhalt Form Sprache Didaktik Zeitpunkt Umfang. LE 2 10 1.2 Beispiel: Aufbau eines Lastenheftes Gliederungsschema Zielbestimmung Produkteinsatz Produktfunktionen Produktdaten Produktleistungen Qualitätsanforderungen Ergänzungen. LE 2 11 1.2 Beispiel: Seminarorganisation Version 2.1 2.2 Autor Balzert Balzert QS Datum 3/91 10/91 Status akzeptiert akzeptiert Kommentar /F115/ 1 Zielbestimmung Die Firma Teachware soll durch das Produkt in die Lage versetzt werden, die von ihr veranstalteten Seminare rechnerunterstützt zu verwalten 2 Produkteinsatz Das Produkt dient zur Kunden- und Seminarverwaltung der Firma Teachware. Außerdem sollen verschiedene Anfragen beantwortet werden können Zielgruppe: die Mitarbeiter der Firma Teachware. LE 2 12 1.2 Beispiel: Seminarorganisation 3 Produktfunktionen /LF10/ Ersterfassung, Änderung und Löschung von Kunden (Teilnehmer, Interessenten) /LF20/ Benachrichtigung der Kunden (Anmeldebestätigung, Abmeldebestätigung, Änderungsmitteilungen, Rechnung, Werbung) /LF30/ Ersterfassung, Änderung und Löschung von Seminarveranstaltungen und Seminartypen /LF40/ Ersterfassung, Änderung und Löschung von Dozenten sowie Zuordnung zu Seminarveranstaltungen und Seminartypen. LE 2 13 1.2 Beispiel: Seminarorganisation /LF50/ Ersterfassung, Änderung und Löschung von Seminarbuchungen /LF60/ Erstellung von Rechnungen /LF70/ Erstellung verschiedener Listen (Teilnehmerliste, Umsatzliste, Teilnehmerbescheinigungen) /LF80/ Anfragen der folgenden Art sollen möglich sein: Wann findet das nächste Seminar X statt? Welche Mitarbeiter der Firma Y haben das Seminar X besucht? LE 2 14 1.2 Beispiel: Seminarorganisation 4 Produktdaten /LD10/ Es sind relevante Daten über die Kunden zu speichern /LD20/ Falls ein Kunde zu einer Firma gehört, dann sind relevante Daten über die Firma zu speichern /LD30/ Es sind relevante Daten über Seminarveranstaltungen, Seminartypen und Dozenten zu speichern /LD40/ Bucht ein Kunde eine Seminarveranstaltung, dann sind entsprechende Buchungsdaten zu speichern. LE 2 15 1.2 Beispiel: Seminarorganisation 5 Produktleistungen /LL10/ Die Funktion /LF80/ darf nicht länger als 15 Sekunden Interaktionszeit benötigen, alle anderen Reaktionszeiten müssen unter 2 Sekunden liegen /LL20/ Es müssen maximal 50.000 Teilnehmer und maximal 10.000 Seminare verwaltet werden können. LE 2 16 1.2 Beispiel: Seminarorganisation 6 Qualitätsanforderungen Produktqualität Funktionalität Zuverlässigkeit Benutzbarkeit Effizienz Änderbarkeit Übertragbarkeit sehr gut gut normal x x x x x x. nicht relevant LE 2 17 1.3 Einflußfaktoren der Aufwandsschätzung Wirtschaftlichkeit eines Produktes: Gewinn (Verlust) = Deckungsbeitrag * geschätzte Menge – einmalige Entwicklungskosten mit: Deckungsbeitrag = Preis – laufende variable Kosten. LE 2 18 1.3 Aufwandsschätzung Sicht des Software-Herstellers bzw. des Auftragnehmers Kosten eines Software-Systems: Entwicklungskosten Hauptanteil der Entwicklungskosten: Personalkosten Anteilige Umlegung der CASE-Umgebungskosten (einschl. Hardware und Systemsoftware) für die Produktentwicklung Kosten für andere Dienstleistungen, Büromaterial, Druckkosten, Dokumentation, Reisekosten usw. sind im Verhältnis zu den Personalkosten bedeutungslos. LE 2 19 1.3 Einflußfaktoren der Aufwandsschätzung Methoden zur Kosten- und Terminschätzung Die meisten Modelle basieren auf dem geschätzten Umfang des zu erstellenden Software-Produktes in »Anzahl der Programmzeilen« bzw. in Lines of Code (LOC) Bei höheren Sprachen werden z.B. alle Vereinbarungs- und Anweisungszeilen geschätzt Der geschätzte Umfang wird durch einen Erfahrungswert für die Programmierproduktivität (in LOC) eines Mitarbeiters pro Jahr oder Monat geteilt Ergebnis: geschätzter Aufwand in MJ oder MM 1 MJ = 9 MM oder 10 MM. LE 2 20 1.3 Einflußfaktoren der Aufwandsschätzung Der so ermittelte Aufwand wird durch die nach der Terminvorgabe zur Verfügung stehende Entwicklungszeit geteilt Ergebnis: Die Zahl der für die Entwicklung einzusetzenden, parallel arbeitenden Mitarbeiter Faustregeln Eine durchschnittliche Software-Entwicklung liefert ungefähr 350 Quellcodezeilen (ohne Kommentare) pro Ingenieurmonat Dabei umfaßt die Ingenieurzeit alle Phasen von der Definition bis zur Implementierung. LE 2 21 1.3 Einflußfaktoren der Aufwandsschätzung Beispiel Es soll ein Software-Produkt mit geschätzten 21.000 LOC realisiert werden Durchschnittliche Produktivität pro Mitarbeiter 3.500 LOC/Jahr 6 Mitarbeiterjahre werden benötigt Arbeiten 3 Mitarbeiter im Team zusammen, dann werden 2 Jahre bis zur Fertigstellung benötigt. LE 2 22 1.3 Einflußfaktoren der Aufwandsschätzung Einflußfaktoren Quantität Qualität Entwicklungsdauer Kosten. LE 2 23 Das »Teufelsquadrat« Q ua litä t Q uan t itä t + + 1 P rodu k tvi iä t t a d – – + + b c 2 – Enw t ci k ul ng sdaue r – K o s ten LE 2 24 1.3 Einflußfaktoren der Aufwandsschätzung Quantität Größe Maß »Anzahl Programmzeilen« (LOC) lineare oder überproportionale Beziehung zwischen LOC und dem Aufwand Umfang Problem, den Funktions- und Datenumfang exakt zu definieren Maß unabhängig von einer Programmiersprache Komplexität qualitative Maße »leicht«, »mittel« und »schwer« Abbildung auf Zahlenreihe Beispiel: Noten zwischen 1 und 6. LE 2 25 1.3 Einflußfaktoren der Aufwandsschätzung Qualität Je höher die Qualitätsanforderungen, desto größer ist der Aufwand Es gibt nicht die Qualität, sondern es gibt verschiedene Qualitätsmerkmale Jedem Qualitätsmerkmal lassen sich Kennzahlen zuordnen. LE 2 26 1.3 Einflußfaktoren der Aufwandsschätzung Entwicklungsdauer Soll die Zeit verkürzt werden, dann werden mehr Mitarbeiter benötigt Mehr Mitarbeiter erhöhen den Kommunikationsaufwand innerhalb des Entwicklungsteams Der höhere Kommunikationsanteil reduziert die Produktivität Kann die Entwicklungsdauer verlängert werden, dann werden weniger Mitarbeiter benötigt Der Kommunikationsanteil sinkt Die Produktivität jedes Mitarbeiters steigt. LE 2 27 1.3 Einflußfaktoren der Aufwandsschätzung Berechnung der optimalen Entwicklungsdauer, wenn der Aufwand in MM bekannt ist: Optimale Entwicklungsdauer = 2,5 * (Aufwand in MM)s [Monate] mit s = 0,38 für Stapel-Systeme s = 0,35 für Online-Systeme s = 0,32 für Echtzeit-Systeme. LE 2 28 1.3 Einflußfaktoren der Aufwandsschätzung Beispiel Schätzung, daß der Entwicklungsaufwand für ein neues Online-System 9 MM beträgt Als optimale Entwicklungsdauer ergibt sich: Dauer = 2,5 * 90,35 [Monate] = 5,3 Monate Die durchschnittliche Größe des Teams beträgt: Anzahl Mitarbeiter = 9 MM / 5,3 Monate = 1,7. LE 2 29 1.3 Einflußfaktoren der Aufwandsschätzung Produktivität Wird von vielen verschiedenen Faktoren beeinflußt Die Lernfähigkeit und Motivation der Mitarbeiter ist entscheidend. LE 2 30 Schätzmethode SDC IBM-Handbuch SURBOCK ARON T.O.P Shell Wolverton SLIM FUTH Software-Part EGW Boeing IFA-PASS DOTY GRIFFIN Schneider INVAS ZKP COCOMO Function Point Jahr 67 68 78 69 71 72 74 74 75 76 77 77 77 77 77 78 80 80 81 81 Methode Ps G, P G, P M, P A, G G, P, Gs D M PS G, P A G G, PS, M A, P G, PS G, P Ps R, G G, P G, Ps A, G Einsatz P D P, D P P, D, E 1, 4 P P, D, E D P P, E P, E P P P P I D P I Faktoren 1 1, 4 1, 2, 4 1, 2, 3, 4 1, 2, 3 1 1, 4 1, 4 1, 2, 4 1, 4 1, 4 1, 2, 4 1, 2, 4 1, 4 1 1, 2, 3, 4 1, 4 1, 2, 3, 4 1, 2, 3, 4 LE 2 31 1.4 Basismethoden der Aufwandsschätzung Analogiemethode Vergleich der zu schätzenden Entwicklung mit bereits abgeschlossenen ProduktEntwicklungen anhand von Ähnlichkeitskriterien Kriterien gleiches oder ähnliches Anwendungsgebiet gleicher oder ähnlicher Produktumfang gleicher oder ähnlicher Komplexitätsgrad gleiche Programmiersprache usw. LE 2 32 1.4 Basismethoden der Aufwandsschätzung Beispiel: Analogiemethode Pascal-Compiler: 20 MM Modula-2-Compiler? 20% neue Konstrukte 50% des Codes wiederverwendbar 50% müssen überarbeitet werden Schätzung 50% leicht modifiziert: 1/4 von 10 MM = 2,5 MM 50% völlige Überarbeitung: 10 MM 20% zusätzliche Neuentwicklung hoher Komplexität: 4 MM * 1,5 (Komplexitätszuschlag) = 6 MM Schätzung Modula-2: 18,5 MM. LE 2 33 1.4 Basismethoden der Aufwandsschätzung Nachteile: Analogiemethode – intuitive, globale Schätzung aufgrund – – individueller Erfahrungen fehlende allgemeine Vorgehensweise fehlende Nachvollziehbarkeit einer Schätzung. LE 2 34 1.4 Basismethoden der Aufwandsschätzung Relationsmethode Das zu schätzende Produkt wird direkt mit ähnlichen Entwicklungen verglichen Aufwandsanpassung erfolgt im Rahmen einer formalisierten Vorgehensweise Für die Aufwandsanpassung stehen Faktorenlisten und Richtlinien zur Verfügung. LE 2 35 1.4 Basismethoden der Aufwandsschätzung Beispiel: Relationsmethode Faktoren: Programmiersprache Programmiererfahrung PL/1 = 100 5 Jahre = 80 COBOL = 120 3 Jahre = 100 ASSEMBLER = 140 1 Jahr = 140 Dateiorganisation sequentiell = 80 indexsequentiell = 120 Werte geben an, in welcher Richtung und wie stark die einzelnen Faktoren den Aufwand beeinflussen. LE 2 36 1.4 Basismethoden der Aufwandsschätzung Beispiel: Relationsmethode Ein neues Produkt soll in PL/1 realisiert werden Das Entwicklungsteam hat im Durchschnitt 3 Jahre Programmiererfahrung Es ist eine indexsequentielle Dateiorganisation zu verwenden. LE 2 37 1.4 Basismethoden der Aufwandsschätzung Zum Vergleich: Entwicklung... die im Assembler programmiert wurde eine sequentielle Dateiorganisation verwendete von einem Team mit 5 Jahren Programmiererfahrung erstellt wurde Geht man davon aus, daß alle 3 Faktoren den Aufwand gleichgewichtig beeinflussen, dann ergibt sich folgende Kalkulation: Assembler zu PL/1: 140 zu 100 = 40 Punkte Einsparung 5 Jahre zu 3 Jahre: 80 zu 100 = 20 Punkte Mehraufwand sequentiell zu indexsequentiell: 80 zu 120 = 40 Punkte Mehraufwand Es ergibt sich ein Mehraufwand von 20 Punkten. LE 2 38 1.4 Basismethoden der Aufwandsschätzung Multiplikatormethode Das zu entwickelnde System wird soweit in Teilprodukte zerlegt, bis jedem Teilprodukt ein bereits feststehender Aufwand zugeordnet werden kann (z.B. in LOC) Der Aufwand pro Teilprodukt wird meist durch Analyse vorhandener Produkte ermittelt Oft werden auch die Teilprodukte bestimmten Kategorien zugeordnet wie Steuerprogramme E/A-Programme Datenverwaltungsroutinen Algorithmen usw. LE 2 39 1.4 Basismethoden der Aufwandsschätzung Die Anzahl der Teilprodukte, die einer Kategorie zugeordnet sind, wird mit dem Aufwand dieser Kategorie multipliziert Die erhaltenen Werte für eine Kategorie werden dann addiert, um den Gesamtaufwand zu erhalten Auch »Aufwand-pro-Einheit-Methode« genannt. LE 2 40 1.4 Basismethoden der Aufwandsschätzung Beispiel: Multiplikatormethode Die Aufteilung eines zu schätzenden Produkts in Teilprodukte hat folgendes ergeben: Kategorie Steuerprogramm E/A-Programme Datenverwaltung Algorithmen Summe Teilprodukte 1*500 LOC 1*700+2*500 1*800+2*250 1*300+5*100 Summe LOC 500 1700 1300 800 Aufwandsfaktor 1,8 1,5 1,0 2,0 LOC bewertet 900 2550 1300 1600 6350. LE 2 41 1.4 Basismethoden der Aufwandsschätzung Gewichtungsmethode Zunächst werden Faktoren festgelegt, die für die Schätzung relevant sind Sie sind subjektiv (z.B. Qualifikation des Personals) oder objektiv (z.B. verwendete Programmiersprache) zu bewerten Den Faktorausprägungen sind Werte zugeordnet Die Werte aller Faktoren werden nach einer vorgegebenen mathematischen Formel verknüpft und ergeben dann den Gesamtaufwand. LE 2 42 1.4 Basismethoden der Aufwandsschätzung Methode der parametrischen Gleichungen Durch Korrelationsanalysen wird ermittelt, welche Faktoren welchen wertmäßigen Einfluß auf den Gesamtaufwand haben Solche Analysen müssen mit einer großen Anzahl von abgeschlossenen Entwicklungen und einer Vielzahl von Faktoren durchgeführt werden Die Faktoren, die die höchste Korrelation besitzen, werden zu einer Gleichung zusammengefaßt Der zu jedem Faktor gehörende Koeffizient repräsentiert die Stärke des Einflusses auf den Gesamtaufwand. LE 2 43 1.4 Basismethoden der Aufwandsschätzung Der Aufwandsfaktor repräsentiert den Einfluß des jeweiligen Faktors auf den Gesamtaufwand Als Gleichung würde sich ergeben: LOCbewertet= LOCSteuerprogramme*1,8 + LOCE/A-Programme*1,5 + LOCDatenverwaltung*1,0 + LOCAlgorithmen*2. LE 2 44 1.4 Basismethoden der Aufwandsschätzung Bewertung Es ist eine umfangreiche, empirische Datensammlung und -auswertung erforderlich, um die zu berücksichtigenden Faktoren unternehmensspezifisch zu bewerten Die Koeffizienten müssen permanent überprüft werden, um den technischen Fortschritt zu berücksichtigen. LE 2 45 1.4 Basismethoden der Aufwandsschätzung Prozentsatzmethode Aus abgeschlossenen Entwicklungen wird ermittelt, wie der Aufwand sich auf die einzelnen Entwicklungsphasen verteilt hat Bei neuen Entwicklungen schließt man entweder eine Phase zunächst vollständig ab und ermittelt aus dem Ist-Aufwand dann anhand der Aufwandsverteilung den SollAufwand für die restlichen Phasen Oder man führt eine detaillierte Schätzung einer Phase durch und schließt hieraus dann auf den Gesamtaufwand. LE 2 46 1.4 Basismethoden der Aufwandsschätzung Prozentsatzmethode aa bb DD e efni fni toiitnoi n 303%0% TeTse st t 202–02–52%5% EE nw nt w tu ur fr f 303%0% CC ododei eriun rugng 151–52–02%0% DD e efni fni toiitnoi n 181%8% TeTse st t 292%9% EE nw nt w tu ur f r f 191%9% CC ododei eriun rugng 343%4% Kann bereits frühzeitig eingesetzt werden, wenn der Aufwand für mindestens eine Phase durch den Einsatz einer anderen Methode bestimmt wurde. LE 2 47 1.4 Basismethoden der Aufwandsschätzung Bewertung Keine der aufgeführten Basismethoden allein ist ausreichend Je nach Zeitpunkt und Kenntnis von aufwandsrelevanten Daten sollte die eine oder andere Methode eingesetzt werden Für frühzeitige, grobe Schätzungen müssen die... Analogie Relations- und Prozentsatzmethode eingesetzt werden. LE 2 48 1.4 Basismethoden der Aufwandsschätzung Sind die Einflußfaktoren während der Entwicklung dann genauer bekannt, dann sollten die genaueren Methoden, wie die... Gewichtungs- oder Multiplikationsmethode oder die Methode der parametrischen Schätzgleichungen Verwendung finden. LE 2 49 Zusammenhänge Legende : P ha se P ha sene rgebn si P al nung spha se D u rch füh rba rke its s u t d ei S o t p o rG o A u sw äh el n de s P rodu k ts V o run e t rsu chung de s P rodu k ts H aup a t n fo rde rungen zu samm en s e t lel n D u rch füh rba rke itsun e t rsu chung fa ch lci h p / e rsone ll A le t rna tvi en p rü e fn P rü e f n de r ö konom si chen D u rch füh rba rke it Auw f and s - und Te m r ni schä tzung W ir ts cha ft lci h ke its re chnung La s e t nhe ft (g robe s P f lci h e t nhe ft) P ro ej k tka kl u al toi n P ro ej k tp al n LE 2 50 Danke! Aufgaben Diese Präsentation bzw. Teile dieser Präsentation enthalten Inhalte und Grafiken des Lehrbuchs der SoftwareTechnik (Band 1) von Helmut Balzert, Spektrum Akademischer Verlag, Heidelberg 1996