Was bringt TDD wirklich?



Ähnliche Dokumente
Zeichen bei Zahlen entschlüsseln

Die Invaliden-Versicherung ändert sich

Professionelle Seminare im Bereich MS-Office

Fragebogen: Abschlussbefragung

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Darstellungsformen einer Funktion

Outlook Vorlagen/Templates

Dieses erste Kreisdiagramm, bezieht sich auf das gesamte Testergebnis der kompletten 182 getesteten Personen. Ergebnis

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

Was meinen die Leute eigentlich mit: Grexit?

Leichte-Sprache-Bilder

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Projektsteuerung Projekte effizient steuern. Welche Steuerungsinstrumente werden eingesetzt?

Verwendung des IDS Backup Systems unter Windows 2000

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

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

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Markovketten. Bsp. Page Ranking für Suchmaschinen. Wahlfach Entscheidung unter Risiko und stat. Datenanalyse

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Speicher in der Cloud

Die Leiterkennlinie gibt den Zusammenhang zwischen Stromstärke I und Spannung U wieder.

SJ OFFICE - Update 3.0

FTP-Server einrichten mit automatischem Datenupload für

! " # $ " % & Nicki Wruck worldwidewruck

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Der Zwei-Quadrate-Satz von Fermat

bagfa ist die Abkürzung für unseren langen Namen: Bundes-Arbeits-Gemeinschaft der Freiwilligen-Agenturen.

Studieren- Erklärungen und Tipps

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Liebe Interessierte an technischen Lösungen für die Sicherheit zu Hause,

SharePoint Demonstration

Bernadette Büsgen HR-Consulting

Abituraufgabe zur Analysis, Hessen 2009, Grundkurs (TR)

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Jeder ist ein Teil vom Ganzen Inklusion ändert den Blick

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Urlaubsregel in David

i x k k=1 i u i x i v i 1 0, ,08 2 0, ,18 3 0, ,36 4 0, ,60 5 1, ,00 2,22 G = n 2 n i=1

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

Landes-Arbeits-Gemeinschaft Gemeinsam Leben Gemeinsam Lernen Rheinland-Pfalz e.v.

Die Industrie- und Handelskammer arbeitet dafür, dass Menschen überall mit machen können

Updatehinweise für die Version forma 5.5.5

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

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

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Lizenzen auschecken. Was ist zu tun?

How to do? Projekte - Zeiterfassung

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

ACDSee Pro 3-Tutorials: Fotos (+ Datenbank) auf einen anderen Computer bringen

1. Legen Sie die mitgelieferte CD in ihr Laufwerk des PC, diese startet dann automatisch mit folgenden Fenster, klicken Sie nun English an.

Daten Sichern mit dem QNAP NetBak Replicator 4.0

Die Näherung durch die Sekante durch die Punkte A und C ist schlechter, da der Punkt C weiter von A entfernt liegt.

Anleitung über den Umgang mit Schildern

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Kosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm

Arbeiten mit UMLed und Delphi

Webalizer HOWTO. Stand:

4. Erstellen von Klassen

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

icloud nicht neu, aber doch irgendwie anders

Situa?onsbeschreibung aus Sicht einer Gemeinde

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Überwachung elektronischer Daten und ihr Einfluss auf das Nutzungsverhalten im Internet

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Orientierungstest für angehende Industriemeister. Vorbereitungskurs Mathematik

teischl.com Software Design & Services e.u. office@teischl.com

1. Sicherheitsprofilwechsel HBCI-Sicherheitsdatei

Konzentration auf das. Wesentliche.

Jeder in Deutschland soll ab Mitte 2016 ein Konto eröffnen können.

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

Tipps und Tricks zu Netop Vision und Vision Pro

Repetitionsaufgaben Wurzelgleichungen

Wie beschneide ich ein Bild passend für den Ausdruck auf Papier eines bestimmten Formats?

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Senioren helfen Junioren

Auswertung des Jahresabschlusses Bilanzanalyse 2

Neue Steuererklärung 2013 erstellen

Silca Software ERKLÄRUNG. February 2013 Copyright Silca S.p.A. V.2.0

Die Post hat eine Umfrage gemacht

Alice SmartDisk. Auf dem PC - Schritt für Schritt erklärt

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Internet Explorer Version 6

Dokumentation zum Spielserver der Software Challenge

Installation OMNIKEY 3121 USB

Europäischer Fonds für Regionale Entwicklung: EFRE im Bundes-Land Brandenburg vom Jahr 2014 bis für das Jahr 2020 in Leichter Sprache

DOS-Sympas Scope Dateien in Excel einlesen

Summenbildung in Bauteiltabellen mit If Then Abfrage

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

Statuten in leichter Sprache

Transkript:

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 wurde vor mehr als 30 Jahren nämlich 976 veröffentlicht. Genug Zeit und Code, um eindlich ein Aussage über die Anwendbarkeit der Metrik zu treffen! Was bringt TDD wirklich? www.catalysts.cc, 2009 2

CCN über Bugs Viele Untersuchungen ermitteln die CCN pro Datei (und nicht pro Methode). Bug Tracking Programme speichern den Dateinamen pro gefundenen Fehler. Fehlerwahrscheinlichkeit CCN pro Datei Tester Augen auf! Dateien mit einem CCN von haben eine 28%ige 38 haben eine 50%ige 74 haben eine 98%ige Fehler-Wahrscheinlichkeit. Quelle: An Objective Measure of Code Quality Mark Dixon Was bringt TDD wirklich? www.catalysts.cc, 2009 3

Zipf Verteilung Was folgt der Zipf Verteilung? Verteilung von Worten in Texten die, und kommen sehr häufig vor Zipf und doppel-logarithmisch kommen sehr selten vor Weitere Beispiele: Größenverteilung von Firmen Einige wenige Firmen haben sehr viele Mitarbeiter Die meisten Firmen haben keine Mitarbeiter Verzehnfacht man die Anzahl der Angestellten, dann sinkt die Anzahl der Firmen, die so viele Angestellte haben, auf ein Zehntel. Verteilung der Zugriffe auf Internet Seiten Google.com, apple.com haben Millionen Zugriffe pro Tag Die meisten Seiten im Internet haben 0 oder Zugriff pro Tag Quelle: http://en.wikipedia.org/wiki/zipf%27s_law Was bringt TDD wirklich? www.catalysts.cc, 2009 4

Einfaches Gesamtmaß für Komplexität Steigung der Regressionsgeraden = 2,7 Graph: Anzahl der Methoden mit gleichen CNN über CNN Logarithmieren beide Achsen des Graphen Ermitteln der Regressionsgeraden Berechnung Absolutwert der Steigung der Geraden Was bringt TDD wirklich? www.catalysts.cc, 2009 5

TDD und Steigungen Codebase Steigung Nach TDD entwickelt Spring 2.0. 2.78 JA Junit 3.8. 2.49 JA Log4J 2.43 JA MarsProject 2.79 2.33 JA Ant.7.0 2.25 JA Xcool.93 Nein Itext.88 Nein Syncbuilder,84 Nein Es scheint als ob Code nach TDD entwickelt immer Steigungen über 2 aufweist, während der restliche Code die Grenze von 2 nicht überschreiten kann. Das heißt: herkömmliche Vorgehensweise in der Entwicklung von Software überschreitet unweigerlich eine Komplexitätsgrenze. Dadurch verursachte Fehler treiben die Kosten überdurchschnittlich stark in die Höhe! Was bringt TDD wirklich? www.catalysts.cc, 2009 6

Komplexitätsmauer Durch TDD kann der Code die Komplexitätsmauer durchbrechen. Das kann ein wesentlicher Beitrag zur Senkung Ihrer Entwicklungskosten sein. Steigen Sie ein in die F8 Hornet und durchbrechen Sie die Schallmauer! Was bringt TDD wirklich? www.catalysts.cc, 2009 7

CCD Cumulative Component Dependency CCD ist die Summe aller Objekte die benötigt werden, um ein Objekt zu testen. 5 4 3 2 N = 5 CCD(N) = 5 3 7 N = 7 CCD(N) = 7 3 7 N = CCD(N) = 39 7 4 3 2 4 9 2 2 3 N = 9 CCD(N) = 28 5 Was bringt TDD wirklich? www.catalysts.cc, 2009 8

Number of classes with a CCD within the range Anaylsieren eines Systems Eine fiktive Software (Komponente) hat Klassen. Für jede Klasse berechnen wir den CCD. Wir zeichnen ein Diagramm: Wie oft gibt es bestimmte CCD Werte in der Software? Der höchste CCD Wert ist. Wir teilen die CCD Werte.. in Bereiche ein:..2, 3..4, 5..6, 7..8, 9..0,..2. Wir zählen für jeden CCD-Wertebereich die Anzahl an Klassen 4 7 6 5 4 3 3 7 7 2 2 0..2 3..4 5..6 7..8 9..0..2 Range of CCD Was bringt TDD wirklich? www.catalysts.cc, 2009 9

Eclipse 3.0 CCD Verteilung 4500 4000 3500 ASTParser.java 3000 2500 2000 500 000 500 0 0-499 500-999 000-499 500-999 2000-2499 2500-2999 3000-3499 3500-3999 4000-4499 4500-4999 5000-5499 5500-5999 6000-6499 6500-6999 Eclipse hat im Wesentlichen eine gute Abhängigkeits Struktur. Aber:Wenn man die nützliche ASTParser Klasse wiederverwenden will, dann ist man von 572 zusätzlichen Eclipse Klassen abhängig. Wollen Sie das? Was bringt TDD wirklich? www.catalysts.cc, 2009 0

Gewünschte CCD Verteilung 800 700 600 500 400 300 200 00 0 0-49 50-99 Tame vs. Wicked Dependency Structures for a virtual 000 classes SW-System 00-49 50-99 200-249 250-299 300-349 Tame Wicked 350-399 400-449 450-499 500-549 550-599 600-649 650-699 Tame Zahme Komponent/Objekt Abhängigkeitsgraphen fallen schnell ab, bleiben flach! Subsysteme sollen stand alone sein. D.h. Es soll keine Kompilations-Abhängigkeiten zwischen Subsystemen geben! Was bringt TDD wirklich? www.catalysts.cc, 2009

Zusammenfassung. Je besser die Code Qualität, desto steiler die Steigung der linearisierten Zipf-Verteilung Refactorings damit steuern 2. Gutes Design drückt sich in schnell abfallende CCD Verteilungen aus. Diese bleiben flach. 3. Keine Code Duplikate automatische Überprüfung geben darüber Auskunft Was bringt TDD wirklich? www.catalysts.cc, 2009 2