Thomas Schoen hello2morrow GmbH. Six-Sigma für Software Architekten



Ähnliche Dokumente
Continuous Architecture Management

Der agile Software Architekt

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Langlebige Softwarearchitekturen

Echolot Qualitätssicherung mit Sonar

Continuous Architecture Management

Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen


Contents. Interaction Flow / Process Flow. Structure Maps. Reference Zone. Wireframes / Mock-Up

Grundlagen Software Engineering

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

Was bringt TDD wirklich?

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Cloud Architektur Workshop

Erfahrungen mit Hartz IV- Empfängern

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

Comparison of Software Products using Software Engineering Metrics

Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

SPI-Seminar : Interview mit einem Softwaremanager

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

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

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

B12-TOUCH VERSION 3.5

miditech 4merge 4-fach MIDI Merger mit :

WAS IST DER KOMPARATIV: = The comparative

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5

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

Systemvoraussetzung < zurück weiter >

ICON Switzerland 2015 Praxisbeispiel Connections an der Universität Zürich

Softwareentwicklungspraktikum Sommersemester Grobentwurf

MobiDM-App Handbuch für Windows Mobile

Impuls-Studie Enterprise Mobility

Terminabgleich mit Mobiltelefonen

IT-Governance und COBIT. DI Eberhard Binder

Fragen Arthur Zaczek. Apr 2015

Text Formatierung in Excel

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Installation mit Lizenz-Server verbinden

Thema: Microsoft Project online Welche Version benötigen Sie?

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

Selbsttest Prozessmanagement

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

Lernaufgabe Industriekauffrau/Industriekaufmann Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung

VDE Prüf- und Zertifizierungsinstitut Gutachten mit Fertigungsüberwachung

ecommerce Deshalb ist es für Unternehmen jeder Grösse wichtig, den Schritt in den Online-Verkauf nicht zu verpassen.

Webalizer HOWTO. Stand:

CTI SYSTEMS S.A. CTI SYSTEMS S.A. 12, op der Sang. Fax: +352/ L Lentzweiler. G.D.

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

Software Engineering in der Praxis

Projektmanagement in der Spieleentwicklung

Programmieren einer Lüftungsanlage mit DDC-Suite Vorlagen Arbeiten mit dem Fupla

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Zur drittletzten Zeile scrollen

Wie Sie mit Mastern arbeiten

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

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

Für den ersten Eindruck gibt es keine zweite Chance:

Übungen zur Softwaretechnik

Professionelle Seminare im Bereich MS-Office

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker


Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Einführung in die Robotik Kinematik. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / mohamed.oubbati@uni-ulm.de

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

Print-to-Web: Der digitale Sprung vom Verpackung in mobile Kommunikationsnetze

EchoLink und Windows XP SP2

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

ROFIN App Benutzerhandbuch. Version 1.0

Senioren ans Netz. schreiben kurze Texte. Lektion 9 in Themen aktuell 2, nach Übung 7

Architekturplanung und IS-Portfolio-

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

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

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Leitfaden zur optimalen Darstellung von PayPal in Ihrem Online-Shop

StudyDeal Accounts auf

Use Cases. Use Cases

So gehts Schritt-für-Schritt-Anleitung

Was meinen die Leute eigentlich mit: Grexit?

LOPEZ_SU AREZ_DAT ENANALYS E_ZERZEP

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

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Preisliste für The Unscrambler X

Zählen von Objekten einer bestimmten Klasse

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!.

Übungsklausur vom 7. Dez. 2007

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

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: Weitere Informationen oder Bestellungen unter

8 Design Patterns. Events

15. ISACA TrendTalk. Sourcing Governance Audit. C. Koza, 19. November 2014, Audit IT, Erste Group Bank AG

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Business-Analyse Probleme lösen, Chancen nutzen

Transkript:

Thomas Schoen hello2morrow GmbH Six-Sigma für Software Architekten

Komplexität kann leicht außer Kontrolle geraten 2010 hello2morrow GmbH 2

Was ist technische Softwarequalität? Technische (interne, strukturelle) Softwarequalität beeinflusst: Testbarkeit Erweiterbarkeit Wartbarkeit Verständlichkeit Technische Qualität kann nicht allein durch Testen herbeigeführt werden Technische Qualität hat die folgenden Aspekte: Architektur und Abhängigkeitsstruktur des Programmcodes Modularisierung, Grösse, Komplexität, Programmdesign Einhaltung von Programmierregeln Zusammen bestimmen diese Aspekte die technische Qualität eines Softwaresystems 2010 hello2morrow GmbH 3

Symptome der Erosion technischer Qualität (nach Robert C. Martin) Rigidity (Änderungsresistenz) The system is hard to change because every change forces many other changes. Fragility (Zerbrechlichkeit) Tendency that every change in the software produces many errors at different locations in the code (which might be conceptually unrelated). Immobility (Unbeweglichkeit) Inability to reuse software components in other projects or in other parts of the same project. Viscosity (Mühsamkeitsfaktor) Viscosity means that it is a lot harder to implement a change according to the intended design than by using workarounds and hacks. Software starts to rot like a piece of bad meat 2010 hello2morrow GmbH 4

Gründe für die Erosion der technischen Qualität Erosion ist ein automatischer Prozess Technische Qualität wird gar nicht erst gemessen Das Management betrachtet Softwaresysteme als Black Box Komplexität wächst schneller als das System Unerwünschte Abhängigkeiten werden unbemerkt eingeführt Mangelnde Kommunikation in (verteilten) Entwicklungsteams Zeitdruck führt oft zu bewussten Qualitätseinbussen 2010 hello2morrow GmbH 5

Kosten wegen Qualitäts-Erosion Anonymisierte Studie: Vergleich von definierten Erweiterungsmassnahmen in demselben Softwaresystem, das in zwei Versionen vorlag: Als unbehandeltes System mit viel Architekturerosion und als restrukturiertes, architekturkonformes System Kosten für Erweiterung 70 60 50 40 30 20 10 Erweiterungsmassnahme erodiertes System Erweiterungsmassnahme architekturkonformes System 0 Projekt-Lebensdauer 2010 hello2morrow GmbH 6

Die Abhilfe Six Sigma für Software Six Sigma ist eine standardisierte Methode zur Verbesserung von Prozessen Systematische Verringerung von Abweichungen Systematische Optimierung der Prozesse in Richtung der Qualitätsanforderungen Six Sigma basiert auf einer genauen Defnition und Überprüfung der Qualität DMAIC-Zyklus 2010 hello2morrow GmbH 7

Wie misst man technische Softwarequalität? Architektur Anzahl der Abweichungen von Architekturvorgaben Struktur Anzahl der zyklischen Packages, Source-Files, JAR-Files. Größe der Zyklengruppen, Stärke der Kopplung Modularisierung, Grösse, Komplexität, (Programmdesign) Metriken mit Definition einer Menge von Schwellwerten (Qualitätsmodell) und Messung der Anzahl der Verletzungen Programmierregeln Benutzung von Coding-Rule-Checkern (z.b. Checkstyle, Findbugs, PMD); Messung der Anzahl von Regelverletzungen 2010 hello2morrow GmbH 8

Architekturregeln benötigen eine logische Soll-Architektur 2010 hello2morrow GmbH 9

Zweidimensionale Softwarearchitektur 1. Dimension: horizontale Schichtenarchitektur Strukturiert ein Softwaresystem nach technischen Kriterien Klassisches, hierarchisches Architekturmodell: Obere Schichten dürfen Programmcode aus unteren Schichten nutzen, aber nicht umgekehrt GUI Controller Data 2010 hello2morrow GmbH 10

Zweidimensionale Softwarearchitektur Was ist mit der Strukturierung der Geschäftslogik? Die technische Struktur bildet lediglich die Basis für die zu implementierende Geschäftslogik (Business Logic) Normalerweise hat die Geschäftslogik ebenfalls eine Struktur und besteht aus einzelnen Anwendungsfällen (Use Cases) Die Anwendungsfälle haben untereinander klar definierte Abhängigkeiten Die Anwendungsfälle sind unabhängig von der technischen Schichtung strukturiert sie sind orthogonal zur technischen Schichtung. 2010 hello2morrow GmbH 11

Zweidimensionale Softwarearchitektur 2. Dimension: vertikale Säulenarchitektur Strukturiert ein Softwaresystem nach fachlichen Kriterien (z.b. Use Cases) Auch hier gibt es häufig eine klare Hierarchie (z.b. von links nach rechts) Use Case: Use Case: Use Case: Use Case: Contract Customer User Common 2010 hello2morrow GmbH 12

Zweidimensionale Softwarearchitektur Architecture Grid horizontale + vertikale Schnitte Ihr Softwaresystem Schnittpunkte: Natürliche Subsysteme GUI Controller Logic Contract Customer User Common Data Schritt 1: Zerlege das System in horizontale Schichten nach technischen Kriterien Schritt 2: Zerlege das System in vertikale Säulen nach fachlichen Kriterien (Geschäftslogik) Schritt 3: Definiere die erlaubten/verbotenen Abhängigkeiten zwischen Schichten und Säulen Das zweidimensionale Architekturkonzept ist inbesondere gut für betriebswirtschaftliche Applikationen bei Banken, Versicherungen, Logistik, Verwaltung geeignet. 2010 hello2morrow GmbH 13

Architekturregeln müssen automatisch prüfbar sein 2010 hello2morrow GmbH 14

Softwarearchitektur-Monitoring Definition SOLL-Architektur Analyse IST-Architektur Abgleich von SOLL / IST- Architektur Anpassung / Erweiterung Architekturentwurf Planung der Code-Restrukturierung Architekturverifikation am Entwicklerarbeitsplatz Implementierung 2010 hello2morrow GmbH 15

Metric distance (Robert C. Martin) D = A + I 1 Value range [-1.. +1] Negative values are in the Zone of pain Positive values belong to the Zone of uselessness Good values are close to zero (e.g. -0,25 to +0,25) 12:20 2005-2010, hello2morrow 16 2010 hello2morrow GmbH 16

Zyklische Abhängigkeiten sind schädlich "The dependencies between packages must not form cycles." Robert C. Martin in "Agile Software Development" "Guideline: No Cycles between Packages. If a group of packages have cyclic dependency then they may need to be treated as one larger package in terms of a release unit. This is undesirable because releasing larger packages (or package aggregates) increases the likelihood of affecting something." Craig Larman in "Applying UML And Patterns" "Cyclic physical dependencies among components inhibit understanding, testing and reuse. " John Lakos in "Large-Scale C++ Software Design" 2010 hello2morrow GmbH 17

Zyklische Abhängigkeiten sind schädlich level C 3 C B 2 B A 1 A Case 1: cyclic Case 2: acyclic Um die Funktionalität einer Komponente zu verstehen muss man alle Komponenten verstehen Man kann alle Komponenten nur gemeinsam aber nicht einzeln testen Es gibt nur eine Möglichkeit der Wiederverwendung: Alle Komponenten aus dem Zyklus wiederverwenden Eine Impact-Analyse für eine Änderung ist schwierig ( eventuell müssen wir alle Komponenten ändern ) 2010 hello2morrow GmbH 18

Große Package Zyklengruppe ("Code Tumor") 2010 hello2morrow GmbH 19

Beispiel für eine zyklische Abhängigkeit Presentation Model Main AlarmClock AlarmHandler AlarmToConsole AlarmToFile 2010 hello2morrow GmbH 20

Aufbrechen der zyklischen Abhängigkeit Presentation <<bottom>> Model Main AlarmClock AlarmHandler <<interface>> IAlarmHandler AlarmToConsole AlarmToFile 2010 hello2morrow GmbH 21

Wie misst man den Kopplungsgrad? Component Dependency: Anzahl der direkten und indirekten (transitiven) Abhängigkeiten einer Komponente Metrik ACD = Average Component Dependency Die durchschnittliche Anzahl der direkten und indirekten Abhängigkeiten pro Komponente 6 6 3 Cycles 3 3 6 6 1 1 1 1 1 1 6 1 2 3 2 Cumulative Component Dependency = 15 ACD = 15/6 = 2,5 CCD = 26 (Cycles) ACD = 26/6 = 4,33 CCD=12 ACD = 12/6 = 2 Metrik NCCD = Normalized cumulative component dependency Verhältnis der CCD zur CCD eines gleichgrossen Systems, das als balanced-binary-tree strukturiert ist 2010 hello2morrow GmbH 22

Qualitätsmodell für die Zieldefinition Architekturvorgaben Regeln für die Struktur Auswahl von geeigneten Metriken Festlegen von passenden Metrikschwellwerten Auswahl von Programmierregeln und Richtlinien Ein Qualitätsmodell ist anpasst an die Applikationsdomäne: projekt- oder firmenspezifisch Ein Qualitätsmodell muss in der Praxis funktionieren 2010 hello2morrow GmbH 23

Ein einfaches, aber nützliches und funktionierendes Qualitätsmodell Rule 1: Define a cycle free logical architecture down to the level of subsystems and a strict and consistent package naming convention Rule 2: Do not allow cyclic dependencies between different packages Rule 3: Keep the coupling low (NCCD < 7) Rule 4: Limit the size of a Java package (e.g. less than 50 classes) Rule 5: Limit the size of Java files (700 LOC is a reasonable value) Rule 6: Limit the cyclomatic complexity of methods (e.g. < 20) (number of possible control paths through a method) Rule 7: Avoid long duplicated code sequences: no copies of classes or packages 2010 hello2morrow GmbH 24

Qualitätsmodell Reference Card: "Software Architecture and Quality Essentials" Best practices for developing high quality and low maintenance secure applications Kostenfreier Download auf unserer Website www.hello2morrow.com 2010 hello2morrow GmbH 25

Mögliche Tool Chain Opensource Codehaus Sonar (www.sonarsource.org) als Qualitätsleitstand SonarJ (www.hello2morrow.com) für Architekturprüfung und Strukturüberwachung (Kopplung, Zyklen, Metriken) PMD, Checkstyle und/oder Findbugs für Programmierregeln 2010 hello2morrow GmbH 26

Ihre Fragen Meine Email-Adresse: t.schoen@hello2morrow.com Hello2morrow Aussteller-Stand: Auf der unteren Ebene 2010 hello2morrow GmbH 27