Vorlesung Software-Reengineering
|
|
|
- Hede Holzmann
- vor 9 Jahren
- Abrufe
Transkript
1 Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2006/07
2 Überblick I 1 Metriken
3 Software-Metriken 1 Metriken Softwaremetriken Größenmetriken Komplexitätsmetriken Kopplung und Kohäsion Objektorientierte Metriken Empirische Studien Wiederholungsfragen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
4 Software-Metriken Kontext mit Metriken können Bad Smells gefunden werden mit Metriken kann man versuchen, Wartbarkeit zu quantifizieren Lernziele verstehen, was eine Software-Metrik ist klassische prozedurale und objektorientierte Software-Metriken kennen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
5 Definitionen für Software-Metriken A quantitative measure of the degree to which a system, component, or process possesses a given variable. IEEE Standard Glossary A software metric is any type of measurement which relates to a software system, process or related documentation. Ian Summerville Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
6 Klassifikation nach Fenton und Pfleeger (1996) Software Metriken Prozess Metriken Produkt Metriken Ressourcen Metriken intern extern Größe Länge Funktionalität Komplexität Struktur Kontrollfluss Datenfluss, Modularität OO Metriken Datenstrukturen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
7 Vorlesung Software-Reengineering Metriken Softwaremetriken Klassifikation nach Fenton und Pfleeger (1996) Klassifikation nach Fenton und Pfleeger (1996) Software Metriken Prozess Metriken Produkt Metriken Ressourcen Metriken intern extern Größe Struktur Länge Kontrollfluss Funktionalität Datenfluss, Modularität Komplexität OO Metriken Datenstrukturen Prozessmetriken - intern: Zeit, Aufwand, Anzahl gef. Fehler,... Prozessmetriken - extern: Qualität, Kosten, Stabilität,... Ressourcenmetriken - intern: Personal (Alter, Lohn), Teamgröße/-struktur, Hardwareausstattung, Büroeinrichtung,... Ressourcenmetriken - extern: Produktivität, Erfahrung,... Produktmetriken - extern: Verläßlichkeit, Verständlichkeit, Benutzerfreundlichkeit, Wartbarkeit,...
8 Größenmetriken LOC Lines of code (LOC) + relativ einfach messbar + starke Korrelation mit anderen Maßen ignoriert Komplexität von Anweisungen und Strukturen schlecht vergleichbar Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
9 Größenmetriken LOC int main(int argc, char **argv) { printf("hello World."); } Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
10 Vorlesung Software-Reengineering Metriken Größenmetriken Größenmetriken LOC Größenmetriken LOC int main(int argc, char **argv) { printf("hello World."); } Wieviel LOC?
11 Größenmetriken LOC /* * This program prints the message * "Hello World." to stdout. */ int main(int argc, char **argv) { } printf("hello World."); Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
12 Vorlesung Software-Reengineering Metriken Größenmetriken Größenmetriken LOC Größenmetriken LOC /* * This program prints the message * "Hello World." to stdout. */ int main(int argc, char **argv) { printf("hello World."); } Wie wird gezählt? Leerzeilen Kommentare Daten mehrere Anweisungen pro Zeile generierter Code lange Header usw. Leerzeilen und Kommentarzeilen bei LOC nicht mitzählen, dafür Kommentarzeilen CLOC einzeln zählen; dann kann z.b. die Kommentardichte ermittelt werden als CLOC/LOC. Nützlich zum Vergleichen von Projektgrößen, Produktivität, Entwicklung der Projektgröße, Zusammenhang mit Anzahl Fehler Zählen per Modul, per Funktion,...
13 Größenmetriken LOC /* * This function should be documented. * * Author: * Date created: * Date modified: * Version: * */ int main(int argc, char **argv) { printf("hello World."); } Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
14 Größenmetriken Halstead Halstead (1977) Länge N = N 1 + N 2 Vokabular µ = µ 1 + µ 2 Volumen V = N log 2 µ Program Level L est = (2/µ 1 ) (µ 2 /N 2 ) Programmieraufwand E est = V /L est mit µ 1, µ 2 = Anzahl unterschiedlicher Operatoren, Operanden N 1, N 2 = Gesamtzahl verwendeter Operatoren, Operanden + komplexe Ausdrücke und viele Variablen berücksichtigt Ablaufstrukturen unberücksichtigt Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
15 Vorlesung Software-Reengineering Metriken Größenmetriken Größenmetriken Halstead Größenmetriken Halstead Halstead (1977) Länge N = N1 + N2 Vokabular µ = µ1 + µ2 Volumen V = N log 2 µ Program Level Lest = (2/µ1) (µ2/n2) Programmieraufwand Eest = V /Lest mit µ1, µ2 = Anzahl unterschiedlicher Operatoren, Operanden N1, N2 = Gesamtzahl verwendeter Operatoren, Operanden + komplexe Ausdrücke und viele Variablen berücksichtigt Ablaufstrukturen unberücksichtigt Operanden = Variablen, Konstanten, Literale Operatoren = Aktionen, bzw. alles andere außer Daten (+, *, while, for,... ) Program Level = Größe der minimalen Implementierung / Größe der tatsächlichen Implementierung abgeleitete Halstead-Metriken umstritten. Halstead: Zeitaufwand T = E / 18 Sekunden
16 i n t i, j, t ; i f ( n < 2 ) r e t u r n ; f o r ( i = 0 ; i < n 1; i ++ ) { f o r ( j = i + 1 ; j < n ; j ++ ) { i f ( a [ i ] > a [ j ] ) { t = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = t ; } } } < = > -, ; ( ) [ ] { } + ++ for if int return a i j n t µ 1 = 18, µ 2 = 8, N 1 = 56, N 2 = 31 V = N log 2 (µ) = 87 log 2 (26) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
17 i n t i, j, t ; Vorlesung Software-Reengineering Metriken Größenmetriken i f ( n < 2 ) return ; f o r ( i = 0 ; i < n 1; i ++ ) { f o r ( j = i + 1 ; j < n ; j ++ ) { i f ( a [ i ] > a [ j ] ) { t = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = t ; } } } < = > -, ; ( ) [ ] { } + ++ for if int return a i j n t µ1 = 18, µ2 = 8, N1 = 56, N2 = 31 V = N log 2(µ) = 87 log 2(26) Wie werden Operanden + Operatoren definiert? z.b. Operator = Token, Operand = Literal und Bezeichner
18 Größenmetriken weitere weitere: Anzahl Module Anzahl Operatoren, Operanden, Schlüsselworte Anzahl Parameter Anzahl/Umfang von Klonen durchschnittliche Länge von Bezeichnern... Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
19 Strukturmetriken Eigenschaften des Kontrollflussgraphen Eigenschaften des Aufrufgraphen (Größe, Tiefe, Breite) Modulkohäsion, Modulkopplung (Abhängigkeiten) OO-Metriken Daten, Datenstrukturen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
20 Strukturmetriken Kontrollflussgraph Eigenschaften des Kontrollflussgraphen Anzahl Knoten Anzahl Kanten maximale Tiefe abgeleitete Maße Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
21 Komplexitätsmetriken McCabe Zyklomatische Komplexität (McCabe, 1976): maximale Anzahl unabhängiger zyklischer Pfade in stark verbundenen Graphen. V (G) = #Kanten #Knoten +1 a oder einfacher: V (g) = #Binärverzweigungen +1 + einfach zu berechnen Komplexität von Anweisungen unberücksichtigt a Kontrollflussgraphen werden erst zu stark verbundenen Graphen durch künstliche Kante von Exit zu Entry #Kanten = tatsächliche Kanten + 1 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
22 Vorlesung Software-Reengineering Metriken Komplexitätsmetriken Komplexitätsmetriken McCabe Komplexitätsmetriken McCabe Zyklomatische Komplexität (McCabe, 1976): maximale Anzahl unabhängiger zyklischer Pfade in stark verbundenen Graphen. V (G) = #Kanten #Knoten +1 a oder einfacher: V (g) = #Binärverzweigungen +1 + einfach zu berechnen Komplexität von Anweisungen unberücksichtigt a Kontrollflussgraphen werden erst zu stark verbundenen Graphen durch künstliche Kante von Exit zu Entry #Kanten = tatsächliche Kanten + 1 Zyklomatische Komplexität: maximale Anzahl unabhängiger zyklischer Pfade in stark verbundenen Graphen (strongly connected graphs). Stark verbundener Graph: Jeder Knoten ist von jedem anderen Knoten erreichbar. Wir nehmen an, jede Kante hat eine eindeutige Nummer. Jeder Pfad in einem Graph mit e Kanten kann durch ein e-tupel (i 1, i 2,..., i e ) repräsentiert werden, bei dem der Index i j angibt, wie oft die j-te Kante im Pfad vorkommt. Ein Pfad p ist eine Linearkombination von Pfaden p 1,..., p n, wenn es ganze Zahlen a 1,..., a n gibt, so dass p = P a i p i ist, wobei die Pfade wie oben kodiert sind. Eine Menge von Pfaden ist linear unabhängig, wenn kein Pfad eine lineare Kombination der anderen Pfade in der Menge ist. Die Basismenge von Zyklen ist die maximal große Menge von linear unabhängigen Zyklen. Jeder Pfade eines zyklischen Graphen lässt sich als Linearkombination von Pfaden der Basismenge beschreiben. Die Basismenge ist nicht notwendigerweise eindeutig. Allerdings ist die Kardinalität der Menge eindeutig. Sie wird zyklomatische Komplexität genannt und beträgt: e n + 1. Kontrollflussgraphen sind keine stark verbundenen Graphen, können jedoch leicht in einen solchen umgewandelt werden, indem der Exit-Knoten mit dem Entry-Knoten verbunden wird. Damit erhöht sich die Anzahl der Kanten um eins, so dass die zyklomatische Komplexität e n + 2 beträgt.
23 Komplexitätsmetriken McCabe i n t i, j, t ; i f ( n < 2 ) r e t u r n ; f o r ( i = 0 ; i < n 1; i ++ ) { f o r ( j = i + 1 ; j < n ; j ++ ) { i f ( a [ i ] > a [ j ] ) { t = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = t ; } } } Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
24 Vorlesung Software-Reengineering Metriken Komplexitätsmetriken Komplexitätsmetriken McCabe Komplexitätsmetriken McCabe i n t i, j, t ; i f ( n < 2 ) return ; f o r ( i = 0 ; i < n 1; i ++ ) { f o r ( j = i + 1 ; j < n ; j ++ ) { i f ( a [ i ] > a [ j ] ) { t = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = t ; } } } V (g) = = 5
25 Komplexitätsmetriken McCabe Empirische Untersuchungen über Zusammenhang zyklomatische Komplexität und Wartungsaufwand: (Fenton und Ohlsson 2000): Korrelation von Fehlern und ZK vor Release (nicht jedoch nach Release) (Grady 1994): Korrelation von Änderungshäufigkeit und ZK; schlägt ZK 15 als Qualitätsziel vor Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
26 SEI-Kategorisierung Cyclomatic Complexity Risk Evaluation 1-10 a simple program, without much risk more complex, moderate risk complex, high risk program > 50 untestable program (very high risk) body.html Einsatz z.b. bei Qualitätssicherung für Software des Zugtunnels England-Frankreich schreibt für Prozeduren ZK 20 und LOC 50 vor (Bennett 1994). Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
27 McCabe-Beispiel c a s e A i s when A => i := 1 ; when B => i := 2 ; when C => i := 3 ; when D => i := 4 ; when E => i := 5 ; end c a s e ; S : a r r a y ( ) o f S t r i n g := ( A, B, C, D, E ) ; i := 1 ; l o o p e x i t when S ( i ) = A ; i := i + 1 ; end l o o p ; } o = new... ;... o. mymethod ( ) ; Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
28 Strukturmetriken Kopplung und Kohäsion starke Kopplung schwache Kohäsion schwache Kopplung starke Kohäsion Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
29 Strukturmetriken OO OO-Metriken (Chidamber 1994; Chidamber und Kemerer 1994): WMC - weighted methods per class DIT - depth of inheritance tree NOC - number of children CBO - coupling between objects (uses, used-by) RFC - response for a class (#own + #called methods) LCOM - lack of cohesion in methods Metriken pro Klasse Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
30 Vorlesung Software-Reengineering Metriken Objektorientierte Metriken Strukturmetriken OO Strukturmetriken OO OO-Metriken (Chidamber 1994; Chidamber und Kemerer 1994): WMC - weighted methods per class DIT - depth of inheritance tree NOC - number of children CBO - coupling between objects (uses, used-by) RFC - response for a class (#own + #called methods) LCOM - lack of cohesion in methods Metriken pro Klasse WMC: Anzahl Klassenmethoden, optional gewichtet nach Größe oder Komplexität DIT: Länge des Weges von der Wurzel bis zur Klasse (tiefe Hierarchie ist fehleranfällig) NOC: Anzahl direkter Unterklassen, hohe Zahl ist Indikator für gute Wiederverwendung CBO: Anzahl Klassen, mit denen eine Klasse gekoppelt ist (per uses, used-by); hoher Kopplungsgrad ist fehleranfällig, niedriger Kopplungsgrad fördert die Wiederverwendbarkeit RFC: Anzahl Methoden, die potentiell ausgeführt werden können, wenn das Objekt auf eine eingehende Nachricht reagiert; RFC = #methods in the class + #remote methods directly called by methods in the class; bevorzugt: rekursiv hoher RFC führt zu mehr Fehlern, deutet auf hohe Komplexität und schlechte Verständlichkeit hin LCOM: hoher Wert heißt, Klasse führt mehrere Funktionen aus; deutet auf schlechtes Design, hohe Komplexität und hohe Fehlerwahrscheinlichkeit hin; Klasse sollte möglicherweise überarbeitet werden; niedriger Wert deutet auf gute Kapselung hin LCOM1 = max(p-q, 0), P=Anzahl der Paare von Methoden einer Klasse, die disjunkte Instanzvariablen benutzen; Q=Anzahl... die mind. 1 Variable gemeinsam benutzen LCOM2 = 1 - sum(ma)/(m*a) mit m=#methoden, a=#attribute, ma=#methoden die ein Attribut ansprechen LCOM3 = (m-sum(ma)/a)/(m-1) 0 = hohe Kohäsion, 1 = keine Kohäsion, > 1 = Attribute werden nicht benutzt
31 Strukturmetriken OO B A D C +m3() +m1() +m2() E +m4() F G H I J Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
32 Vorlesung Software-Reengineering Metriken Objektorientierte Metriken Strukturmetriken OO Strukturmetriken OO B A D C +m1() +m2() E +m3() +m4() F G H I J CBO(A) = 4 RFC(A) = 4, RFC(B) = 0, RFC(C) = 1
33 LCOM M2 M1 M3 A2 A3 M9 A1 A4 M4 M8 A6 A5 M7 M6 M5 A Attribut M Methode Referenz Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
34 Empirische Studien Wie kann Qualität (Wartbarkeit, Testbarkeit,... ) gemessen werden? Bewertung der Qualität durch Entwickler Anwendung verschiedener Metriken Bestimmung der Korrelation Kombination der Metriken (orthogonal) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
35 Empirische Studien Maintainability Index (Coleman/Oman, 1994): MI 1 = ln(v ) 0.23 V (g ) 16.2 ln(loc) MI 2 = MI sin 2.46 percm V = average Halstead Volume per module V (g ) = average extended cyclomatic complexity per module LOC = average LOC per module percm = average percent of lines of comment per module MI 2 nur bei sinnvoller Kommentierung MI < 65 schlechte / MI 85 gute Wartbarkeit Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
36 Vorlesung Software-Reengineering Metriken Empirische Studien Empirische Studien Empirische Studien Maintainability Index (Coleman/Oman, 1994): MI1 = ln(v ) 0.23 V (g ) 16.2 ln(loc) MI2 = MI sin 2.46 percm V = average Halstead Volume per module V (g ) = average extended cyclomatic complexity per module LOC = average LOC per module percm = average percent of lines of comment per module MI2 nur bei sinnvoller Kommentierung MI < 65 schlechte / MI 85 gute Wartbarkeit nicht sinnvolle Kommentierung: wenn Kommentare nicht zum Code passen oder viel Code auskommentiert ist oder große Kommentarblöcke ohne relevante Informationen vorhanden sind. Liso (2001): statt konstantem Faktor 2.46 abhängig von Programmiersprache wählen Extended Cyclomatic Complexity: zusammengesetzte logische Ausdrücke werden berücksichtigt, AND und OR erhöhen die ECC jeweils um 1
37 Empirische Studien Maintainability model (Muthanna u. a. 2000): SMI = FAN DF MC FAN: average number of external calls from the module DF : total number of outgoing and incoming data flow for the module MC: average McCabe for the module Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
38 Empirische Studien OO Wartbarkeit korreliert mit (Dagpinar und Jahnke 2003) TNOS - total number of statements NIM - number of instance methods FOUT - fan out, number of classes directly used nicht Vererbungshierarchie nicht Kohäsion nicht indirekte Kopplung nicht Kopplung über used-by Beziehungen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
39 Empirische Studien OO Testbarkeit korreliert vor allem mit (Bruntink und van Deursen 2004): LOCC - lines of code per class FOUT - fan out, number of classes directly used RFC - response for class Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
40 Bewertungsschema von Simon u. a. (2006) Aufwand Bauchgefühl Code Quality Index manuelles Review Objektivität, Genauigkeit statisch ermittelter, objektiver Code-Quality-Index 52 Qualitätsindikatoren (Typen von Bad Smells) Auswirkungen der Qualitätsindikatoren auf Qualitätseigenschaften: Analysierbarkeit, Modifizierbarkeit, Stabilität, Prüfbarkeit, Austauschbarkeit, Zeitverhalten, Verbrauchsverhalten Häufigkeitsverteilung für mehr als 120 industrielle Systeme geschrieben in C++ und Java Industriestandard Quality-Benchmark-Level Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
41 Quality-Benchmark-Level 1 Rudimentary: Code ist übersetz- und linkbar (nicht notwendigerweise ausführbar) 2 Basic: wirtschaftliche Anpassbarkeit gegeben Analysierbarkeit und Stabilität besonders gewichtig 3 Extended: gute technische Qualität zusätzlich hohe Gewichtung von Zeitverhalten und Verbrauchsverhalten 4 Advanced: hervorragende technische Qualtität zusätzlich hohe Gewichtung von Prüfbarkeit und Modifizierbarkeit 5 Complete: perfekte technische Qualtität zusätzlich hohe Gewichtung von Austauschbarkeit Bei jedem Ebenenwechsel: geringere Toleranz für Verstöße Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
42 Weitere Anwendungen Hinweise auf Designfehler Klonerkennung (Mayrand) Mustersuche (Reduzierung des Suchraums) Suche nach Aspekten (FIN)... Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
43 Tools Freie Tools: Tool Sprachen Metriken clc (Perl) C/C++ LOC, Comments, #Statements cccc C++, Java LOC, McCabe, OO,... Metrics C LOC, Comments, Halstead, McCabe MAS-C4 C LOC, Comments, Halstead, McCabe, Nesting, Fan-In/-Out, Data Flow,... JMT Java OO-Metriken Eclipse Plugins Java LOC, McCabe, OO,... Kommerzielle: z.b. McCabeQA, CMT, TAU/Logiscope, SDMetrics, CodeCheck, Krakatau Metrics, RSM, Together,... Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
44 Wiederholungs- und Vertiefungsfragen I Was ist eine Software-Metrik? Welche Produktmetriken kennen Sie (für die Größe, Komplexität und die Struktur)? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
45 Bennett 1994 Bennett, P.A.: Software Development for the Channel Tunnel: a Summary. In: High Integrity Systems 1 (1994), Nr. 2, S Bruntink und van Deursen 2004 Bruntink, M. ; Deursen, A. van: Predicting Class Testability Using Object-Oriented Metrics. In: Proceedings of the Fourth IEEE International Workshop on Source Code Analysis and Manipulation, IEEE Computer Society Press, September 2004 Chidamber 1994 Chidamber, S.: Metrics Suite For Object Oriented Design, M.I.T, Cambridge, Dissertation, 1994 Chidamber und Kemerer 1994 Chidamber, S.R. ; Kemerer, C.F.: A Metrics Suite for Object-Oriented Design. In: IEEE Computer Society Transactions on Software Engineering 20 (1994), S Dagpinar und Jahnke 2003 Dagpinar, M. ; Jahnke, J.: Predicting Maintainability with Object-Oriented Metrics An Empirical Comparison. In: Working Conference on Reverse Engineering, IEEE Computer Society Press, 2003 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
46 Fenton und Pfleeger 1996 Fenton, N. ; Pfleeger, S.: Software Metrics: A Rigorous and Practical Approach. 2nd. London : International Thomson Computer Press, 1996 Fenton und Ohlsson 2000 Fenton, Norman E. ; Ohlsson, Niclas: Quantitative Analysis of Faults and Failures in a Complex Software System. In: IEEE Computer Society Transactions on Software Engineering 26 (2000), August, Nr. 8, S Grady 1994 Grady, R.B.: Successfully Applying Software Metrics. In: IEEE Computer 27 (1994), September, Nr. 9, S Muthanna u. a Muthanna, S. ; Kontogiannis, K. ; Ponnambalam, K. ; Stacey, B.: A Maintainability Model for Industrial Software Systems Using Design Level Metrics. In: Working Conference on Reverse Engineering, IEEE Computer Society Press, 2000 Simon u. a Simon, Frank ; Seng, Olaf ; Mohnhaupt, Thomas: Code-Quality-Management Technische Qualität industrieller Softwaresysteme transparent und vergleichbar gemacht. dpunkt.verlag, 2006 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 36
Vorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2009/10 Überblick I 1 Metriken I 1 Metriken
Analysierende Testverfahren
Software-Metriken Kontrolle der Software-Entwicklung: Pläne und Standards einrichten messen der Ausführung gegen Pläne und Standards Analysierende Testverfahren korrigieren der Abweichungen Eine Software-Metrik
Software-Metriken. Dipl.-Ing.(BA) Henning Sievert <[email protected]> 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
Softwaremetriken. 29. April 2015
Softwaremetriken 29. April 2015 Was sind Softwaremetriken? [FP] Softwaremetriken messen Qualität. besser: Softwaremetriken definieren, wie Kenngrößen der Software oder des Softwareentwicklungsprozesses
Statische Code-Analyse: Software-Metriken Fernstudium Master Wirtschaftsinformatik Formale Methoden
Statische Code-Analyse: Software-Metriken Fernstudium Master Wirtschaftsinformatik Formale Methoden Isabell Füll Grömmsche Koppel 15 24111 Kiel [email protected] Amselweg 3 24222 Schwentinental
Software-Metriken. B. Sc. Michael Thomas. Seminar Software-Entwurf WS 2004/05. <[email protected]>
Software-Metriken B. Sc. Michael Thomas Seminar Software-Entwurf WS 2004/05 Gliederung Einführung Traditionelle Metriken / Grundeinheiten Lines of Code Zyklomatische Komplexität
Prof. Dr. Jan Jürjens
Vorlesung () Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV Teil 2.2: Softwaremetriken v. 08.12.2014 1 Einordnung Softwaremetriken Modellgetriebene SW-Entwicklung Qualitätsmanagement
Softwaremetriken. 15. Mai 2013
Softwaremetriken 15. Mai 2013 Was sind Softwaremetriken? Softwaremetriken messen Qualität. besser: Softwaremetriken definieren, wie Kenngrößen der Software oder des Softwareentwicklungsprozesses gemessen
Softwaremetriken verstehen und nutzen
Softwaremetriken verstehen und nutzen Kore Nordmann , Manuel Pichler 17. November 2009 Über uns Kore Nordmann Langzeit PHP Entwickler Speaker auf diversen
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
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks Folie 2 Fragen zur Wiederholung Wozu sind Metriken gut? Welche
Software Engineering. Verwendung von Softwaremetriken
Software Engineering Verwendung von Softwaremetriken Die Inhalte der Vorlesung wurden primär auf Basis der jeweils angegebenen Literatur erstellt. Darüber hinaus finden sich ausgewählte Beispiele zur Softwareentwicklung
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
Software Engineering. 13. Automatische Code Analyse. Franz-Josef Elmer, Universität Basel, WS 2005/06
Software Engineering 13. Automatische Code Analyse Franz-Josef Elmer, Universität Basel, WS 2005/06 Software Engineering: 13. Automatische Code Analyse 2 Code Analyse: Manuell versus Automatisch Manuelle
Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2013/14 Überblick I Software-Metriken Software-Metriken Software-Metriken
Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2011/12 Überblick I Software-Metriken Software-Metriken: Software-Metriken
Management von Softwaresystemen Systembewertung: Metriken und Prozess
Management von Softwaresystemen Systembewertung: Metriken und Prozess Referent: Vadym Alyokhin Betreuer: Florian Deißenböck Übersicht Definition Einführung in die Messtheorie Meilensteine von Software-Metriken
Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Software-Metriken Software-Metriken: Software-Metriken
SE2-6. Übung Johannes Bürdek
SE2-6. Übung 11.12.2014 Johannes Bürdek [email protected] Fragen und Support: [email protected] oder ins Forum: https://moodle.tu-darmstadt.de/mod/forum/view.php?id=56674 ES Real-Time
Softwaremessung und -metrik
Softwaremessung und -metrik AW1 Votrag - Daniel Wojtucki Hamburg, 20. Januar 2010 Inhalt 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung
8. Metriken. Idee von Maßsystemen Halstead live Variables Variablenspanne McCabe-Zahl LCOM*
8. Metriken Idee von Maßsystemen Halstead live Variables Variablenspanne McCabe-Zahl LCOM* Stephan Kleuker 371 Nutzung von Maßsystemen bisherigen Prüfverfahren sind aufwändig, besteht Wunsch, schneller
0/28. Software-Metriken. Andreas Zeller. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken
0/28 Software-Metriken Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken Software-Metriken 1/28 Zu den Aufgaben eines Managers gehört die Kontrolle der Software-Entwicklung:
Java Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
Softwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
Software-Metriken: Purismus vs. Pragmatismus
Software-Metriken: Purismus vs. Pragmatismus Web DevCon Manuel Pichler 17.10.2011 Software-Metriken: Purismus vs. Pragmatismus 1 / 42 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im Web-Umfeld
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
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
Inhalt. Zusammenfassung Abstract LOC. Seminar Qualitative und Quantitative Methoden im Software Engineering
Erstellt von Hans Jörg Günther auf Basis eines Vortrags von Oliver Feuser Seite 1 von 1 Seminar Qualitative und Quantitative Methoden im Software Engineering Ausarbeitung zum Vortrag Methoden und Metriken
Redokumentation. COBOL-Programm HPROG1. Reichenhainer Straße 29a Chemnitz. Erreichbar unter: 0371/
COBOL-Programm HPROG1 Redokumentation Erstellt von: pro et con Innovative Informatikanwendungen GmbH Reichenhainer Straße 29a 09126 Chemnitz Erreichbar unter: 0371/270951-0 Stand: 04.09.2018 pro et con
Verwendung von objektorientierten Metriken zur Softwarequalitätsvorhersage. Arno Egger, 0450419
Verwendung von objektorientierten Metriken zur Softwarequalitätsvorhersage Arno Egger, 0450419 Metriken in OO-Programmierung Traditionelle Metriken (Cyclomatic Complexity, Lines Of Code etc.) auf OO-Methoden
Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer
Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 24 Software-Metriken Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität
Codequalitätskontrolle mit SonarQube
Codequalitätskontrolle mit SonarQube Wer ist das? Josha von Gizycki Goslarer Seit 2008 bei der Java, Oracle, Webentwicklung, Hacker, Zocker, Rocker Codequalitätskontrolle mit SonarQube - 2 Warum der? Codequalitätskontrolle
Kapitel 5: Statische Analyse
Kapitel 5: Statische Analyse Inhalt 5.1 Grundlagen 5.2 Analyse von Programmen 5.3 Analyse von Algorithmen 5.4 Analyse von Spezifikationen, Entwürfen und Prüfvorschriften Schlüsselbegriffe Statische Prüfung
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS
DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS Master Seminar Empirical Software Engineering Anuradha Ganapathi Rathnachalam Institut für Informatik Software & Systems Engineering Agenda Introduction
Softwarequalität. Gabriele Taentzer Philipps-Universität Marburg. Sommersemester 2016
Softwarequalität Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2016 Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter: Gabriele Taentzer, Stefan John Kontakt: [email protected],
Vorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2009/10 Überblick I 1 I 1 Arten von Reengineering-Projekten
Messen & Metriken Ist Qualität messbar? André Fleischer
Messen & Metriken Ist Qualität messbar? 1 1995 2000 Studium Technische Informatik (HAW Hamburg) 2001 2007 Lufthansa System IT Consultant, Software Architekt Seit 2007, otto group Otto Group, Software Architekt
Vorlesung Software Engineering
Vorlesung Software Engineering Kapitel 4 Qualitätsmanagement und Software-Metriken Software-Metriken mittels Werkzeug Understand - 1 - Neues Projekt anlegen New Project... - 2 - Neues Projekt anlegen Auswahl
Softwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
Benchmark: Sicherheitslücken & Compliance-
Peter Werner TITEL bearbeiten Dr. Markus Schumacher Benchmark: Sicherheitslücken & Compliance- Risiken Click to im edit ABAP-Code Master text styles von SAP-Anwendungen 2011 2012 Virtual Forge GmbH www.virtualforge.com
Bionic. Wie sicher ist Androids Grundlage? Dr. Christoph Zimmermann Chemnitzer Linux Tage,
Bionic Wie sicher ist Androids Grundlage? Dr. Christoph Zimmermann Chemnitzer Linux Tage,10. 3. 2018 Für Luca 2 Inhalt 1. Übersicht 2. ISO 9126 Metriken 3. Angriffsoberflächenanalyse 4. Weitere Beobachtungen
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
Testen und Metriken. Einige Fehler. Fehler vermeiden. Andreas Zeller Universität des Saarlandes Microsoft Research. http://www.st.cs.uni-sb.
Testen und Metriken Andreas Zeller Universität des Saarlandes Microsoft Research http://www.st.cs.uni-sb.de/ Einige Fehler Fehler vermeiden Spezifizieren Beweisen Gegenlesen Testen Module Welche sollte
Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI
Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI Agenda Einordnung des Themas Motivation Quantifizierung Nicht-funktionale
1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
ROOT Tutorial für HEPHY@CERN. D. Liko
ROOT Tutorial für HEPHY@CERN D. Liko Was ist ROOT? Am CERN entwickeltes Tool zur Analyse von Daten Funktionalität in vielen Bereichen Objekte C++ Skriptsprachen Was kann ROOT Verschiedene Aspekte C++ as
Algorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
Software Tests (2) Quellcode Reviews
Software Tests (2) Quellcode Reviews Was ist? Was ist Testen? G. J. Myers, 79: "Testen ist der Prozess, ein Programm mit der Absicht auszuführen, Fehler zu finden. Hetzel 83: "Messung der Softwarequalität"
Softwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester 2006. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2006 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
Data Structures and Algorithm Design
- University of Applied Sciences - Data Structures and Algorithm Design - CSCI 340 - Friedhelm Seutter Institut für Angewandte Informatik Contents 1 Analyzing Algorithms and Problems 2 Data Abstraction
ISO 15504 Reference Model
Process flow Remarks Role Documents, data, tools input, output Start Define purpose and scope Define process overview Define process details Define roles no Define metrics Pre-review Review yes Release
Karlsruhe Institute of Technology [email protected]. Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)
Assuring Grid Accesses in the g-eclipse Project Jie Tao Karlsruhe Institute of Technology [email protected] Die Kooperation von Outline Introduction to g-eclipse Quality Control in g-eclipse Metrics Examples
1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
7. Metriken. Idee von Maßsystemen Halstead live Variables Variablenspanne McCabe-Zahl LCOM*
7. Metriken Idee von Maßsystemen Halstead live Variables Variablenspanne McCabe-Zahl LCOM* Stephan Kleuker 301 Nutzung von Maßsystemen bisherigen Prüfverfahren sind aufwändig, besteht Wunsch, schneller
Codeflow-Analysen und Komplexitätsmessungen an Linuxsystemen. Wolfram Luithardt
Codeflow-Analysen und Komplexitätsmessungen an Linuxsystemen Wolfram Luithardt Inhalt Warum Komplexitätsanalyse? Technische Aspekte Evolution des Linuxkernels Weitere Analysemethoden Wolfram Luithardt,
IT-Kennzahlen und Softwaremetriken - Proseminar - im Sommersemester 2010
IT-Kennzahlen und Softwaremetriken - Proseminar - im Sommersemester 2010 - Die Zyklomatische Komplexität - Ein Komplexitätsmaß Gliederung Teil 1 1) Wichtigkeit eines Komplexitätsmaßes 2) Die Zyklomatische
Informatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener ([email protected]) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik
Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
