Informationsmanagement in Organisationen Software-Metriken und Aufwandsschätzung

Größe: px
Ab Seite anzeigen:

Download "Informationsmanagement in Organisationen Software-Metriken und Aufwandsschätzung"

Transkript

1 Informationsmanagement in Organisationen Software-Metriken und Aufwandsschätzung Wolfgang H. Janko Andreas Geyer-Schulz Stefan Koch Edward Bernroider Abteilung für Informationswirtschaft Institut für Informationsverarbeitung und Informationswirtschaft Wirtschaftsuniversität Wien Augasse 2-6, A-1090 Wien, Österreich Telefon: URL:

2 Inhaltsverzeichnis 1. Software-Metriken (a) Grundlagen (b) Lines-of-Code (c) Cyclomatic Complexity (d) Halstead-Maß (e) Metriken der objekt-orientierten Programmierung 2. Aufwandsschätzung (a) Grundlagen (b) COCOMO (c) Modell von Putnam (d) Function Points (e) Nicht-algorithmische Verfahren (f) Einsatz in Organisationen, Datengewinnung und Validierung 1

3 Software-Metriken Grundlagen Metrik: Zuordnung einer Zahl zu einer Entität, um ein spezielles Attribut dieser Entität zu charakterisieren Klassen von Software-Metriken Produktmetriken: Maßzahlen für das Software-Produkt Prozessmetriken: Quantifizierung von Attributen des Entwicklungsprozesses und der Entwicklungsumgebung Messung von Software-Metriken direkt: ohne Abhängigkeit von einem anderen Attribut indirekt: inkludiert die Messung eines oder mehrerer anderer Attribute Anforderungen an Software-Metriken Einfachheit Validität Robustheit Analysierbarkeit mit statistischen Mitteln Eignung im Rahmen des Software-Projektmanagements Sensitivität auf atomare Änderungen 2

4 Verwendung und Nutzen von klaren und wohldefinierten Zielen geleitet (Goal/Question/Metric-Ansatz) Feststellung ( assessment ) im Rahmen der Steuerung eines Software-Projekts Vorhersage ( prediction ) von Charakteristiken von Projekten (Aufwandsschätzung) taktische Anwendung in Rahmen des Projektmanagements, strategische Anwendung im Rahmen der Prozessverbesserung 3

5 Lines-of-Code eine der gebräuchlichsten Metriken für die Größe einer Software LOC oder Programmzeilen jedoch unterschiedliche Definitionen (Was wird gezählt?) ausführbare Programmzeilen oder Anweisungen in jeder gängigen Definition inkludiert Kommentare? Leerzeilen? ohne diese beiden: NCSS (Non Commentary Source Statements) Deklarationen von Variablen oder Prozeduren? Anweisungen im Header? Compiler-Anweisungen? Programmzeile kann mehrere Anweisungen umfassen bei Überarbeitungen: Zählung von Löschen und Modifikation von einzelnen Programmzeilen Zählung bei Wiederverwendung von Code-Bestandteilen organisationsweit einheitliche Definition unumgänglich Verbindung zum Anreizsystem beachten 4

6 Vorteil: einfach, automatisiert erhebbar Probleme Sprachabhängigkeit mißt eigentlich nur Größe (etwa für die Speicherung oder einen Ausdruck) und nicht Komplexität (Beispiel rekursive Programme) 5

7 Beispiel use DBI; #open log files while(<cvs>) { my $count; if (/^RCS file: cvsroot([^]+)(.+),/) { $project=$1;$realfile=$1."/".$2; $file=$realfile; $file =~ tr/ /"/; $sumadd=0;$sumdel=0;$count++; my $instr="insert into file values ( $file, $project )"; print $instr; } elsif (/^date: (.+); author: (w+); state: Exp;$/) { $date=$1;$prog=$2; $lines_total= wc -l $datadir/$realfile ; } close CVS; } LOC: 21, 20 (ohne Leerzeilen), 19 (ohne Kommentar), 17 (ohne Deklarationen), 12 (nur Zeilen mit Befehlen), 16 (jeder Befehl)? 6

8 Cyclomatic Complexity beruht auf der Kontrollflußstruktur ( control flow graph oder flowgraph ) eines Programms mißt die Anzahl der linear unabhängigen Wege durch den Flowgraph F bei e Kanten, n Knoten und p Zusammenhangskomponenten v(f ) = e n + 2p (1) Knoten: Block sequentieller Anweisungen, die keine internen Verzweigungen aufweisen Kante: möglicher Kontrollfluß zwischen den Knoten Zusammenhangskomponenten: unabhängige Programmkomponenten (Module oder Prozeduren) Annahme: Module mit einer Cyclomatic Complexity von mehr als 10 besonders fehleranfällig erlaubt Aussagen über die Komplexität des Kontrollflusses beeinflußt vor allem das Testen, bei dem alle Pfade betrachtet werden sollten 7

9 Cyclomatic Complexity - Beispiele e = 15 n = 13 v(f) = e = 11 n = 9 v(f) =

10 Halstead-Maß Grundidee: Zählen von Operatoren (Symbole, die den Wert oder die Anordnung eines Operanden beeinflussen) und Operanden (Variablen oder Konstanten) gemessen werden jeweils die Gesamtanzahl sowie die Anzahl der verschiedenen Operatoren bzw. Operanden in der vorliegenden Implementierung (N 1 und N 2 bzw. η 1 und η 2 ) Beispiel (N 1 =4, N 2 =4, η 1 =2, η 2 =3) print $name; print $adresse; print $alter; $alter++; Vokabular: η = η 1 + η 2 Implementierungslänge: N = N 1 + N 2 Größe der Implementierung eines Algorithmus: Volumen V = N log 2 η es kann dann das Verhältnis zum minimalen oder potentiellen Volumen berechnet werden (Programmstufe) 9

11 Schwierigkeit des Verständnisses invers zu der Programmstufe (für jemanden mit geringem Wissen braucht man mehr Volumen zum Verständnis) 10

12 Metriken der objekt-orientierten Programmierung bekanntester Ansatz von Chidamber und Kemerer: weighted methods per class : Komplexität einer Klasse, für jede Funktion der Wert 1 depth in inheritance tree : Länge des längsten Pfades durch die Vererbungshierarchie number of children : Anzahl der Klassen, die direkt von dieser erben coupling between methods : Anzahl der Module, die mit dem betrachteten gekoppelt sind (wenn eine davon die Funktionen und/oder die Instanzvariablen der anderen benutzt) response for a class : Anzahl der Methoden, die potentiell ausgeführt werden können, wenn ein Objekt der betrachteten Klasse eine Nachricht empfängt lack of cohesion on methods : Anzahl der Methoden-Paare, die keine gemeinsamen Instanzvariablen haben, abzüglich der Anzahl der Methoden-Paare, die solche besitzen Ergänzungen und andere Ansätze: 11

13 inheritance coupling : Anzahl der Vaterklassen, mit der eine Klasse gekoppelt ist (wenn eine der geerbten Methoden eine neue oder neu definierte Variable oder Methode benutzt) coupling between methods : Anzahl der neuen oder neu definierten Methoden, mit denen die geerbten Methoden gekoppelt sind average method complexity : durchschnittliche Größe der Methoden einer Klasse MOOD-Gruppe: Method Inheritance Factor, Attribute Inheritance Factor, Coupling Factor, Clustering Factor, Polymorphism Factor, Method Hiding Factor, Attribute Hiding Factor und Reuse Factor 12

14 Literatur Norman E. Fenton, Software Metrics: A Rigorous Approach, Chapman & Hall, London, S.D. Conte and H.E. Dunsmore and V.Y. Shen, Software Engineering Metrics and Models, Benjamin/Cummings, Menlo Park, California, T.J. McCabe, A Complexity Measure, IEEE Transactions on Software Engineering, 2(4): , December Maurice H. Halstead, Elements of Software Science, Elsevier North-Holland, New York, Shyam R. Chidamber and Chris F. Kemerer, A Metrics Suite for Object-Oriented Design, IEEE Transactions on Software Engineering, 20(6): , June

15 Aufwandsschätzung Grundlagen Entwicklung und Wartung von Software: Aufgabe von hoher Unsicherheit vor allem die zugrundeliegende Komplexität zu Beginn kaum abzuschätzen Ziel trotzdem: Zeit-, Kosten- und Personalplanung sowie die laufende Kontrolle rein subjektive Schätzungen durch Experten haben sich als zu fehleranfällig erwiesen Modell zur Aufwandsschätzung: Vorhersagesystem für Attribute des zugrundeliegenden Prozesses (Aufwand, Kosten, Dauer) besteht aus einem mathematischen Modell des Prozesses mit den Beziehungen zwischen den verschiedenen Attributen, einer Vorgehensweise zur Bestimmmung unbekannter Parameter und einer Anleitung zur Interpretation der Ergebnisse Anforderungen: Validität der Schätzungen, Objektivität, einfache Handhabung, Robustheit in Hinsicht auf kleine 14

16 Änderungen bei den Input-Parametern und Transportfähigkeit zwischen verschiedenen Umgebungen 15

17 Einteilung Einteilung von Modellen nach der Methode, mittels derer sie abgeleitet wurden (Conte et al., 1986) Historisch-experimentelle Modelle: Expertenschätzungen, teilweise basierend auf historischen Daten Statistik-basierte Modelle: normalerweise mittels Regressionsanalyse eine Beziehung zwischen Aufwand und anderen Parametern wie der Programmgröße bestimmt Theoretisch-basierte Modelle: Annahmen über die Funktionsweise des menschlichen Geistes bei der Programmentwicklung sowie postulierte mathematische Gesetze, denen der Software-Entwicklungsprozeß folgt Zusammengesetzte Modelle andere Einteilungen z.b. nach der mathematischen Form der verwendeten Gleichungen, nach der Art der Daten, die zur Voraussage verwendet werden, und nach den Annahmen, die hinsichtlich des Software-Entwicklungsprozesses gemacht werden,... 16

18 Modelle der Software-Entwicklung liegen den meisten Aufwandsschätzungsmodellen zugrunde Ansatz von Norden: Entwicklungsprojekt: endliche Folge von zielgerichteten, zeitlich geordneten Aktivitäten, die sich auf eine homogene Menge von Problemelementen beziehen, um eine spezifizierte Menge von Zielen zu erreichen Projekt besteht folglich aus einer Menge von Problemen, die alle gelöst werden müssen Annahme: Anzahl der Probleme ist unbekannt aber endlich Annahme: Finden sowie Lösung von Problemen findet durch die kreative Leistung der eingesetzten Arbeitskräfte ( manpower ) statt Annahme: Lösen eines Problem ist ein Ereignis, das ein Element aus der endlichen Menge der ungelösten entfernt, Auftreten dieser Ereignisse ist unabhängig und zufällig (Poisson-Verteilung) Annahme: Anzahl der Personen, die zu einem bestimmten Zeitpunkt sinnvoll an einem Projekt mitarbeiten können, ist ungefähr proportional zu der Anzahl der 17

19 Probleme, die zu diesem Zeitpunkt zur Lösung bereit sind Folge: gegen Ende eines Projekts, wenn nur mehr wenige Probleme vorhanden sind, nimmt die Anzahl der eingesetzten Mitarbeiter ab (bzw. sollte es) Annahme: Lernrate des Projektteams wird mittels einer linearen Funktion der Zeit t mit p(t) = 2 a t modelliert Kosten C(t) in Mannjahren des Projektes entstehen durch die Kumulierung der eingesetzten Arbeitskraft über die Zeit Kosten sind zu Beginn des Projektes Null und steigen monton bis zum Gesamtaufwand K an Änderung dieser Kostenfunktion zu einem beliebigen Zeitpunkt, dc(t)/dt, ist die Anzahl der zu diesem Zeitpunkt involvierten Personen diese Anzahl der nutzbringend involvierten Personen ist über einen Faktor k (Lernrate) proportional zur Anzahl der noch zu lösenden Probleme diese Anzahl kann über die Differenz zwischen den bisher angefallenen Kosten und der Gesamtanzahl der Probleme, wobei dafür der gesamte Projektaufwand K als Indikator verwendet wird, ausgedrückt werden Folge: kumulativer Aufwand zu einem Zeitpunkt t C(t) = K[1 exp( at 2 )] (2) 18

20 Ableitung dieses Ausdrucks nach der Zeit gibt somit die Besetzung des Projekts mit Personen ( manpower function, Manpower-Funktion) an: m(t) = C (t) = 2 K a t exp( a t 2 ) (3) dies stellt eine Rayleigh-Kurve dar, daher Norden/Rayleigh- Modell genannt Verlauf: zu Beginn ein Wert von 0, dann ein Anstieg bis zu einem Gipfelpunkt t d und schließlich ein stetiger Abstieg wiederum auf 0 (Parameter a hat dabei einen wichtigen Einfluß auf diesen Gipfelpunkt t d, je größer a ist, desto steiler der Anstieg und früher der Gipfelpunkt) Es kann, wenn der Gipfelpunkt t d erreicht, und damit zugleich die Besetzung mit Personen zu diesem Zeitpunkt m 0 bekannt ist, der Gesamtaufwand K, der für das Projekt anfällt, berechnet werden. ähnlich Ansatz von Parr: Abfall im Entwicklungsaufwand gegen Ende eines Projekts ebenfalls erklärt durch Ausschöpfung des Problemraumes, jedoch keine Lernrate, sondern Abhängigkeiten zwischen den zu lösenden Problemen (Menge von sichtbaren ungelösten Problemen - modelliert Nutzen strukturierter Programmierung), Unterschiede vor allem in der Anfangsphase (Beginn eines Projekts nicht genau definiert) 19

21 NOV 1999 SEP 1999 JUL 1999 MAY 1999 MAR 1999 JAN 1999 NOV 1998 SEP 1998 JUL 1998 MAY 1998 MAR 1998 JAN 1998 NOV 1997 SEP 1997 JUL 1997 MAY Vollzeitprogrammierer 10 Variante 1 0 Variante 2 MAR 1997 JAN 1997 Abbildung 1: Rayleigh-Modell GNOME Projekt 20

22 Software-Entwicklungsprozeß als Produktionsfunktion einfachster Fall: Input einer solchen Funktion ist Aufwand zum Beispiel in Mannjahren und der Output ist das erstellte Software-Artefakt, gemessen anhand einer Metrik für die Größe wie zum Beispiel LOC unterschiedliche Arten von Produktionsfunktion: linear (nicht haltbar), quadratisch, Cobb-Douglas (S = a 0 E a 1), translog-produktionsfunktion,... Problem: steigende wie auch sinkende Skaleneffekte empirisch belegt Software-Projekt als dynamisches System (auch Faktoren wie die Erwartungen der Projektleitung, die Reaktionen auf Verzögerungen oder die Motivation der Mitarbeiter explizit modelliert) 21

23 Abbildung 2: Scatterplot 22

24 Abbildung 3: Regression 23

25 COCOMO COnstructive COst MOdel (Boehm) existiert in drei zunehmend detaillierteren Formen (Basic, Intermediate und Detailed) Grundannahmen Wasserfall-Modell Existenz von drei verschiedenen Modi der Entwicklung Organic: Kleine Teams erfahrener Personen in bekanntem Umfeld, mit stabiler Entwicklungsumgebung und geringer Projektgröße Embedded: Projekte relativ hoher Größe unter Existenz schwieriger Nebenbedingungen mit höherer Unsicherheit sowie einem höheren Innovationsgrad Semi-detached: Mischung aus den beiden anderen Modi primärer Kostentreiber sind die ausgelieferten Source- Anweisungen ( delivered source instructions ) gutes Management von Entwickler- wie auch Kundenseite weitgehende Konstanz der Anforderungsspezifikation während des Projektverlaufes 24

26 Entwicklungsaufwand E in Mannmonaten wird über die Größe S (in 1000en delivered source instructions ) ausgedrückt: E = a i S b i m(x) (4) m(x): Einfluß von 15 Umgebungsfaktoren (Produktattribute wie geforderte Zuverlässigkeit des System, Computerattribute wie Hauptspeicherengpäße, Personalattribute wie Programmiersprachenerfahrung und Projektattribute wie moderne Programmierpraktiken), diese werden jeweils in einigen Stufen von sehr niedrig bis sehr hoch bewertet (nach einer Tabelle folgt daraus jeweils ein Wert von ca. 0.7 bis 1.3, diese werden über alle Faktoren miteinander multipliziert), Anmerkung: werden erst in Intermediate COCOMO inkludiert, in Detailed COCOMO sogar für die einzelnen Phasen der Software-Entwicklung getrennt bewertet Parameter a i sowie b i : abhängig von Modus der Entwicklung und Form des Modells Modell Modus Entwicklungsaufwand Basic Organic E = 2.4S 1.05 Semi-detached E = 3.0S 1.12 Embedded E = 3.6S 1.20 Intermediate Organic E = 3.2S 1.05 m(x) Semi-detached E = 3.0S 1.12 m(x) Embedded E = 2.8S 1.20 m(x) 25

27 Vorgehen bei der Schätzung 1. Auswahl des Detaillierungsgrades (also des Modells): Basic, Intermediate oder Detailed 2. Einordnung des Projekts in eine der drei Modi: Organic, Semi-detached oder Embedded 3. Schätzung der Größe der zu erstellenden Software in LOC 4. für die Modelle Intermediate oder Detailed: Bewertung der 15 Umgebungsfaktoren 5. Anwendung der Formel (die zu verwendende Formel ergibt sich aus der Kombination Modell-Modus) Beispiel Entwicklung einer neuen Anwendung an der WU für LV-Anmeldung und Verwaltung Basic Model wird gewählt Modus Semi-detached wird gewählt Grösse wird mit LOC geschätzt Umgebungsfaktoren nicht nötig, da Basic Model verwendet wird ergibt Formel E = und damit einen Aufwand von 100,5 Mannmonaten Probleme 26

28 neuere Lebenszyklusmodelle Verfügbarkeit von Informationen in unterschiedlichen Stadien der Entwicklung (LOC schwer zu Beginn zu schätzen) daher: COCOMO 2 (Boehm et al., 2000) jetzt auch Verwendung von Function Points für Größenschätzung (siehe unten) Bewertung von Reuse mittels eines nicht-linearen Modells Re-engineering und Konvertierung von Bestandteilen eines vorhandenen Systems werden bewertet sowohl Economies wie auch Diseconomies of Scale möglich Schätzung: Effort nominal = A (Size) E (5) A: aufgrund der vorgenommenen Kalibrierung auf 2.94 gesetzt Skalen-Parameter E wird über fünf Skalenfaktoren (Precedentedness, Development Flexibility, Architecture/Risk Resolution, Team Cohesion und Process Maturity) mit einer jeweiligen Gewichtung SF j durch die Formel E = B bestimmt (B momentan 0.91) 27 j=1 SF j (6)

29 Einfluß von Kostentreibern EM i (alle 17 oder zu Beginn der Entwicklung nur 7 im Einsatz): Effort adjusted = Effort nominal 17 i=1 EM i (7) 28

30 Modell von Putnam basiert auf einer Modellierung des Software-Entwicklungsprozesses nach Norden/Rayleigh Untersuchung von 200 Projekten: Verlauf bestätigt außerdem: Gipfelpunkt t d liegt sehr nahe an dem Zeitpunkt liegt, zu dem das System operativ gesetzt wird (t d gleich Entwicklungszeit) Rayleigh-Gleichung dividiert durch die Zeit t mittels Logarithmus linearisiert ergibt eine Gerade (Argument des Interzepts weist eine Beziehung zu den betrachteten Projekten auf) Schwierigkeitsgrad ( difficulty ) eines Projektes mit D = K t 2 d (8) Betrachtung der Änderung des Schwierigkeitsgrades D über dessen Gradienten ergibt: wenn die Entwicklungszeit verkürzt wird, so steigt die Schwierigkeit des Projektes dramatisch an Größenordnung der partiellen Ableitung von D nach t d hat bei den betrachteten Projekten einen Wert von 8 für völlig neue Systeme mit vielen Interaktionen mit anderen 29

31 Systemen, 15 für neue stand-alone Systeme, oder 27 für Systeme, die aus vorhandenen Komponenten erstellt werden (Manpower Build-up, maximale Zufuhr an Mitarbeitern) Beziehung mit dem Umfang S der Software in NCSS über die Software-Gleichung S = C k K 1/3 t 4/3 d (9) C k : Umgebungsfaktor, der den Stand der angewendeten Technologie ausdrückt Beispiel Grösse der Software wird mit LOC geschätzt, Umgebungsfaktor ist 900 Software soll in 3 Jahren einsatzbereit sein Software-Gleichung daher: = 900 K 1/3 3 4/3 Gesamtaufwand K ist daher 206 Mannjahre wenn die Software nun doch schon in 2 Jahren einsatzbereit sein soll, ergibt sich eine Software-Gleichung von = 900 K 1/3 2 4/3 und ein neuer Gesamtaufwand K von 1043 Mannjahren 30

32 Function Points eigentlich Metrik zur Quantifizierung der Größe eines Software- Systems erster Schritt: alle Komponenten des betrachteten Systems werden in eine von fünf Klassen eingeordnet und nach ihrer Komplexität mittels dreier Stufen gewichtet Klassen: externe Inputs externe Outputs logische interne Dateien externe Schnittstellendateien externe Abfragen anhand einer Tabelle der jeweiligen Gewichte und entsprechender Summierung: Unadjusted Function Points (UFP) Einfluß von 14 Charakteristiken (Anforderungen an das System wie verteilte Verarbeitung oder hohe Transaktionsrate, jeweils auf einer Skala von 0 bis 5 gewichtet): Aufsummierung zur Processing Complexity (PC) oder Technical Complexity Factor (TCF) Function Points (FP, Metrik für den notwendigen Aufwand zur Erstellung des Software-Systems und damit seine 31

33 Größe) F P = UF P ( (0.01 P C)) (10) Korrelation zu LOC und tatsächlichem Entwicklungsaufwand empirisch bestätigt für verschiedene Sprachen Umrechungsfaktoren von einem Function Point in die jeweils im Durchschnitt zur Implementierung notwendige Anzahl von LOC (z.b. C 128, C++ 55, PERL 27, Visual Basic 29, Assembler 320,...) Schätzung des Aufwandes: entweder Umrechnung in LOC und anderes Modell (COCOMO,...), oder direkte Beziehung FP zu Aufwand aus Vergangenheitsdaten (z.b. E = 54 F P oder ln E = 1.00 (ln F P ) , siehe Produktionsfunktionen) Beispiel Entwicklung einer neuen Anwendung an der WU für LV-Anmeldung und Verwaltung externe Inputs: 1 einfacher (Noten), 2 schwierige (Ankündigung und Anmeldung) = 1x3 + 2x6 = 15 externe Outputs: 1 schwieriger (VVZ), 2 mittlere (Notenund Anmeldeliste) = 1x7 + 2x5 = 17 logische interne Dateien: 1 schwierige (LV-Verzeichnis), 2 mittlere (Notenliste, Teilnehmerliste) = 1x15 + 2x10 = 35 32

34 externe Schnittstellendateien: 2 schwierige (zu VVZ im WWW und zu Noten-DB) = 2x10 = 20 externe Abfragen: keine UF P = = 87 besondere Auswirkungen durch Anforderungen: Performance 3, Datenkommunikation 2, Transaktionsrate 4, Online-Eingaben 5, End User Effizienz 5, Online- Update 5 P C = = 24 F P = 87 ( ( )) = = Aufwandsschätzung: z.b. über Formel ln E = 1.00 (ln 77.43) = oder Umrechung in LOC (Programmiersprache Java) LOC = F P 53 = = und dann in COCOMO einsetzen Vorteile: frühzeitige Quantifizierbarkeit im Entwicklungsprozeß, von Sprache und Technologie unabhängige Produktivitätsmessung Weiterentwicklungen: z.b. Symons (Function Point Mark II): Input-Datenelemente, Output-Datenelemente und referenzierte Entitäten aller Transaktionen 33

35 Nicht-algorithmische Verfahren nicht-algorithmische ( machine learning ) Methoden Neuronale Netze (sehr sensitiv auf Topologie-Entscheidungen wie Anzahl der Layers, wenig Erklärungswert) Entscheidungsbaum ( decision tree ) bzw. Regressionsbaum ( regression tree ): Klassifikation der Daten entlang der verschiedenen vorhandenen Dimensionen beziehungsweise Attributen, an jedem Blatt sind die Aufwandsdaten der jeweils entsprechend klassifizierten Projekte gespeichert Case-based Reasoning: analogie-basierte Schätzung, jeder erfaßte Fall anhand der vorhandenen Information charakterisiert, bei einem neuen Fall werden die ähnlichsten (z.b. Nearest Neighbor ) gesucht und Schätzung (z.b. gewichteter Mittelwert) aus diesen abgeleitet Fuzzy Logic: Variablen eines Schätzungsmodells meistens schwierig zu quantifizieren, daher Fuzzy Variablen mit Expertenregeln 34

36 FP 210 MM 155 MM 110 MM 145 MM 178 MM 145 MM LOC FP FP FP X X X LOC LOC LOC Abbildung 4: Analogie-basierte Schätzung 35

37 Einsatz in Organisationen, Datengewinnung und Validierung viele Modelle enthalten organisationsspezifische Koeffizienten: Kalibrierung notwendig Datenaufzeichnung über vergangene Projekte notwendig (Projektdatenbank) oft nicht vorhanden, nicht einheitlich erhoben (z.b. LOC) oder nicht alle Attribute vorhanden (z.b. Function Points) dann: Methoden wie Regressionsanalyse, Bayessche Analyse zur Kombination der vorliegenden Daten mit a priori Expertenwissen zu einem posteriori Modell oder andere Validierung: Prozeß, mit dem in einer gegebenen Umgebung die Genauigkeit des Systems durch empirische Mittel, das heißt durch den Vergleich des Verhaltens des Modells mit bekannten Datenpunkten, festgestellt wird Kalibrierung und Validierung nötig: vorhandene Projekte zufällig in zwei Gruppen teilen ( holdout sample ) oder jack-knifing (jeweils ein Fall aus der Datenbasis entfernt und unter Verwendung der verbleibenden anderen geschätzt) Kennzahlen: objektive Maßzahlen, um die Leistung verschiedener Modelle vergleichbar zu machen 36

38 E: tatsächlicher Aufwand eines Software-Projektes, Ê: geschätzter Aufwand relativer Fehler RE ( relative error ) RE = E Ê E (11) sowie durchschnittlicher relative Fehler RE (starke Überschätzungen durch starke Unterschätzungen über mehrere Projekte hinweg ausgeglichen) Größe des relativen Fehlers M RE ( magnitude of relative error ) E MRE = RE = Ê (12) E sowie durchschnittliche Größe des relativen Fehlers MRE (Überschätzungen werden mehr bestraft als Unterschätzungen) Anzahl der Voraussagen auf einem gewissen Niveau l, P RED(l) ( prediction at level l ), definiert mit P RED(l) = k n (13) bei k Projekten mit MRE l in einer Datenbasis von insgesamt n Projekten (P RED(0.25) = 0.83: 83 Prozent der vorhergesagten Werte in einem Bereich von 25 Prozent der tatsächlichen Werte) 37

39 Literatur Barry W. Boehm, Software Engineering Economics, Prentice- Hall, Englewood Cliffs, New Jersey, Barry W. Boehm et al., Software Cost Estimation with COCOMO II, Prentice Hall PTR, Upper Saddle River, New Jersey, L.H. Putnam, A General Empirical Solution to the Macro Software Sizing and Estimating Problem, IEEE Transactions on Software Engineering, 4(4): , July Bernard Londeix, Cost Estimation for Software Development, Addison-Wesley, Wokingham, England, Allan J. Albrecht and John E. Gaffney, Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation, IEEE Transactions on Software Engineering, 9(6): , November Chris F. Kemerer, An Empirical Validation of Software Cost Estimation Models, Communications of the ACM, 30(5): , May

40 Diplomprüfungsfragen Erläutern Sie, wie Sie unter Verwendung des COCOMO-Verfahrens eine Aufwandsschätzung für ein Software-Projekt vornehmen würden. Sie sind dabei der Projektleiter in einer Organisation, die bereits einige ähnliche Projekte durchgeführt hat. Geben Sie dabei bei jedem Schritt an, welche Informationen Sie benötigen, und woher Sie diese erhalten können. (SS 2001, 2. Termin, 5 Punkte) Geben Sie Arten und Aufgaben von Software-Metriken an. Beschreiben Sie die Metriken Anweisungszeilen (lines-of-code, LOC) und Function Point näher und stellen Sie diese gegenüber. (SS 2001, 1. Termin, 6 Punkte) Als Berater werden Sie eingeladen, bei einem Kunden die Function- Point-Methode vorzustellen. Beschreiben Sie kurz die Function- Point-Methode und ihre Rolle bei der Planung von Informationssystemen! (SS 2000, 1. Termin, 5 Punkte) Beschreiben Sie, wie Sie unter Verwendung des Function Point Verfahrens eine Aufwandsschätzung für ein neues Software-Projekt vornehmen können. Was sind Vor- und Nachteile dieses Verfahrens im Vergleich zu anderen Aufwandsschätzungsmethoden? (SS 2002, 2. Termin, 5 Punkte) Zu welcher Klasse von Software-Metriken gehören LOC (linesof-code, Programmzeilen)? Worauf muß man bei einer Definition dieser Metrik achten? Was kann man damit messen, was nicht? Wo sehen Sie sonstige Vor- und Nachteile der Verwendung von LOC? Wofür kann man diese Metrik verwenden? (WS 2002, 1. Termin, 5 Punkte) 39

Verwendung von OO-Metriken zur Vorhersage

Verwendung von OO-Metriken zur Vorhersage Verwendung von OO-Metriken zur Vorhersage Tobias Angermayr Übersicht 1. Definitionen 2. Gründe, Anforderungen, Ziele 3. Die CK-Metriken 4. Beobachtungen 5. Studie 6. Zusammenfassung Folie 2 Definitionen

Mehr

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert <email@henningsievert.de> Seminar Software-Entwurf WS 2004/05

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert <email@henningsievert.de> Seminar Software-Entwurf WS 2004/05 Software-Metriken Dipl.-Ing.(BA) Henning Sievert Seminar Software-Entwurf WS 2004/05 Gliederung Einordnung in den Seminar-Kontext Grundlegende Definitionen Klassifikation von

Mehr

extreme Programming (XP) Hermann Götz Sergij Paholchak Agenda Was ist XP? Grundprinzipien Der Entwicklungsprozess Die Projektplanung Praktiken Vorteile und Nachteile Wann macht XP Sinn für ein Projekt?

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 26 Software-Metriken Josef Adersberger Marc Spisländer Lehrstuhl für Software Engineering

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Informationswirtschaft 2: Überblick

Informationswirtschaft 2: Überblick Informationswirtschaft 2: Überblick Wolfgang H. Janko, Michael Hahsler, Stefan Koch und Andreas Geyer-Schulz Deptartment of Information Systems and Operations WU-Wien Inhaltsverzeichnis 1. Literatur und

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler

Mehr

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle Software- und smodelle Software- Klassische Objektorientierte Seminar Moderne Softwareentwicklung SS 2005 Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte

Mehr

(1) Problemstellung. (2) Kalman Filter

(1) Problemstellung. (2) Kalman Filter Inhaltsverzeichnis (1) Problemstellung...2 (2) Kalman Filter...2 Funktionsweise... 2 Gleichungen im mehrdimensionalen Fall...3 Schätzung des Systemzustands...3 Vermuteter Schätzfehler... 3 Aktualisierung

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung

Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung Prof. Dr. Dr. h.c. M. Broy Klausurlösung Dr. H. Ehler, S. Wagner 2. Juli 2004 Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung Aufgabe 1 Prozessmodelle (4

Mehr

Qualitätsmanagement im Projekt

Qualitätsmanagement im Projekt Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung

Mehr

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät

Mehr

SPI-Seminar : Interview mit einem Softwaremanager

SPI-Seminar : Interview mit einem Softwaremanager Erstellung eines Fragenkatalogs der die Beurteilung der Level 2 Key Process Areas in einem ca. einstündigen Interview mit einem Software Manager ermöglicht Vortrag von Matthias Weng 1 Aufbau Geschichte

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Content Management System mit INTREXX 2002.

Content Management System mit INTREXX 2002. Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

Data Mining-Projekte

Data Mining-Projekte Data Mining-Projekte Data Mining-Projekte Data Mining stellt normalerweise kein ei nmaliges Projekt dar, welches Erkenntnisse liefert, die dann nur einmal verwendet werden, sondern es soll gewöhnlich ein

Mehr

Comparison of Software Products using Software Engineering Metrics

Comparison of Software Products using Software Engineering Metrics Comparison of Software Products using Software Engineering Metrics Alexander Bätz Fakultät EIM Universität Paderborn 23. Juli 2009 1 / 28 Motivation Qualitätsbewertung von Software Vergleichbarkeit von

Mehr

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002) 6. Bayes-Klassifikation (Schukat-Talamazzini 2002) (Böhm 2003) (Klawonn 2004) Der Satz von Bayes: Beweis: Klassifikation mittels des Satzes von Bayes (Klawonn 2004) Allgemeine Definition: Davon zu unterscheiden

Mehr

Data Mining-Modelle und -Algorithmen

Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining ist ein Prozess, bei dem mehrere Komponenten i n- teragieren. Sie greifen auf Datenquellen, um diese zum Training,

Mehr

Fortgeschrittene Statistik Logistische Regression

Fortgeschrittene Statistik Logistische Regression Fortgeschrittene Statistik Logistische Regression O D D S, O D D S - R A T I O, L O G I T T R A N S F O R M A T I O N, I N T E R P R E T A T I O N V O N K O E F F I Z I E N T E N, L O G I S T I S C H E

Mehr

Teambildung. 1 Einleitung. 2 Messen der Produktivität

Teambildung. 1 Einleitung. 2 Messen der Produktivität 1 Einleitung Teambildung In der Entwicklung, speziell bei hohem Softwareanteil, stellen Personalkosten den primären Kostenanteil dar. Daher ist es wichtig, den Personalbedarf optimal zu bestimmen. You

Mehr

Aufwandschätzung von IT-Projekten in der Praxis. Christian Zehe und Christian Hartmann

Aufwandschätzung von IT-Projekten in der Praxis. Christian Zehe und Christian Hartmann Aufwandschätzung von IT-Projekten in der Christian Zehe und Christian Hartmann Gliederung 1. Problematik der Aufwandschätzung 2. Grundlagen der Aufwandschätzung 3. Methoden der Aufwandschätzung Umfangbasierte

Mehr

Einführung und Motivation

Einführung und Motivation Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Was bringt TDD wirklich?

Was bringt TDD wirklich? Was bringt TDD wirklich? Wissensspritze vom 6..2009, Christian Federspiel Catalysts GmbH McCabe Metrik CCN Die Cyclomatic Complexity Number, misst die Anzahl der möglichen Pfade durch einen Code. Die Metrik

Mehr

Senkung des technischen Zinssatzes und des Umwandlungssatzes

Senkung des technischen Zinssatzes und des Umwandlungssatzes Senkung des technischen Zinssatzes und des Umwandlungssatzes Was ist ein Umwandlungssatz? Die PKE führt für jede versicherte Person ein individuelles Konto. Diesem werden die Beiträge, allfällige Einlagen

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Übungsklausur vom 7. Dez. 2007

Übungsklausur vom 7. Dez. 2007 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Bernadette Büsgen HR-Consulting www.buesgen-consult.de

Bernadette Büsgen HR-Consulting www.buesgen-consult.de Reiss Profile Es ist besser mit dem Wind zu segeln, als gegen ihn! Möchten Sie anhand Ihres Reiss Rofiles erkennen, woher Ihr Wind weht? Sie haben verschiedene Möglichkeiten, Ihr Leben aktiv zu gestalten.

Mehr

Korrelation (II) Korrelation und Kausalität

Korrelation (II) Korrelation und Kausalität Korrelation (II) Korrelation und Kausalität Situation: Seien X, Y zwei metrisch skalierte Merkmale mit Ausprägungen (x 1, x 2,..., x n ) bzw. (y 1, y 2,..., y n ). D.h. für jede i = 1, 2,..., n bezeichnen

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten Outsourcing Advisor Bewerten Sie Ihre Unternehmensanwendungen auf Global Sourcing Eignung, Wirtschaftlichkeit und wählen Sie den idealen Dienstleister aus. OUTSOURCING ADVISOR Der Outsourcing Advisor ist

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Ausarbeitung des Seminarvortrags zum Thema

Ausarbeitung des Seminarvortrags zum Thema Ausarbeitung des Seminarvortrags zum Thema Anlagepreisbewegung zum Seminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn von Imke Meyer im W9/10 Anlagepreisbewegung

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Kapitel 3: Einführung Projektmanagement

Kapitel 3: Einführung Projektmanagement : : : : : : : : : : : : : : : : : : : : : Kapitel 3: Einführung Projektmanagement Dr.-Ing. Bastian Koller, Axel Tenschert koller@hlrs.de, tenschert@hlrs.de : : : : : : : : : : : : : : : : : : : : : Kapitel

Mehr

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Künstliche Intelligenz Maschinelles Lernen

Künstliche Intelligenz Maschinelles Lernen Künstliche Intelligenz Maschinelles Lernen Stephan Schwiebert Sommersemester 2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Maschinelles Lernen Überwachtes Lernen

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

SWE12 Übungen Software-Engineering

SWE12 Übungen Software-Engineering 1 Übungen Software-Engineering Software-Qualitätssicherung / Software-Qualitätsmanagement 2 Aufgabe 1 Ordnen Sie die folgenden Zitate dem entsprechenden Ansatz zum Qualitätsbegriff zu und begründen Sie

Mehr

Physik & Musik. Stimmgabeln. 1 Auftrag

Physik & Musik. Stimmgabeln. 1 Auftrag Physik & Musik 5 Stimmgabeln 1 Auftrag Physik & Musik Stimmgabeln Seite 1 Stimmgabeln Bearbeitungszeit: 30 Minuten Sozialform: Einzel- oder Partnerarbeit Voraussetzung: Posten 1: "Wie funktioniert ein

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Energetische Klassen von Gebäuden

Energetische Klassen von Gebäuden Energetische Klassen von Gebäuden Grundsätzlich gibt es Neubauten und Bestandsgebäude. Diese Definition ist immer aktuell. Aber auch ein heutiger Neubau ist in drei (oder vielleicht erst zehn?) Jahren

Mehr

Zählstatistik. Peter Appel. 31. Januar 2005

Zählstatistik. Peter Appel. 31. Januar 2005 Zählstatistik Peter Appel 31. Januar 2005 1 Einleitung Bei der quantitativen Analyse im Bereich von Neben- und Spurenelementkonzentrationen ist es von Bedeutung, Kenntnis über die möglichen Fehler und

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Leseauszug DGQ-Band 14-26

Leseauszug DGQ-Band 14-26 Leseauszug DGQ-Band 14-26 Einleitung Dieser Band liefert einen Ansatz zur Einführung von Prozessmanagement in kleinen und mittleren Organisationen (KMO) 1. Die Erfolgskriterien für eine Einführung werden

Mehr

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung Mathematik UND/ODER Verknüpfung Ungleichungen Betrag Intervall Umgebung Stefan Gärtner 004 Gr Mathematik UND/ODER Seite UND Verknüpfung Kommentar Aussage Symbolform Die Aussagen Hans kann schwimmen p und

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Stapelverarbeitung Teil 1

Stapelverarbeitung Teil 1 Stapelverarbeitung Teil 1 In jedem Unternehmen gibt es von Zeit zu Zeit Änderungen in Normen und Firmenstandards, an die aktuelle und bereits bestehende Zeichnungen angepasst werden müssen. Auch Fehler

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

Änderung des IFRS 2 Anteilsbasierte Vergütung

Änderung des IFRS 2 Anteilsbasierte Vergütung Änderung IFRS 2 Änderung des IFRS 2 Anteilsbasierte Vergütung Anwendungsbereich Paragraph 2 wird geändert, Paragraph 3 gestrichen und Paragraph 3A angefügt. 2 Dieser IFRS ist bei der Bilanzierung aller

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Behandelte Fragestellungen Was besagt eine Fehlerquote? Welche Bezugsgröße ist geeignet? Welche Fehlerquote ist gerade noch zulässig? Wie stellt

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Arbeitshilfen Messecontrolling Wie geht denn das?

Arbeitshilfen Messecontrolling Wie geht denn das? Messecontrolling Wie geht denn das? In meiner Praxis als Unternehmensberater für Marketing und Vertrieb hat sich über viele Jahre gezeigt, dass die Kunden oftmals Schwierigkeiten haben, ein eigenes Messecontrolling

Mehr

Abschluss Version 1.0

Abschluss Version 1.0 Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten

Mehr

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7 combit Relationship Manager email-rückläufer Script Inhalt Einleitung 3 Notwendige Anpassungen 3 crm Solution

Mehr

10 größten SLA Irrtümer. Seminar: 8663 Service-Level-Agreement. Qualified for the Job

10 größten SLA Irrtümer. Seminar: 8663 Service-Level-Agreement. Qualified for the Job 10 größten SLA Irrtümer Seminar: 8663 Service-Level-Agreement Qualified for the Job Die 10 größten SLA-Irrtümer Irrtum 1: Alle Service Levels sind Kennzahlen Irrtum 2: SLAs dürfen keine Plagiate sein Irrtum

Mehr

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS 12. - Ohne Gewähr -

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS 12. - Ohne Gewähr - PRÜFUNG FÜR ELEKTROINGENIEURE Softwaretechnik I Musterlösung SS 12 - Ohne Gewähr - LfdNr. Thema Punkte Zeitbedarf in min 1 Analyse und Entwurf 15 30 2 Basistechniken und Test 15 30 3 Projektmanagement

Mehr

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell (Auszug) Im Rahmen des EU-Projekts AnaFact wurde diese Umfrage von Frauenhofer IAO im Frühjahr 1999 ausgewählten

Mehr

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen

Mehr

Abschnitt 16: Objektorientiertes Design

Abschnitt 16: Objektorientiertes Design Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Die Größe von Flächen vergleichen

Die Größe von Flächen vergleichen Vertiefen 1 Die Größe von Flächen vergleichen zu Aufgabe 1 Schulbuch, Seite 182 1 Wer hat am meisten Platz? Ordne die Figuren nach ihrem Flächeninhalt. Begründe deine Reihenfolge. 1 2 3 4 zu Aufgabe 2

Mehr

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Informationssystemanalyse Lebenszyklusmodelle 3 1 Aufgaben von Lebenszyklusmodellen Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Definition der Tätigkeiten im Entwicklungsprojekt Zusicherung

Mehr

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort: Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Ein Vorwort, das Sie lesen müssen!

Ein Vorwort, das Sie lesen müssen! Ein Vorwort, das Sie lesen müssen! Sehr geehrte Teilnehmerin, sehr geehrter Teilnehmer am Selbststudium, herzlichen Glückwunsch, Sie haben sich für ein ausgezeichnetes Stenografiesystem entschieden. Sie

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV MICROSOFT DYNAMICS NAV Inhaltsverzeichnis TECHNISCHE INFORMATION: Einleitung... 3 LESSOR LOHN/GEHALT Beschreibung... 3 Prüfung der Ausgleichszeilen... 9 Zurücksetzen der Ausgleichsroutine... 12 Vorgehensweise

Mehr

Softwaremetriken verstehen und nutzen

Softwaremetriken verstehen und nutzen Softwaremetriken verstehen und nutzen Manuel Pichler http://manuel-pichler.de PHP Unconference Hamburg 12. September 2009 Über mich Manuel Pichler Total stolzer Papa Jahrgang 1978 Diplom Informatiker Softwarearchitekt

Mehr