Continuous Architecture Management



Ähnliche Dokumente
Der agile Software Architekt

Continuous Architecture Management

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

ZuuL - Entwicklung eines Adventures

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

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski

Präsentation einer agilen Methode

Agile Praktiken für das Service Transition Management. und wie IT Automation Ihre Service Transition Prozesse verändert - Change Management

AGIL WIE EIN WASSERFALL

Softwareentwicklung aus Sicht des Gehirns

Interpretation des agilen Manifest

Agile Softwareprozess-Modelle

Sind wir nicht alle ein bisschen agil? Dipl.-Inform. Tammo Freese xpdays, Karlsruhe, 22. November 2004

Cloud Architektur Workshop

Echolot Qualitätssicherung mit Sonar

Grundlagen Software Engineering

Was funktioniert und was nicht? Agile Softwareentwicklung in der Praxis Martin Lippert,

Iterativ. Inkrementell

Agile Management Einführung in agiles Management

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden

Wieso Prozesse? Ist das nicht einfach nur mühsam? A. Stucki, Solcept AG

Festpreisvertrag und agil nützt nicht viel? Stefan Roock, Henning Wolf,

Agile Methoden und Projektverträge. Berlin DoSE

Qualitätsmanagement: Dokumentieren. Kontrollieren. Verfolgen.

TFS Customzing. in der Praxis. Thomas Gugler. seit 2005 bei ANECON. .NET seit 2002 (happy bday!) Schwerpunkte: MCPD.Net 4.0, MCTS TFS, Scrum Master,

RE bei agilen Methoden

Erfahrungen mit Hartz IV- Empfängern

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Nutzung und Akzeptanz von QR-Codes

Online Intelligence Solutions TESTABLAUF. 7 Schritte für ein erfolgreiches Testing.

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

Agilität auf Unternehmensebene - Was hält uns davon ab?

Der Gabelstapler: Wie? Was? Wer? Wo?

How to Survive an Audit with Real-Time Traceability and Gap Analysis. Martin Kochloefl, Software Solutions Consultant Seapine Software

Agile Software Verteilung

DevOps und Continuous Delivery. Von Release Automation bis zur Feedbackschleife. Matthias Zieger codecentric AG

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

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

Transparente SOA Governance mit Modellierung. OOP 2010 München, 28. Januar 2010, 12:30 Uhr Modeling Day


07. November, Zürich-Oerlikon

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Reengineering und Refactoring von Softwarearchitekturen

DIGICOMP OPEN TUESDAY AKTUELLE STANDARDS UND TRENDS IN DER AGILEN SOFTWARE ENTWICKLUNG. Michael Palotas 7. April GRIDFUSION

Was bringt TDD wirklich?

Umfrage zum Informationsbedarf im Requirements Engineering

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Projektmanagement in der Spieleentwicklung

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

Softwareentwicklung aus Sicht des Gehirns

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Softwaretechnik. Lean Software Development. Prof. Dr. Matthias Hölzl Joschka Rinke. 21. Januar 2016

Teambildung. 1 Einleitung. 2 Messen der Produktivität

Generative Prozessmodelle Patrick Otto MDD Konferenz

Menü auf zwei Module verteilt (Joomla 3.4.0)

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Agile Methoden vs. Testen

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert

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

Verwendung von Anforderungsbasierten Verfolgbarkeitsmetriken im Projektmanagement

Agile Softwareentwicklung Scrum vs. Kanban

Unigraphics Schnittstelle entfernen

Wenn Russland kein Gas mehr liefert

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

Geld Verdienen im Internet leicht gemacht

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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Terminabgleich mit Mobiltelefonen

Scrum, ISIS und ISO 9001 zertifiziertes Qualitätsmanagement. Joachim Meyer

Agiles Projektmanagement. erklärt in 30 Minuten! IT-Forum Agiles Projektmanagement, NIK 29. Juni Thomas Hemmer

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

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

Schulung Marketing Engine Thema : Einrichtung der App

Die agile Prozesswerkstatt

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner

Scaling Scrum Nexus professionell umsetzen

VIELE SAGEN... hohe Qualität große Erfahrung besondere Spezialisierung. nur für Sie!

Änderungsbasiertes Requirements Management mit agosense.requirements

EEX Kundeninformation

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Erfolg beginnt im Kopf

Setzen Sie die richtigen Prioritäten im Service Desk!

GELEBTE ENTWICKLUNGSRICHTLINIEN

Fragen Arthur Zaczek. Apr 2015

EchoLink und Windows XP SP2

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

Testen mit JUnit. Motivation

Impuls-Studie Enterprise Mobility

Der Blindflug in der IT - IT-Prozesse messen und steuern -

Christian Kühnel, BMW Group AGILE ENTWICKLUNG VON FAHRERASSISTENZSOFTWARE. AGILE CARS 2014.

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

Schuljahreswechsel im Schul-Webportal

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

Rechnungswesen Prüfung (30 Minuten - 10 Punkte)

Übung: Verwendung von Java-Threads

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

Extreme Programming: Überblick

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

Transkript:

Continuous Architecture Management Erkennen und Verhindern von struktureller Erosion Ingmar Kellner hello2morrow GmbH Mai 2012

Agenda Motivation des Software Architekten Ursachen und Folgen struktureller Erosion Lösungsansätze Entwicklungsprozess 2012, hello2morrow GmbH 2

Motivation Als Software Architekt will ich dass meine Software eine hohe Qualität hat wissen, wie die interne Struktur wirklich aussieht strukturelle Erosion verhindern wissen, wo aktuell die Problemstellen sind eine aktuelle Dokumentation der Architektur existierende Software Module wiederverwenden 2012, hello2morrow GmbH 3

Und dennoch sieht es oft so aus: 2012, hello2morrow GmbH 4

Offensichtliche Widerstände Zeitdruck Was bedeutet gute Qualität? Es ist zu kompliziert Metriken zu berechnen und sinnvolle Schwellenwerte zu definieren Es ist aufwändig, die Architekturdokumentation mit der Entwicklung abzugleichen Die Abhängigkeiten zwischen Teilen der Software manuell zu überprüfen ist nicht machbar Fehlende Toolunterstützung, z.b. zeigt die IDE keine Warnung an, wenn eine unerlaubte Abhängigkeit eingebaut wird. 2012, hello2morrow GmbH 5

Realitätscheck Gibt es bei Ihnen verbindliche Qualitätsregeln? Werden diese Regeln täglich automatisch geprüft? Gibt es eine formelle Architekturdefinition? Wird der Code automatisch und täglich auf Einhaltung der Architekturdefinition geprüft? Denken Sie, dass in diesem Bereich mehr zu tun ist? 2012, hello2morrow GmbH 6

Motivation Ursachen und Folgen der strukturellen Erosion Lösungsansätze Entwicklungsprozess 2012, hello2morrow GmbH 7

Einige Gründe für die strukturelle Erosion Wissen und Fähigkeiten im Team sind ungleich verteilt Kopplung und Komplexität wachsen schnell Vielfach gibt es keine (aktuelle) formale Architektur Mythos der agilen Superhelden In den meisten Projekten wird die Qualität am Schluss betrachtet Desinteresse an Qualität: Management betrachtet die Software als black box Das Gesetz der Software Entropy [Lehmann] Eine Software, die benutzt wird, wird verändert werden. Wenn eine Software verändert wird, steigt die Komplexität, es sei denn, man arbeitet aktiv dagegen. 2012, hello2morrow GmbH 8

Symptome der Erosion (Robert C. Martin) Rigidity The system is hard to change because every change forces many other changes. Fragility Changes cause the system to break in conceptually unrelated places. Immobility It's hard to disentangle the system into reusable components. Viscosity Doing things right is harder than doing things wrong. Opacity It is hard to read and understand. It does not express its intent well. Overall: The software starts to rot like a bad piece of meat 2012, hello2morrow GmbH 9

Was ist technische Qualität? Unsere Definition: Technical quality of software can be defined as the level of conformance of a software system to a set a set of rules and guidelines derived from common sense and best practices. Those rules should cover software architecture, programming in general, testing and coding style. Technische Qualität lässt sich nicht allein durch Testen erreichen Technische Qualität manifestiert sich in jeder Codezeile Vier Aspekte technischer Qualität: Architektur (inkl. Abhängigkeitsstruktur) Software Metriken Programmierregeln Testbarkeit und Testabdeckung Welcher dieser Aspekte hat den größten Einfluss auf die Gesamtkosten? Messung der Qualität über Metriken und Zählung von Regelverletzungen 2012, hello2morrow GmbH 10

Kosten struktureller Erosion 2012, hello2morrow GmbH 11

Motivation Ursachen und Folgen der strukturellen Erosion Lösungsansätze Entwicklungsprozess 2012, hello2morrow GmbH 12

Architektur - Definition The architecture represents the software structures that form the skeleton of the application. [ASD] Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471] 2012, hello2morrow GmbH 13

Contract Customer User Common Erstellen einer Logischen Architektur Softwaresystem Presentation Domain Persistence Schritt 1: Teile horizontal in technische Aspekte Schritt 2: Teile vertikal in fachliche Aspekte Schritt 3: Definiere erlaubte Abhängigkeiten 2012, hello2morrow GmbH 14

Etwas komplexere Logische Architektur 2012, hello2morrow GmbH 15

Metrik für den Kopplungsgrad [LSD] Depends upon = Die Anzahl von Komponenten, von der eine Komponente direkt und indirekt abhängt (+1 für sich selbst). ACD (Average Component Dependency) = Die Summe aller depends upon Werte, geteilt durch die Anzahl aller Komponenten 6 3 6 Cycles 3 3 1 1 6 6 1 1 1 2 3 2 1 6 1 ACD = 15/6 = 2,5 Dependency Inversion ACD = 12/6 = 2 ACD = 26/6 = 4,33 2012, hello2morrow GmbH 16

Der Effekt von zyklischen Abhängigkeiten Zyklische Abhängigkeiten haben u.a. einen negativen Einfluss auf: Testbarkeit Verständlichkeit Wiederverwendung Erweiterbarkeit Build & Release Management Team building Cyclic physical dependencies in large, low-level subsystems have the greatest capacity to increase the overall cost of maintaining a system [John Lakos in LSD] 2012, hello2morrow GmbH 17

Strukturelle Erosion am Bsp des JDK 1.6 Zyklengruppe von 29 Packages 2012, hello2morrow GmbH 18

Strukturelle Erosion am Bsp des JDK 1.6 Zyklengruppe von 50 Packages 2012, hello2morrow GmbH 19

Strukturelle Erosion am Bsp des JDK 1.6 Zyklengruppe von 250 Packages 2012, hello2morrow GmbH 20

Bsp für das Auflösen eines Zyklus 2012, hello2morrow GmbH 21

Umkehrung der Abhängigkeit durch ein Callback Interface 2012, hello2morrow GmbH 22

Regeln für die Mikro Ebene Methoden implementieren Verhalten Beschränkung der Komplexität (Cyclomatic Complexity) Beschränkung von Parametern Klassen gruppieren Methoden Zyklen sollten vermieden werden Beschränkung der Größe (LOC, Anzahl Methoden) Kopplungsgrad im Auge behalten Packages gruppieren Klassen Zyklen sollten verboten sein Beschränkung der Anzahl enthaltener Klassen 2012, hello2morrow GmbH 23

Motivation Ursachen und Folgen der strukturellen Erosion Lösungsansätze Entwicklungsprozess 2012, hello2morrow GmbH 24

Prinzipien aus dem Agile Manifesto: [ ] Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Trugschluss: Man braucht keine Prozesse, Werkzeuge, Architekturdefinitionen, etc. 2012, hello2morrow GmbH 25

Verbesserungen erfordern Transparenz Define Control Measure Improve Analyze 2012, hello2morrow 26

Architektur Workflow ARCHITECT Definiert Architektur, Schwellenwerte und Aufgaben DEVELOPERS Implementieren Use Cases und Aufgaben unter Beachtung der Architektur und Schwellenwerten BUILD Server Überprüft die Einhaltung der Regeln 2012, hello2morrow GmbH 27

Architecture Workflow with Sonargraph ARCHITECT Version Control System DEVELOPER BUILD Reports TASK MANAGEMENT METRIC HISTORY 2012, hello2morrow GmbH 28

Take away: Wenige Regeln können viel bewirken Definition einer Zyklen-freien logische Architektur und einer konsistente Package Namenskonvention. Alle Packages müssen logischen Architekturelementen zugeordnet werden. Keine Zyklen zwischen Packages Kontrolle des Kopplungsgrades (ACD und NCCD mit vernünftigen Schwellenwerten) Beschränkung der Größe von Java Sourcen (700 Zeilen) Beschränkung der Zyklomatischen Komplexität von Methoden (z.b. 20) Regelmäßige, automatische Überprüfung der Regeln Qualität muss als Zielvorgabe von allen Managementebenen mitgetragen werden! 2012, hello2morrow GmbH 29

Weitere Informationen Whitepaper, DZone RefCard, etc. auf unserer Web-Seite: http://www.hello2morrow.com Meine e-mail: i.kellner@hello2morrow.de Referenzen [MMM] The Mythical Man-Month, F. P. Brooks, Addison-Wesley, 1975, 1995 [GOF] Design Patterns, Gamma et al., Addison-Wesley 1994 [LSD] Large-Scale C++ Software Design, John Lakos, Addison-Wesley 1996 [EXP] Extreme Programming, Kent Beck, Addison-Wesley 1999 [AUP] Applying UML and Patterns, Craig Larman, Prentice Hall 2000 [TOS] Testing Object-Oriented Systems, Beizer, Addison-Wesley 2000 [ASD] Agile Software Development, Robert C. Martin, Prentice Hall 2003 2012, hello2morrow GmbH 30