Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Projektplan:

Ähnliche Präsentationen


Präsentation zum Thema: "Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Projektplan:"—  Präsentation transkript:

1 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Projektplan:

2 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Analyse & Design Ziele m Technisches Konzept zur Realisierung neuer Funktionalität m Vorgabe für die Implementierung m Zielgruppe Entwickler m Beschreibung auf Modellebene m Beispielszenarien (Story Boards, Sequenzdiagramme, …) m Klassendiagramm

3 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University

4 Beispiel Agentensimulation: Übersicht GUIsimulator agentX loadAgents("c:/factory1.sim) create() loadPlan() exec()

5 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Beispiel Agentensimulation: Story Board simulator : AgentSim agentX : Agent > agentX > s1 : Step name = "drilling" > s2 : Step name = "carving" > s3 : Step name = "polish" > s3 : Step name = "paint"

6 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Beispiel Agentensimulation: Architektur AgentSimStep name :String Agent next

7 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Kostenschätzung m Wieviel Stunden brauchen Sie, um ein Programm für die Berechnung der Varianz zu schreiben / zu testen? m Wie sicher ist Ihre Schätzung? m Wie lange brauchen Sie, um 1000 LOC zu spezifizieren, zu programmieren, zu testen? m Wie viele Fehler machen Sie durchschnittlich pro 100 Zeiten Quelltext? m Solche Fragen muss man mit höchstens 10% Ungenauigkeit beantworten können

8 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Ziele der Prozessmodellierung m Standardisierte Vorgehensweisen m Standardisierte (Teil-) Ergebnisdokumente Vergleichbarkeit von verschiedenen Projekten m Messungen von Prozessgrößen werden möglich / vergleichbar / bewertbar m Basis für Schätzungen m Basis für Planungen m Basis für Verbesserungen

9 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Aufwandsmaße Vergleichsbasiertes Schätzen: m neues Projekt 20% "größer" 20% mehr Zeit/Aufwand m Zeitmessung bleibt schwierig: l manuell: manipulierbar l Controller: ja, aber … l automatisch: ungenau/gescheitert m Größenmessung: l leicht automatisierbar l reproduzierbar l...

10 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Messung der Programm/Problemgröße m gängige Metriken l Lines Of Code l Function Points l Anzahl GUI-Elemente l Anzahl der HTML-Tags l Anzahl der Datenbanktabellenspalten, Anzahl SQL-Statement- Elemente l... m zur Arbeitsminimierung: Größe sollte leicht / automatisch messbar sein m Zeitschätzungen sind erfahrungsgemäß viel schwerer als Größenschätzungen m Watts Humphrey: l leicht messbar l intuitiv schätzbar l statistische Korrelation zu Zeitaufwand beschreibt Güte

11 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Lines of Code Messen der LOC: + Intuitiv + leicht messbar + korrelieren in gleichbleibendem Umfeld erstaunlich gut zum Zeitaufwand - unterschiedliche Einrückungen - Programmiererabhängig - Erfahrungsabhängig => zeitlich veränderlich - Programmiersprachenabhängig - komplexitätsabhängig: 1 Zeile Betriebsystemscheduler entspricht 100 Zeilen GUI-Code - Copy-Paste Programmierung bringt mehr Zeilen als Refactoring in Methoden -...

12 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Reparaturmaßnahmen m einheitliche Indentierung z.B. mit JIndent m jeder Entwickler sammelt Daten über seine persönliche Produktivität (LOC/Hour) m Trendanalysen der Statistiken erfassen Erfahrungs-Speed-Up m programmiersprachenspezifische Daten sammeln (Sprachen werden nicht so oft gewechselt) m Korrekturfaktoren für die Komplexität einzelner Methoden statistisch ermitteln l Komplexität: leicht, mittel, schwer, komplex l Größe: kurz, mittel, groß, riesig m Weitere Korrekturfaktoren für die nichtfunktionalen Anforderungen COCOMO Kostenschätzungsverfahren m Varianz der statistischen Daten gibt exakte Auskunft über die Güte des verwendeten Maßes m Größe und Qualität der statistischen Datenbasis erlauben Aussage über Qualität der Schätzung

13 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Lines of Code m LOC sieht eigentlich untauglich aus / man hat dabei ein mulmiges Gefühl m Humphrey sagt: l frag die Statistik ob dein Maß taugt l bei geringer Varianz hast du ein gutes Maß

14 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Function Points m Alternativen zu LOC: Function Point Methode m Zählen der "syntaktischen Konstrukte" l # Methoden l # Parameter l # if und while Statements l...

15 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Umrechnung von Function Points in LOC

16 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Umrechnung von Function Points in Personenmonate

17 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Bewertung des Function-Point-Maßes + automatisch messbar + relativ verbreitet + Programmiersprachen unabhängig - nicht sehr intuitiv - Programmiersprachen unabhängig - keine individuellen Einflussfaktoren m letztlich Pro und Contra wie bei LOC nur eine gute statistische Datenbasis erlaubt Aussagen über die Güte eines Größenmaßes !

18 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Beispiel einer Zeit / LOC Statistik

19 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Bestimmung einer Ausgleichsgeraden mit "linearer Regression" m Zeitaufwand = b 0 + b 1 * LOC (oder allgemeiner: y = b 0 + b 1 * x) m Berechnung der Regressionsparameter b 0 und b 1

20 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Der Korrelationskoeffizent m Basis für Anwendung der linearen Regression m x i, y i wie vorher

21 Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Interpretation des Korrelationskoeffizenten m r nahe bei 1: hohe positive lineare Abhängigkeit m r nahe bei -1: hohe negative lineare Abhängigkeit m r nahe bei 0: wenig (keine) lineare Abhängigkeit m r2 > = 0.9: hohe Wahrscheinlichkeit für lineare Abhängigkeit m 0.7 < = r2< 0.9: lineare Regression anwendbar m 0.5 < = r2< 0.7: lineare Regression nur mit Vorsicht anwenden m r2 < 0.5: keine lineare Regression möglich m Vorsicht: sinnvolle Überprüfung nur bei genügend Stichproben (> 10?) m Eventuell: statistische Signifikanz ermitteln, siehe [Humprey95]


Herunterladen ppt "Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Projektplan:"

Ähnliche Präsentationen


Google-Anzeigen