Software-Metriken: Purismus vs. Pragmatismus

Größe: px
Ab Seite anzeigen:

Download "Software-Metriken: Purismus vs. Pragmatismus"

Transkript

1 Software-Metriken: Purismus vs. Pragmatismus Web DevCon Manuel Pichler Software-Metriken: Purismus vs. Pragmatismus 1 / 42

2 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im Web-Umfeld Autor hinter einer Reihe von QA-Tools Qafoo passion for software quality Software-Metriken: Purismus vs. Pragmatismus 2 / 42

3 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im Web-Umfeld Autor hinter einer Reihe von QA-Tools Qafoo passion for software quality Software-Metriken: Purismus vs. Pragmatismus 2 / 42

4 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im Web-Umfeld Autor hinter einer Reihe von QA-Tools Qafoo passion for software quality Software-Metriken: Purismus vs. Pragmatismus 2 / 42

5 Über mich Mitgründer von Diplominformatiker Mehr als 10 Jahre Erfahrung im Web-Umfeld Autor hinter einer Reihe von QA-Tools Qafoo passion for software quality We help people to create high quality PHP applications. Software-Metriken: Purismus vs. Pragmatismus 2 / 42

6 Outline Was sind Metriken? Klassische Softwaremetriken Objektorientierte Softwaremetriken Grenzwerte Auswertung Zusammenfassung Software-Metriken: Purismus vs. Pragmatismus 3 / 42

7 Softwaremetriken Eine Softwaremetrik ist eine Maßzahl für ein bestimmtes Qualitätsmerkmal von Software Funktionen zur Ermittlung von Kennzahlen eines Softwareartefakts (Wikipedia) You cannot control what you cannot measure. (Tom DeMarco) Software-Metriken: Purismus vs. Pragmatismus 4 / 42

8 Softwaremetriken Eine Softwaremetrik ist eine Maßzahl für ein bestimmtes Qualitätsmerkmal von Software Funktionen zur Ermittlung von Kennzahlen eines Softwareartefakts (Wikipedia) You cannot control what you cannot measure. (Tom DeMarco) Software-Metriken: Purismus vs. Pragmatismus 4 / 42

9 Softwaremetriken Eine Softwaremetrik ist eine Maßzahl für ein bestimmtes Qualitätsmerkmal von Software Funktionen zur Ermittlung von Kennzahlen eines Softwareartefakts (Wikipedia) You cannot control what you cannot measure. (Tom DeMarco) Software-Metriken: Purismus vs. Pragmatismus 4 / 42

10 Wer macht hier kein PHP? Software-Metriken: Purismus vs. Pragmatismus 5 / 42

11 PHP to whatever translation table $variable $this->method() foreach ( $l as $s ) array(array(1, 2)) public function... namespace foo\bar; <?php variable method() OR this.method() for ( String s : l ) for ( k in l ) s = l[k] new int[][] {{1, 2}} [[1, 2]] public [void int..]... package foo.bar; namespace foo.bar { IGNORE Software-Metriken: Purismus vs. Pragmatismus 6 / 42

12 Ist aber auch egal die meisten Konzepte wurden bereits vor Dekaden entwickelt Software-Metriken: Purismus vs. Pragmatismus 7 / 42

13 Outline Was sind Metriken? Klassische Softwaremetriken Objektorientierte Softwaremetriken Grenzwerte Auswertung Zusammenfassung Software-Metriken: Purismus vs. Pragmatismus 8 / 42

14 Umfangsmetriken Summen über Softwareartefakte Lines Of * LOC Lines Of Code ELOC Executable Lines Of Code CLOC Comment Lines Of Code NCLOC Non-Comment Lines Of Code Number Of * NOC Number Of Classes NOM Number Of Methods NOP Number Of Packages Software-Metriken: Purismus vs. Pragmatismus 9 / 42

15 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

16 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

17 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

18 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

19 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

20 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

21 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

22 Lines Of *, Number Of * 1 2 namespace foo\bar ; 3 4 a b s t r a c t c l a s s FooBar { 5 a b s t r a c t f u n c t i o n bar ( ) ; 6 } 7 8 c l a s s Foo e x t e n d s FooBar { 9 / Does t h i s... / 10 p u b l i c f u n c t i o n bar ( ) {} 11 / Does t h a t... / 12 p u b l i c f u n c t i o n baz ( ) {} 13 } c l a s s Bar e x t e n d s Foo { 16 p u b l i c f u n c t i o n f o o ( Foo $ f ) {} 17 } Lines Of * LOC 16 ELOC 3 CLOC 2 NCLOC 14 Number Of * NOC 3 NOM 4 NOP 1 Software-Metriken: Purismus vs. Pragmatismus 10 / 42

23 Komplexitätsmetriken Maß für Komplexität sind Kontrollstrukturen if, elseif, for, while, foreach, catch, case, xor, and, or, &&,,?: Cyclomatic Complexity (CCN) Anzahl der Verzweigungen NPath Complexity Anzahl der Ausführungspfade Berücksichtigt die Struktur von Blöcken Software-Metriken: Purismus vs. Pragmatismus 11 / 42

24 Cyclomatic Complexity Wichtig CCN == Anzahl der Verzweigungen Software-Metriken: Purismus vs. Pragmatismus 12 / 42

25 Cyclomatic Complexity Wichtig CCN == Anzahl der Verzweigungen Software-Metriken: Purismus vs. Pragmatismus 12 / 42

26 Cyclomatic Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } CCN: 0 Software-Metriken: Purismus vs. Pragmatismus 13 / 42

27 Cyclomatic Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($x) CCN: 1 Software-Metriken: Purismus vs. Pragmatismus 13 / 42

28 Cyclomatic Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($x) if($y) CCN: 2 Software-Metriken: Purismus vs. Pragmatismus 13 / 42

29 Cyclomatic Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($x) if($y) if($z) CCN: 3 Software-Metriken: Purismus vs. Pragmatismus 13 / 42

30 Cyclomatic Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($x) if($y) if($z) CCN: 4 Software-Metriken: Purismus vs. Pragmatismus 13 / 42

31 NPath Complexity Wichtig CCN == Anzahl der Verzweigungen NPath == Anzahl der Ausführungspfade Software-Metriken: Purismus vs. Pragmatismus 14 / 42

32 NPath Complexity Wichtig CCN == Anzahl der Verzweigungen NPath == Anzahl der Ausführungspfade Software-Metriken: Purismus vs. Pragmatismus 14 / 42

33 NPath Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } NPath: 0 Software-Metriken: Purismus vs. Pragmatismus 15 / 42

34 NPath Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($x) NPath: 0 Software-Metriken: Purismus vs. Pragmatismus 15 / 42

35 NPath Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($y) false if($x) true if($y) NPath: 0 Software-Metriken: Purismus vs. Pragmatismus 15 / 42

36 NPath Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } false if($y) false true if($z) if($z) if($x) true if($y) false true if($z) if($z) NPath: 0 Software-Metriken: Purismus vs. Pragmatismus 15 / 42

37 NPath Complexity σ 1 2 c l a s s Foo { 3 p u b l i c f u n c t i o n f o o ( $x, $y, $z ) { 4 i f ( $x ) { $y = $x ; } 5 i f ( $y ) { $z += $y $x ; } 6 i f ( $z ) { echo $z ; } 7 } 8 } if($z) false if($y) true false false if($z) if($x) true if($z) false true true false false if($y) true true if($z) true NPath: 8 false Software-Metriken: Purismus vs. Pragmatismus 15 / 42

38 Grenzwerte in PHPMD Cyclomatic Complexity 1-4: low, 5-7: medium, 8-10: high, 11+: hell NPath Complexity 200: Ab hier wird es richtig schwer Software-Metriken: Purismus vs. Pragmatismus 16 / 42

39 Outline Was sind Metriken? Klassische Softwaremetriken Objektorientierte Softwaremetriken Grenzwerte Auswertung Zusammenfassung Software-Metriken: Purismus vs. Pragmatismus 17 / 42

40 Chidamber & Kemerer Weighted Methods per Class (WMC) Summe der Komplexität aller Methoden Grenzwert Number Of Children (NOC) Anzahl der direkten Ableitungen Falsch gewählte Abstraktion Depth of Inheritance Tree (DIT) Vererbungsstrukturen erhöhen die Komplexität Grenzwert 5 Lack of Cohesion of Methods (LCOM) Deplazierte Attribute und Methoden Werte > 1 == Klasse besteht aus $N Komponenten Software-Metriken: Purismus vs. Pragmatismus 18 / 42

41 Chidamber & Kemerer Weighted Methods per Class (WMC) Summe der Komplexität aller Methoden Grenzwert Number Of Children (NOC) Anzahl der direkten Ableitungen Falsch gewählte Abstraktion Depth of Inheritance Tree (DIT) Vererbungsstrukturen erhöhen die Komplexität Grenzwert 5 Lack of Cohesion of Methods (LCOM) Deplazierte Attribute und Methoden Werte > 1 == Klasse besteht aus $N Komponenten Software-Metriken: Purismus vs. Pragmatismus 18 / 42

42 Chidamber & Kemerer Weighted Methods per Class (WMC) Summe der Komplexität aller Methoden Grenzwert Number Of Children (NOC) Anzahl der direkten Ableitungen Falsch gewählte Abstraktion Depth of Inheritance Tree (DIT) Vererbungsstrukturen erhöhen die Komplexität Grenzwert 5 Lack of Cohesion of Methods (LCOM) Deplazierte Attribute und Methoden Werte > 1 == Klasse besteht aus $N Komponenten Software-Metriken: Purismus vs. Pragmatismus 18 / 42

43 Chidamber & Kemerer Weighted Methods per Class (WMC) Summe der Komplexität aller Methoden Grenzwert Number Of Children (NOC) Anzahl der direkten Ableitungen Falsch gewählte Abstraktion Depth of Inheritance Tree (DIT) Vererbungsstrukturen erhöhen die Komplexität Grenzwert 5 Lack of Cohesion of Methods (LCOM) Deplazierte Attribute und Methoden Werte > 1 == Klasse besteht aus $N Komponenten Software-Metriken: Purismus vs. Pragmatismus 18 / 42

44 Chidamber & Kemerer Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass WMC 0 DIT 0 NOC 1 BaseClass WMC 2 DIT 1 NOC 1 SubClass WMC 1 DIT 2 NOC 0 Dependent WMC 2 DIT 0 NOC 0 Software-Metriken: Purismus vs. Pragmatismus 19 / 42

45 Chidamber & Kemerer Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass WMC 0 DIT 0 NOC 1 BaseClass WMC 2 DIT 1 NOC 1 SubClass WMC 1 DIT 2 NOC 0 Dependent WMC 2 DIT 0 NOC 0 Software-Metriken: Purismus vs. Pragmatismus 19 / 42

46 Chidamber & Kemerer Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass WMC 0 DIT 0 NOC 1 BaseClass WMC 2 DIT 1 NOC 1 SubClass WMC 1 DIT 2 NOC 0 Dependent WMC 2 DIT 0 NOC 0 Software-Metriken: Purismus vs. Pragmatismus 19 / 42

47 Chidamber & Kemerer Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass WMC 0 DIT 0 NOC 1 BaseClass WMC 2 DIT 1 NOC 1 SubClass WMC 1 DIT 2 NOC 0 Dependent WMC 2 DIT 0 NOC 0 Software-Metriken: Purismus vs. Pragmatismus 19 / 42

48 Chidamber & Kemerer Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass WMC 0 DIT 0 NOC 1 BaseClass WMC 2 DIT 1 NOC 1 SubClass WMC 1 DIT 2 NOC 0 Dependent WMC 2 DIT 0 NOC 0 Software-Metriken: Purismus vs. Pragmatismus 19 / 42

49 Abhängigkeiten Software-Metriken: Purismus vs. Pragmatismus 20 / 42

50 Afferent- & Efferent-Coupling Afferent Coupling (Ca) Eingehende Abhängigkeiten anderer Komponenten Großer Einfluss aus die Stabilität des Systems Efferent Coupling (Ce) Ausgehende Abhängigkeiten: Vererbung, Parameter, Exceptions, Allokationen Abhängig von Stabilität anderer Komponenten Software-Metriken: Purismus vs. Pragmatismus 21 / 42

51 CE & CA Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass Ce 0 Ca 1 BaseClass Ce 1 Ca 2 SubClass Ce 1 Ca 1 Dependent Ce 2 Ca 0 Software-Metriken: Purismus vs. Pragmatismus 22 / 42

52 CE & CA Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass Ce 0 Ca 1 BaseClass Ce 1 Ca 2 SubClass Ce 1 Ca 1 Dependent Ce 2 Ca 0 Software-Metriken: Purismus vs. Pragmatismus 22 / 42

53 CE & CA Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass Ce 0 Ca 1 BaseClass Ce 1 Ca 2 SubClass Ce 1 Ca 1 Dependent Ce 2 Ca 0 Software-Metriken: Purismus vs. Pragmatismus 22 / 42

54 CE & CA Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass Ce 0 Ca 1 BaseClass Ce 1 Ca 2 SubClass Ce 1 Ca 1 Dependent Ce 2 Ca 0 Software-Metriken: Purismus vs. Pragmatismus 22 / 42

55 CE & CA Beispiel AbstractClass +bar() BaseClass +bar() +baz() SubClass +foo() Dependent +foo() +bar() AbstractClass Ce 0 Ca 1 BaseClass Ce 1 Ca 2 SubClass Ce 1 Ca 1 Dependent Ce 2 Ca 0 Software-Metriken: Purismus vs. Pragmatismus 22 / 42

56 Frei nach: Viele Wege führen nach Rom Häufig synonym verwendete Bezeichnungen für Ce & Ca FANIN := Ca FANOUT := Ce CBO := Ce Geänderte Semantik im laufe der Zeit Ursprünglich: CBO = (Ce + Ca) Software-Metriken: Purismus vs. Pragmatismus 23 / 42

57 Frei nach: Viele Wege führen nach Rom Häufig synonym verwendete Bezeichnungen für Ce & Ca FANIN := Ca FANOUT := Ce CBO := Ce Geänderte Semantik im laufe der Zeit Ursprünglich: CBO = (Ce + Ca) Software-Metriken: Purismus vs. Pragmatismus 23 / 42

58 Frei nach: Viele Wege führen nach Rom Häufig synonym verwendete Bezeichnungen für Ce & Ca FANIN := Ca FANOUT := Ce CBO := Ce Geänderte Semantik im laufe der Zeit Ursprünglich: CBO = (Ce + Ca) Software-Metriken: Purismus vs. Pragmatismus 23 / 42

59 Frei nach: Viele Wege führen nach Rom Häufig synonym verwendete Bezeichnungen für Ce & Ca FANIN := Ca FANOUT := Ce CBO := Ce Geänderte Semantik im laufe der Zeit Ursprünglich: CBO = (Ce + Ca) Software-Metriken: Purismus vs. Pragmatismus 23 / 42

60 Frei nach: Viele Wege führen nach Rom Häufig synonym verwendete Bezeichnungen für Ce & Ca FANIN := Ca FANOUT := Ce CBO := Ce Geänderte Semantik im laufe der Zeit Ursprünglich: CBO = (Ce + Ca) Software-Metriken: Purismus vs. Pragmatismus 23 / 42

61 Frei nach: Viele Wege führen nach Rom Häufig synonym verwendete Bezeichnungen für Ce & Ca FANIN := Ca FANOUT := Ce CBO := Ce Geänderte Semantik im laufe der Zeit Ursprünglich: CBO = (Ce + Ca) Software-Metriken: Purismus vs. Pragmatismus 23 / 42

62 CodeRank Basiert auf dem Google PageRank Software wird auf eine Graphen abgebildet Knoten (π) je Softwareartefakt Pakete, Klassen, Methoden Kanten (ρ) für jede Beziehung Vererbung, Aufrufe, Parameter, Exceptions Für den CodeRank gilt: CR(π i ) = r r((1 d) + d r r(cr(π r )/ρ r )) Software-Metriken: Purismus vs. Pragmatismus 24 / 42

63 CodeRank AbstractClass 1,0 BaseClass 1,0 Dependent 1,0 Iteration: 0 SubClass 1,0 Software-Metriken: Purismus vs. Pragmatismus 25 / 42

64 CodeRank AbstractClass 1,000 BaseClass 1,425 Dependent 0,150 Iteration: 1 SubClass 0,575 Software-Metriken: Purismus vs. Pragmatismus 25 / 42

65 CodeRank AbstractClass 1,361 BaseClass 0,703 Dependent 0,150 Iteration: 2 SubClass 0,214 Software-Metriken: Purismus vs. Pragmatismus 25 / 42

66 CodeRank AbstractClass 0,747 BaseClass 0,395 Dependent 0,150 Iteration: 3 SubClass 0,214 Software-Metriken: Purismus vs. Pragmatismus 25 / 42

67 CodeRank AbstractClass 0,486 BaseClass 0,395 Dependent 0,150 Iteration: 4 SubClass 0,214 Software-Metriken: Purismus vs. Pragmatismus 25 / 42

68 CodeRank AbstractClass 0,486 BaseClass 0,395 Dependent 0,150 Iteration: 5 SubClass 0,214 Software-Metriken: Purismus vs. Pragmatismus 25 / 42

69 CodeRank Mit dem CodeRank können auch indirekte Abhängigkeiten bewertet werden. Logik mit Einfluss auf das gesamte System kann schnell gefunden werden Äquivalent der Reverse CodeRank Kann mit dem selben Algorithmus berechnet werden Gibt Aufschluss über stark abhängige Komponenten Software-Metriken: Purismus vs. Pragmatismus 26 / 42

70 Outline Was sind Metriken? Klassische Softwaremetriken Objektorientierte Softwaremetriken Grenzwerte Auswertung Zusammenfassung Software-Metriken: Purismus vs. Pragmatismus 27 / 42

71 Grenzwerte Was bedeuten aber Werte wie 4, 8 oder 0,486 nun genau? Die Zahlen allein sagen noch nichts aus Für jede Beurteilung benötigt man einen Kontext Im Fall von Metriken sind das Grenzwerte Aber woher bekommt man sinnvolle Grenzwerte? Software-Metriken: Purismus vs. Pragmatismus 28 / 42

72 Grenzwerte Was bedeuten aber Werte wie 4, 8 oder 0,486 nun genau? Die Zahlen allein sagen noch nichts aus Für jede Beurteilung benötigt man einen Kontext Im Fall von Metriken sind das Grenzwerte Aber woher bekommt man sinnvolle Grenzwerte? Software-Metriken: Purismus vs. Pragmatismus 28 / 42

73 Grenzwerte Was bedeuten aber Werte wie 4, 8 oder 0,486 nun genau? Die Zahlen allein sagen noch nichts aus Für jede Beurteilung benötigt man einen Kontext Im Fall von Metriken sind das Grenzwerte Aber woher bekommt man sinnvolle Grenzwerte? Software-Metriken: Purismus vs. Pragmatismus 28 / 42

74 Grenzwerte Was bedeuten aber Werte wie 4, 8 oder 0,486 nun genau? Die Zahlen allein sagen noch nichts aus Für jede Beurteilung benötigt man einen Kontext Im Fall von Metriken sind das Grenzwerte Aber woher bekommt man sinnvolle Grenzwerte? Software-Metriken: Purismus vs. Pragmatismus 28 / 42

75 Grenzwerte Was bedeuten aber Werte wie 4, 8 oder 0,486 nun genau? Die Zahlen allein sagen noch nichts aus Für jede Beurteilung benötigt man einen Kontext Im Fall von Metriken sind das Grenzwerte Aber woher bekommt man sinnvolle Grenzwerte? Software-Metriken: Purismus vs. Pragmatismus 28 / 42

76 Statistische Auswertung I Analysiere alle existierenden Projekte um einen Überblick über Mittelwerte zu bekommen... um potentielle Grenzwerte/Ausreißer zu identifizieren Analysiere zusätzlich verwendete Frameworks hierdurch werden die ermittelten Werte heterogener Software-Metriken: Purismus vs. Pragmatismus 29 / 42

77 Statistische Auswertung I Analysiere alle existierenden Projekte um einen Überblick über Mittelwerte zu bekommen... um potentielle Grenzwerte/Ausreißer zu identifizieren Analysiere zusätzlich verwendete Frameworks hierdurch werden die ermittelten Werte heterogener Software-Metriken: Purismus vs. Pragmatismus 29 / 42

78 Statistische Auswertung I Analysiere alle existierenden Projekte um einen Überblick über Mittelwerte zu bekommen... um potentielle Grenzwerte/Ausreißer zu identifizieren Analysiere zusätzlich verwendete Frameworks hierdurch werden die ermittelten Werte heterogener Software-Metriken: Purismus vs. Pragmatismus 29 / 42

79 Statistische Auswertung I Analysiere alle existierenden Projekte um einen Überblick über Mittelwerte zu bekommen... um potentielle Grenzwerte/Ausreißer zu identifizieren Analysiere zusätzlich verwendete Frameworks hierdurch werden die ermittelten Werte heterogener Software-Metriken: Purismus vs. Pragmatismus 29 / 42

80 Statistische Auswertung I Analysiere alle existierenden Projekte um einen Überblick über Mittelwerte zu bekommen... um potentielle Grenzwerte/Ausreißer zu identifizieren Analysiere zusätzlich verwendete Frameworks hierdurch werden die ermittelten Werte heterogener Software-Metriken: Purismus vs. Pragmatismus 29 / 42

81 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

82 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

83 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

84 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

85 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

86 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

87 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

88 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

89 Statistische Auswertung II Einfache Berechnung Mittelwert für einzelne Metriken (AVG) Standardabweichung vom Mittelwert (STDEV) So Statistikgedöns 3. Semester Informatik Studium ;-] Grenzwert-Berechnung Untere Grenze: AVG - STDEV Obere Grenze: AVG + STDEV Grenzwertig: 1,5 * (AVG + STDEV) Software-Metriken: Purismus vs. Pragmatismus 30 / 42

90 Grenzwerte First Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Second Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Software-Metriken: Purismus vs. Pragmatismus 31 / 42

91 Grenzwerte First Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Second Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Software-Metriken: Purismus vs. Pragmatismus 31 / 42

92 Grenzwerte First Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Second Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Software-Metriken: Purismus vs. Pragmatismus 31 / 42

93 Grenzwerte First Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Second Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Software-Metriken: Purismus vs. Pragmatismus 31 / 42

94 Grenzwerte First Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Second Generation PHP-Frameworks Metrik Low Avg High Outliner CCN/LOC LOC/NOM NOM/NOC NOC/NOP Software-Metriken: Purismus vs. Pragmatismus 31 / 42

95 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen Software-Metriken: Purismus vs. Pragmatismus 32 / 42

96 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen Software-Metriken: Purismus vs. Pragmatismus 32 / 42

97 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen if ( $x ) { if ( $y == 23 ) { foreach ( $z as $a ) { if ( $a!= 42 ) { $foo = ( $bar? $bar : 23 ); } else { $bar = ( $foo? $foo : 42 ); } } } } Software-Metriken: Purismus vs. Pragmatismus 32 / 42

98 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen if ( $x ) { if ( $y == 23 ) { foreach ( $z as $a ) { if ( $a!= 42 ) { $foo = ( $bar? $bar : 23 ); } else { $bar = ( $foo? $foo : 42 ); } } } } Software-Metriken: Purismus vs. Pragmatismus 32 / 42

99 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen if ( $x ) { if ( $y == 23 ) { foreach ( $z as $a ) { if ( $a!= 42 ) { $foo = ( $bar? $bar : 23 ); } else { $bar = ( $foo? $foo : 42 ); } } } } Software-Metriken: Purismus vs. Pragmatismus 32 / 42

100 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen if ( $x ) { if ( $y == 23 ) { foreach ( $z as $a ) { if ( $a!= 42 ) { $foo = ( $bar? $bar : 23 ); } else { $bar = ( $foo? $foo : 42 ); } } } } Software-Metriken: Purismus vs. Pragmatismus 32 / 42

101 Der gesunde Menschenverstand Manche Grenzwerte erschließen sich direkt Beispiel: Tiefe von Kontrollstrukturen WTF? Software-Metriken: Purismus vs. Pragmatismus 32 / 42

102 Ganz wichtig Grenzwerte sind immer Ermessenssache Es gibt einfach kein Schwarz & Weiß Software-Metriken: Purismus vs. Pragmatismus 33 / 42

103 Ganz wichtig Grenzwerte sind immer Ermessenssache Es gibt einfach kein Schwarz & Weiß Software-Metriken: Purismus vs. Pragmatismus 33 / 42

104 Outline Was sind Metriken? Klassische Softwaremetriken Objektorientierte Softwaremetriken Grenzwerte Auswertung Zusammenfassung Software-Metriken: Purismus vs. Pragmatismus 34 / 42

105 Einen Überblick verschaffen Wir haben jetzt einen schier unendlichen Fundus an Metriken Aber was mache ich jetzt damit?... welche Metriken helfen mir weiter?... wie fange ich an ein Projekt zu beurteilen? Software-Metriken: Purismus vs. Pragmatismus 35 / 42

106 Einen Überblick verschaffen Wir haben jetzt einen schier unendlichen Fundus an Metriken Aber was mache ich jetzt damit?... welche Metriken helfen mir weiter?... wie fange ich an ein Projekt zu beurteilen? Software-Metriken: Purismus vs. Pragmatismus 35 / 42

107 Einen Überblick verschaffen Wir haben jetzt einen schier unendlichen Fundus an Metriken Aber was mache ich jetzt damit?... welche Metriken helfen mir weiter?... wie fange ich an ein Projekt zu beurteilen? Software-Metriken: Purismus vs. Pragmatismus 35 / 42

108 Einen Überblick verschaffen Wir haben jetzt einen schier unendlichen Fundus an Metriken Aber was mache ich jetzt damit?... welche Metriken helfen mir weiter?... wie fange ich an ein Projekt zu beurteilen? Software-Metriken: Purismus vs. Pragmatismus 35 / 42

109 Einen Überblick verschaffen Wir haben jetzt einen schier unendlichen Fundus an Metriken Aber was mache ich jetzt damit?... welche Metriken helfen mir weiter?... wie fange ich an ein Projekt zu beurteilen? Software-Metriken: Purismus vs. Pragmatismus 35 / 42

110 Metriken kombinieren Die Kombination von Metriken erlaubt einen sehr tiefen Einblick in ein System. LOC: 300; CCN: 42; NOC: 5; NOM: 15 CCN / LOC = 0,14 Jede sechste Zeile eine Kontrollstruktur LOC / NOC = 60 Primär prozedural oder große Klassen LOC / NOM = 20 Große Methoden / Funktionen CCN / NOM = 2,8 Übermäßig komplexe Methoden / Funktionen Software-Metriken: Purismus vs. Pragmatismus 36 / 42

111 Metriken kombinieren Die Kombination von Metriken erlaubt einen sehr tiefen Einblick in ein System. LOC: 300; CCN: 42; NOC: 5; NOM: 15 CCN / LOC = 0,14 Jede sechste Zeile eine Kontrollstruktur LOC / NOC = 60 Primär prozedural oder große Klassen LOC / NOM = 20 Große Methoden / Funktionen CCN / NOM = 2,8 Übermäßig komplexe Methoden / Funktionen Software-Metriken: Purismus vs. Pragmatismus 36 / 42

112 Metriken kombinieren Die Kombination von Metriken erlaubt einen sehr tiefen Einblick in ein System. LOC: 300; CCN: 42; NOC: 5; NOM: 15 CCN / LOC = 0,14 Jede sechste Zeile eine Kontrollstruktur LOC / NOC = 60 Primär prozedural oder große Klassen LOC / NOM = 20 Große Methoden / Funktionen CCN / NOM = 2,8 Übermäßig komplexe Methoden / Funktionen Software-Metriken: Purismus vs. Pragmatismus 36 / 42

113 Metriken kombinieren Die Kombination von Metriken erlaubt einen sehr tiefen Einblick in ein System. LOC: 300; CCN: 42; NOC: 5; NOM: 15 CCN / LOC = 0,14 Jede sechste Zeile eine Kontrollstruktur LOC / NOC = 60 Primär prozedural oder große Klassen LOC / NOM = 20 Große Methoden / Funktionen CCN / NOM = 2,8 Übermäßig komplexe Methoden / Funktionen Software-Metriken: Purismus vs. Pragmatismus 36 / 42

114 Metriken kombinieren Die Kombination von Metriken erlaubt einen sehr tiefen Einblick in ein System. LOC: 300; CCN: 42; NOC: 5; NOM: 15 CCN / LOC = 0,14 Jede sechste Zeile eine Kontrollstruktur LOC / NOC = 60 Primär prozedural oder große Klassen LOC / NOM = 20 Große Methoden / Funktionen CCN / NOM = 2,8 Übermäßig komplexe Methoden / Funktionen Software-Metriken: Purismus vs. Pragmatismus 36 / 42

115 Metriken kombinieren Die Kombination von Metriken erlaubt einen sehr tiefen Einblick in ein System. LOC: 300; CCN: 42; NOC: 5; NOM: 15 CCN / LOC = 0,14 Jede sechste Zeile eine Kontrollstruktur LOC / NOC = 60 Primär prozedural oder große Klassen LOC / NOM = 20 Große Methoden / Funktionen CCN / NOM = 2,8 Übermäßig komplexe Methoden / Funktionen Software-Metriken: Purismus vs. Pragmatismus 36 / 42

116 Auswertung Visualisierung Software-Metriken: Purismus vs. Pragmatismus 37 / 42

117 Overview Pyramid Wir brauchen eine übersichtliche Visualisierung Bestehend aus drei unterschiedlichen Metrik-Typen Software-Metriken: Purismus vs. Pragmatismus 38 / 42

118 Overview Pyramid Wir brauchen eine übersichtliche Visualisierung Bestehend aus drei unterschiedlichen Metrik-Typen Software-Metriken: Purismus vs. Pragmatismus 38 / 42

119 Overview Pyramid Wir brauchen eine übersichtliche Visualisierung Bestehend aus drei unterschiedlichen Metrik-Typen Software-Metriken: Purismus vs. Pragmatismus 38 / 42

120 Overview Pyramid Wir brauchen eine übersichtliche Visualisierung Bestehend aus drei unterschiedlichen Metrik-Typen Software-Metriken: Purismus vs. Pragmatismus 38 / 42

121 Overview Pyramid Umfang/Komplexität Number Of Packages Software-Metriken: Purismus vs. Pragmatismus 38 / 42

122 Overview Pyramid Umfang/Komplexität Number Of Classes Software-Metriken: Purismus vs. Pragmatismus 38 / 42

123 Overview Pyramid Umfang/Komplexität Number Of Methods Software-Metriken: Purismus vs. Pragmatismus 38 / 42

124 Overview Pyramid Umfang/Komplexität Lines Of Code Software-Metriken: Purismus vs. Pragmatismus 38 / 42

125 Overview Pyramid Umfang/Komplexität Cyclomatic Complexity Software-Metriken: Purismus vs. Pragmatismus 38 / 42

126 Overview Pyramid Koppelung Number Of Methods Software-Metriken: Purismus vs. Pragmatismus 38 / 42

127 Overview Pyramid Koppelung Number Of Operation Calls Software-Metriken: Purismus vs. Pragmatismus 38 / 42

128 Overview Pyramid Koppelung Number Of Called Classes Software-Metriken: Purismus vs. Pragmatismus 38 / 42

129 Overview Pyramid Vererbung Average Number of Derived Classes Software-Metriken: Purismus vs. Pragmatismus 38 / 42

130 Overview Pyramid Vererbung Average Hierarchy Height Software-Metriken: Purismus vs. Pragmatismus 38 / 42

131 Overview Pyramid Beziehungen zwischen den Metriken Zu erwartende Code-Komplexität Software-Metriken: Purismus vs. Pragmatismus 38 / 42

132 Overview Pyramid Beziehungen zwischen den Metriken Durchschnittliches Methoden-Volumen Software-Metriken: Purismus vs. Pragmatismus 38 / 42

133 Overview Pyramid Beziehungen zwischen den Metriken Indikator für das verwendete Klassendesign Software-Metriken: Purismus vs. Pragmatismus 38 / 42

134 Overview Pyramid Beziehungen zwischen den Metriken Globale Projektstruktur Software-Metriken: Purismus vs. Pragmatismus 38 / 42

135 Overview Pyramid Beziehungen zwischen den Metriken Verteilung von Logik im System Software-Metriken: Purismus vs. Pragmatismus 38 / 42

136 Overview Pyramid Beziehungen zwischen den Metriken Kopplung/Kapselung von Daten und Methoden Software-Metriken: Purismus vs. Pragmatismus 38 / 42

137 Overview Pyramid Schwellenwerte helfen bei der Interpretation Farben mit einer semantischen Bedeutung (Rot/Grün-Effekt) Software-Metriken: Purismus vs. Pragmatismus 38 / 42

138 Overview Pyramid Schwellenwerte helfen bei der Interpretation Farben mit einer semantischen Bedeutung (Rot/Grün-Effekt) Software-Metriken: Purismus vs. Pragmatismus 38 / 42

139 Outline Was sind Metriken? Klassische Softwaremetriken Objektorientierte Softwaremetriken Grenzwerte Auswertung Zusammenfassung Software-Metriken: Purismus vs. Pragmatismus 39 / 42

140 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

141 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

142 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

143 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

144 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

145 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

146 Metriken sind keine Magie, sondern einfache Maßzahlen... nutzlos, ohne Grenz- oder Referenzwerte... skalierbar, wachsen mit der Projektgröße... automatisierbar und reproduzierbar... objektiv, da Software gestützt... interpretierbar, abhängig vom Betrachter Software-Metriken: Purismus vs. Pragmatismus 40 / 42

147 Buchempfehlung Software-Metriken: Purismus vs. Pragmatismus 41 / 42

148 Vielen Dank für Ihre Aufmerksamkeit Fragen? Kommentare? Kritik? Ideen? Software-Metriken: Purismus vs. Pragmatismus 42 / 42

149 Vielen Dank für Ihre Aufmerksamkeit Die Folien finden Sie bald unter Software-Metriken: Purismus vs. Pragmatismus 42 / 42

150 Vielen Dank für Ihre Aufmerksamkeit Kontakt Manuel Software-Metriken: Purismus vs. Pragmatismus 42 / 42

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

Softwaremetriken verstehen und nutzen

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

Mehr

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

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

Schnellstart - Checkliste

Schnellstart - Checkliste Schnellstart - Checkliste http://www.ollis-tipps.de/schnellstart-in-7-schritten/ Copyright Olaf Ebers / http://www.ollis-tipps.de/ - Alle Rechte vorbehalten - weltweit Seite 1 von 6 Einleitung Mein Name

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

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

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

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

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

Umgang mit Schaubildern am Beispiel Deutschland surft

Umgang mit Schaubildern am Beispiel Deutschland surft -1- Umgang mit Schaubildern am Beispiel Deutschland surft Im Folgenden wird am Beispiel des Schaubildes Deutschland surft eine Lesestrategie vorgestellt. Die Checkliste zur Vorgehensweise kann im Unterricht

Mehr

Media Teil III. Begriffe, Definitionen, Übungen

Media Teil III. Begriffe, Definitionen, Übungen Media Teil III. Begriffe, Definitionen, Übungen Kapitel 1 (Intermedia- Vergleich: Affinität) 1 Affinitätsbewertung als Mittel des Intermedia-Vergleichs Um die Streugenauigkeit eines Werbeträgers zu bestimmen,

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Wir machen neue Politik für Baden-Württemberg

Wir machen neue Politik für Baden-Württemberg Wir machen neue Politik für Baden-Württemberg Am 27. März 2011 haben die Menschen in Baden-Württemberg gewählt. Sie wollten eine andere Politik als vorher. Die Menschen haben die GRÜNEN und die SPD in

Mehr

QM: Prüfen -1- KN16.08.2010

QM: Prüfen -1- KN16.08.2010 QM: Prüfen -1- KN16.08.2010 2.4 Prüfen 2.4.1 Begriffe, Definitionen Ein wesentlicher Bestandteil der Qualitätssicherung ist das Prüfen. Sie wird aber nicht wie früher nach der Fertigung durch einen Prüfer,

Mehr

Auswertung des Jahresabschlusses Bilanzanalyse 2

Auswertung des Jahresabschlusses Bilanzanalyse 2 KA11 Unternehmensergebnisse aufbereiten, bewerten und nutzen Auswertung des Jahresabschlusses Bilanzanalyse 2 Kennzahlen zur Bilanzanalyse Die aufbereitete Bilanz kann mit Hilfe unterschiedlicher Kennzahlen

Mehr

Erfahrungen mit Hartz IV- Empfängern

Erfahrungen mit Hartz IV- Empfängern Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November

Mehr

Kontrollstrukturen und Funktionen in C

Kontrollstrukturen und Funktionen in C Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren

Mehr

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen 1. Einführung Über die Tabellen-Auswertungen können Sie eigene Auswertungen nach Ihren Wünschen erstellen. Diese Auswertungen werden immer anhand der aktuellen Daten aus orgamax ermittelt, Sie können also

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

Vermögen sichern - Finanzierung optimieren

Vermögen sichern - Finanzierung optimieren I. Vermögen sichern - Finanzierung optimieren Persönlicher und beruflicher Hintergrund: geboren 1951 Bauernsohn landwirtschaftliche Lehre Landwirtschaftsschule ab 1974 Umschulung zum Bankkaufmann ab 1982

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

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen. Medizintechnik MATHCAD Kapitel. Einfache Rechnungen mit MATHCAD ohne Variablendefinition In diesem kleinen Kapitel wollen wir die ersten Schritte mit MATHCAD tun und folgende Aufgaben lösen: 8 a: 5 =?

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln Regeln ja Regeln nein Kenntnis Regeln ja Kenntnis Regeln nein 0 % 10 % 20 % 30 % 40 % 50 % 60 % 70 % 80 % 90 % Glauben Sie, dass

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

Aber zuerst: Was versteht man unter Stromverbrauch im Standby-Modus (Leerlaufverlust)?

Aber zuerst: Was versteht man unter Stromverbrauch im Standby-Modus (Leerlaufverlust)? Ich habe eine Umfrage durchgeführt zum Thema Stromverbrauch im Standby Modus! Ich habe 50 Personen befragt und allen 4 Fragen gestellt. Ich werde diese hier, anhand von Grafiken auswerten! Aber zuerst:

Mehr

Statistische Auswertung:

Statistische Auswertung: Statistische Auswertung: Die erhobenen Daten mittels der selbst erstellten Tests (Surfaufgaben) Statistics Punkte aus dem Punkte aus Surftheorietest Punkte aus dem dem und dem Surftheorietest max.14p.

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

Papa - was ist American Dream?

Papa - was ist American Dream? Papa - was ist American Dream? Das heißt Amerikanischer Traum. Ja, das weiß ich, aber was heißt das? Der [wpseo]amerikanische Traum[/wpseo] heißt, dass jeder Mensch allein durch harte Arbeit und Willenskraft

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor!

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor! Peter von Karst Mehr Geld verdienen! So gehen Sie konkret vor! Ihre Leseprobe Lesen Sie...... wie Sie mit wenigen, aber effektiven Schritten Ihre gesteckten Ziele erreichen.... wie Sie die richtigen Entscheidungen

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

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

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

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche. Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673 Ug-Werte für die Flachglasbranche Einleitung Die vorliegende Broschüre enthält die Werte für

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

AW: AW: AW: AW: Kooperationsanfrage anwalt.de

AW: AW: AW: AW: Kooperationsanfrage anwalt.de Seite 1 von 5 AW: AW: AW: AW: Kooperationsanfrage anwalt.de Di 13.08.2013 08:31 An:'Rene Meier' ; ich freue mich, dass alles noch so gut funktioniert hat. Die Logointegration

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

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer - 08.09.2010 19:00 Uhr

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer - 08.09.2010 19:00 Uhr 1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer - Sehr geehrter Herr Bürgermeister, sehr geehrter Herr Dr. Vogelsang, sehr geehrter Herr Strunz, und meine sehr geehrte Damen und Herren, meine

Mehr

Motivationale Aspekte des gemeinsamen Lernens aus Sicht der Medizin- und Pflegestudierenden

Motivationale Aspekte des gemeinsamen Lernens aus Sicht der Medizin- und Pflegestudierenden Motivationale Aspekte des gemeinsamen Lernens aus Sicht der Medizin- und Pflegestudierenden Prof. Dr. Roman F. Oppermann, LL. M., M. A. Hochschule Neubrandenburg, Fachbereich Gesundheit, Pflege, Management

Mehr

Statuten in leichter Sprache

Statuten in leichter Sprache Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

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

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen. Manuskript Die Deutschen sind bekannt dafür, dass sie ihre Autos lieben. Doch wie sehr lieben sie ihre Autos wirklich, und hat wirklich jeder in Deutschland ein eigenes Auto? David und Nina fragen nach.

Mehr

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse 34 4410 Liestal ATG

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse 34 4410 Liestal ATG von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse 34 4410 Liestal ATG 20.03.2009 1 Inhaltsverzeichnis 1. Zusammenfassung S. 3 2. Aufgabestellung S. 3 3. Lösungsansätze

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Daten sammeln, darstellen, auswerten

Daten sammeln, darstellen, auswerten Vertiefen 1 Daten sammeln, darstellen, auswerten zu Aufgabe 1 Schulbuch, Seite 22 1 Haustiere zählen In der Tabelle rechts stehen die Haustiere der Kinder aus der Klasse 5b. a) Wie oft wurden die Haustiere

Mehr

M@school Software- und Druckerzuweisung Selbstlernmaterialien

M@school Software- und Druckerzuweisung Selbstlernmaterialien Bildung und Sport M@school Software- und Druckerzuweisung Selbstlernmaterialien Hinweise zum Skript: LMK = Linker Mausklick RMK = Rechter Mausklick LMT = Linke Maustaste RMT = Rechte Maustaste Um die Lesbarkeit

Mehr

Integrierte Dienstleistungen regionaler Netzwerke für Lebenslanges Lernen zur Vertiefung des Programms. Lernende Regionen Förderung von Netzwerken

Integrierte Dienstleistungen regionaler Netzwerke für Lebenslanges Lernen zur Vertiefung des Programms. Lernende Regionen Förderung von Netzwerken Integrierte Dienstleistungen regionaler Netzwerke für Lebenslanges Lernen zur Vertiefung des Programms Lernende Regionen Förderung von Netzwerken Gefördert vom Bundesministerium für Bildung und Forschung

Mehr

mehrmals mehrmals mehrmals alle seltener nie mindestens **) in der im Monat im Jahr 1 bis 2 alle 1 bis 2 Woche Jahre Jahre % % % % % % %

mehrmals mehrmals mehrmals alle seltener nie mindestens **) in der im Monat im Jahr 1 bis 2 alle 1 bis 2 Woche Jahre Jahre % % % % % % % Nicht überraschend, aber auch nicht gravierend, sind die altersspezifischen Unterschiede hinsichtlich der Häufigkeit des Apothekenbesuchs: 24 Prozent suchen mindestens mehrmals im Monat eine Apotheke auf,

Mehr

Einstellungen der Deutschen gegenüber dem Beruf der Putzfrau

Einstellungen der Deutschen gegenüber dem Beruf der Putzfrau Auftraggeber: Helpling GmbH Frankfurt a.m.: 5. November 05 3367/n5447 Go/Bü Untersuchungsdesign Zielgruppe: Stichprobengröße: Die in Privathaushalten in Deutschland lebenden deutschsprachigen Personen

Mehr

Selbsttest Prozessmanagement

Selbsttest Prozessmanagement Selbsttest Prozessmanagement Zur Feststellung des aktuellen Status des Prozessmanagements in Ihrem Unternehmen steht Ihnen dieser kurze Test mit zehn Fragen zur Verfügung. Der Test dient Ihrer persönlichen

Mehr

Ulmer Universitäts-Trainingscamp. 1. bis 24. September 2015

Ulmer Universitäts-Trainingscamp. 1. bis 24. September 2015 Ulmer Universitäts-Trainingscamp 1. bis 24. September 2015 Grußwort des Präsidenten der Universität Ulm Sehr geehrte Teilnehmer des Trainingscamps, liebe Erstsemester, ich bedanke mich ganz herzlich bei

Mehr

CodeSaver. Vorwort. Seite 1 von 6

CodeSaver. Vorwort. Seite 1 von 6 CodeSaver Vorwort Die Flut der Passwörter nimmt immer mehr zu. Kontopasswörter, Passwörter für Homepages, Shellzugriffe, Registrierungscodes für Programme und und und. Da ich aber nicht sonderlich viel

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Grundlagen der Videotechnik. Redundanz

Grundlagen der Videotechnik. Redundanz Grundlagen der Videotechnik Redundanz Redundanz beruht auf: - statistischen Abhängigkeiten im Signal, - Information, die vorher schon gesendet wurde - generell eine Art Gedächtnis im Signal Beispiel: Ein

Mehr

Häufig gestellte Fragen (FAQ)

Häufig gestellte Fragen (FAQ) An wen wende ich mich im Schadensfall? Egal für welche Versicherungsgesellschaft Sie sich entschieden haben, Sie wenden sich bitte immer an uns. Wir leiten Ihre Schadensmeldung sofort an die zuständige

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

dem Vater der Mutter des betreuten Kindes/der betreuten Kinder. Mein Kind/ Meine Kinder wird/werden in der Woche durchschnittlich Stunden betreut.

dem Vater der Mutter des betreuten Kindes/der betreuten Kinder. Mein Kind/ Meine Kinder wird/werden in der Woche durchschnittlich Stunden betreut. 1 Feedbackbogen Eltern erarbeitet von der AG Qualität und der Mai 2015 Liebe Eltern, bald wird unser Arbeitsverhältnis enden. Um mich stetig weiterzuentwickeln und auch den folgenden Kindern und Eltern

Mehr

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen. Manuskript Wie wohnen die Deutschen eigentlich? Nina und David wollen herausfinden, ob es die typisch deutsche Wohnung gibt. Und sie versuchen außerdem, eine Wohnung zu finden. Nicht ganz einfach in der

Mehr

Melanie Kaspar, Prof. Dr. B. Grabowski 1

Melanie Kaspar, Prof. Dr. B. Grabowski 1 7. Hypothesentests Ausgangssituation: Man muss sich zwischen 2 Möglichkeiten (=Hypothesen) entscheiden. Diese Entscheidung soll mit Hilfe von Beobachtungen ( Stichprobe ) getroffen werden. Die Hypothesen

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

Erfolg beginnt im Kopf

Erfolg beginnt im Kopf Erfolg beginnt im Kopf Wie Sie ausgeglichen bleiben und Ihre Ziele einfacher erreichen 8. VR-Unternehmerforum AGRAR Die Ausgangslage Am Markt 6 49406 Barnstorf Am Markt 6 49406 Barnstorf Alles verändert

Mehr

Mehr Arbeits-Plätze für Menschen mit Behinderung auf dem 1. Arbeits-Markt

Mehr Arbeits-Plätze für Menschen mit Behinderung auf dem 1. Arbeits-Markt Mehr Arbeits-Plätze für Menschen mit Behinderung auf dem 1. Arbeits-Markt 1. Arbeits-Markt bedeutet: Menschen mit Behinderung arbeiten da, wo Menschen ohne Behinderung auch arbeiten. Zum Beispiel: Im Büro,

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel Sehr vielen Mitarbeitern fällt es schwer, Serienbriefe an Kunden zu verschicken, wenn sie die Serienbrieffunktion von Word nicht beherrschen. Wenn die Kunden mit Excel verwaltet werden, genügen nur ein

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

Welches Übersetzungsbüro passt zu mir?

Welches Übersetzungsbüro passt zu mir? 1 Welches Übersetzungsbüro passt zu mir? 2 9 Kriterien für Ihre Suche mit Checkliste! Wenn Sie auf der Suche nach einem passenden Übersetzungsbüro das Internet befragen, werden Sie ganz schnell feststellen,

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für ihre Entscheidung Entdecken Sie was IT Sicherheit im Unternehmen bedeutet IT Sicherheit

Mehr

Scala kann auch faul sein

Scala kann auch faul sein Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?

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

MACH. Unser Einstiegsprogramm für Hochschulabsolventen. Microsoft Academy for College Hires. Sales Marketing Technik

MACH. Unser Einstiegsprogramm für Hochschulabsolventen. Microsoft Academy for College Hires. Sales Marketing Technik MACH Microsoft Academy for College Hires Unser Einstiegsprogramm für Hochschulabsolventen Sales Marketing Technik Von der Hochschule in die globale Microsoft-Community. Sie haben Ihr Studium (schon bald)

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden CoachingBrief 02/2016 Warum Sie jetzt kein Onlinemarketing brauchen! Eine Frage gleich zu Anfang: Wie viele Mails haben Sie in dieser Woche erhalten, in denen behauptet wurde: Inhalt Ihre Webseite sei

Mehr

R ist freie Software und kann von der Website. www.r-project.org

R ist freie Software und kann von der Website. www.r-project.org R R ist freie Software und kann von der Website heruntergeladen werden. www.r-project.org Nach dem Herunterladen und der Installation von R kann man R durch Doppelklicken auf das R-Symbol starten. R wird

Mehr

Catherina Lange, Heimbeiräte und Werkstatträte-Tagung, November 2013 1

Catherina Lange, Heimbeiräte und Werkstatträte-Tagung, November 2013 1 Catherina Lange, Heimbeiräte und Werkstatträte-Tagung, November 2013 1 Darum geht es heute: Was ist das Persönliche Geld? Was kann man damit alles machen? Wie hoch ist es? Wo kann man das Persönliche Geld

Mehr

SOMA Reverse Engineering

SOMA Reverse Engineering SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance

Mehr

1. TEIL (3 5 Fragen) Freizeit, Unterhaltung 2,5 Min.

1. TEIL (3 5 Fragen) Freizeit, Unterhaltung 2,5 Min. EINFÜHRUNG 0,5 Min. THEMEN: Freizeit, Unterhaltung (T1), Einkaufen (T2), Ausbildung, Beruf (T3), Multikulturelle Gesellschaft (T4) Hallo/Guten Tag. (Nehmen Sie bitte Platz. Können Sie mir bitte die Nummer

Mehr

1.3 Die Beurteilung von Testleistungen

1.3 Die Beurteilung von Testleistungen 1.3 Die Beurteilung von Testleistungen Um das Testergebnis einer Vp zu interpretieren und daraus diagnostische Urteile ableiten zu können, benötigen wir einen Vergleichsmaßstab. Im Falle des klassischen

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

Mehr

Abenteuer e-commerce Erfolgreich mit dem eigenen Onlineshop.

Abenteuer e-commerce Erfolgreich mit dem eigenen Onlineshop. Content & Contentpflege in oscommerce CMS - oder geht es auch günstiger? Seit Jahren gibt es keine Fachzeitschrift, welche das Thema Wichtigkeit von Content im Bezug auf Suchmaschinenoptimierung ausließ.

Mehr

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR Softwareentwicklung: Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte

Mehr

expopharm 30. September 2015

expopharm 30. September 2015 expopharm 30. September 2015 Dr. Martin Zentgraf Vorsitzender des Bundesverbandes der Pharmazeutischen Industrie e.v. - Es gilt das gesprochene Wort - Seite 2 Sehr geehrter Herr Schmidt, sehr geehrter

Mehr

Webalizer HOWTO. Stand: 18.06.2012

Webalizer HOWTO. Stand: 18.06.2012 Webalizer HOWTO Stand: 18.06.2012 Copyright 2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene Warenzeichen sein, ohne

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst Peter Becker Hochschule Bonn-Rhein-Sieg Fachbereich Informatik peter.becker@h-brs.de Kurzvorlesung am Studieninformationstag, 13.05.2009

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

sondern alle Werte gleich behandelt. Wir dürfen aber nicht vergessen, dass Ergebnisse, je länger sie in der Vergangenheit

sondern alle Werte gleich behandelt. Wir dürfen aber nicht vergessen, dass Ergebnisse, je länger sie in der Vergangenheit sondern alle Werte gleich behandelt. Wir dürfen aber nicht vergessen, dass Ergebnisse, je länger sie in der Vergangenheit liegen, an Bedeutung verlieren. Die Mannschaften haben sich verändert. Spieler

Mehr