Skip to main content Toggle navigation Allgemein Programmierung Java Enterprise DevOps Mobile & IoT Kontakt Software Architekturprüfung in Java 4. Mai 201727. Juli 2017 Alexander Simon Allgemein Architekturprüfung und Softwarequalität Softwarearchitektur bildet die wichtigsten Entscheidungen in Form von Strukturen, Komponenten, Schnittstellen und Beziehungen in der Software ab. Sie beschreibt im Weiteren die Umsetzung der qualitativen Anforderungen in die Software. Softwarearchitektur ist aktuell in aller Munde und Unternehmen, welche in ihrer Software diese nötige Qualität nicht erreichen, merken die Konsequenzen sehr schnell. Die ersten Indikatoren dafür sind: Die Umsetzung von neuen Features dauert sehr lange Neue Features haben eine hohe Issue Rate Bereits behobene Fehler kommen mit neuen Updates wieder ins System Doch wie entstehen solche Probleme? Oftmals ist es so, dass die Softwareentwicklung mit der Umsetzung von fachlichen Anforderungen ausgelastet ist. Für die Umsetzung oder Prüfung der Softwarequalität bleibt wenig bis keine Zeit. Bleibt eine Prüfung der Abhängigkeiten und des Architekturmodells aus, verschlechtert sich die Qualität der Software zunehmend und technische Schulden bauen sich auf. Dr. Carola Lilienthal beschreibt dies in Ihrem Buch „Langlebige Softwarearchitekturen“: Wenn eine kontinuierliche Prüfung des Modells fehlt, erfolgt automatisch eine Erosion der Architektur. Wie messe ich Software-Qualität? Heute erwarten die Auftraggeber, dass Software möglichst geringe Wartungs- und Erweiterungskosten verursacht. Die technischen Schulden müssen so gering wie möglich gehalten werden. Dies erreiche ich im ersten Schritt durch eine Messung. Oder anders formuliert: You can’t control what you can’t measure. Tom DeMarco Sobald wir ein Messverfahren beispielsweise für ein Qualitätsmerkmal „Wartbarkeit“ gefunden haben, können Maßnahmen zur Kontrolle durchgeführt werden. Erosion und Wartung (aus LIL) Bei der Evaluierung verschiedener Werkzeuge bin ich auf Sonargraph Architekt gestoßen. Das Tool benutzt eine einfache Sprache, um Architekturvorgabe zu erstellen. Diese Vorgaben werden dann zur Qualitäts-Messungen einer Java Codebasis benutzt. Architekturdefinition mit dem Sonargraph Architect Typische Architektur-Verletzungen Im Laufe der zahlreichen Code-Reviews der letzten Jahre sind mir immer wieder 2 Arten der Verletzungen von Architekturrichtlinien aufgefallen. Verletzung von technischen Architekturvorgaben Verletzung der Abhängigkeiten eines Schichtenmodell Große Klassen mit vielen Abhängigkeiten („Gott Klassen“, Helper, Utility oder Manager) Nicht Einhaltung von Abbildungsregeln wie Logik in den falschen Schichten Im folgenden Bild sieht man wie Abhängigkeiten in der Software welche auf einem MVVM Muster basieren sollte, verletzt wurden. Verletzung von technischen Architekturvorgaben Diese Verletzungen können „relativ“ einfach behoben werden. „Einfach“ bedeutet, diese können parallel zur aktuellen Entwicklung behoben werden. Fachliche Verletzungen Zum anderen und viel aufwändiger in der Behebung ist eine fehlende oder falsche fachliche Trennung von Komponenten in Module. Die Abhängigkeiten von fachlichen auf unterschiedlichen Schichten benötigt ein tiefes fachliches Verständnis der Anwendung. Dies führt zu einer engen Kopplung und eine Auftrennung wird somit massiv erschwert. In einer Produktentwicklung verhindert dies eine fachliche Komponentenbildung, getrennte Versionierung und vieles mehr. Der Weg, der aus diesem Dilemma der technischen Schulden herausführt, ist die Architekturqualität rückwirkend zu verbessern. Dadurch kann das System Schritt für Schritt wieder in den Korridor geringer technischer Schulden zurückgebracht werden (s. rote aufsteigende Pfeile in Abbildung 1). Dieser Weg ist anstrengend und kostet Geld – ist aber eine sinnvolle Investition in die Zukunft. Schließlich sorgt man dafür, dass die Wartung in Zukunft weniger anstrengend und billiger wird. Bei Softwaresystemen, die einmal eine gute Architektur hatten, führt dieses Vorgehen in der Regel schnell zum Erfolg. Quellen: LIL … Langlebige Softwarearchitekturen von Carola Lilienthal ISBN: 978-3-86490-292-5 H2M … Sonargraph Architekt https://www.hello2morrow.com/ Seminar zum Thema Qualitätsmanagement und Qualitätssicherung in der Softwareentwicklung Alexander Simon / Alexander Simon Alexander Simon ist seit 2003 Geschäftsführer und Leiter der Softwareentwicklung der emax-it Informationstechnologie GmbH. Sein Arbeitsumfeld umfasst WebCommerce Umgebungen und die Integration von heterogenen Systemlandschaften. Seine langjährige Erfahrung in der Softwareentwicklung liegt im JavaEE Bereich und Typescript Frontend Entwicklung. Zusätzlich fungiert er als IT Professional bei Virtualisierungsprojekten, Cloud-Lösungen und ApplianceIntegration für PaaS, SaaS und XaaS. Er selbst lebt in Österreich und arbeitet für unterschiedliche Großkunden in ganz Europa und stellt sein Wissen regelmäßig als Fachautor, Berater und Coach zur Verfügung. Schreibe einen Kommentar Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert. Kommentar Name * E-Mail * Website Post Navigation Docker und Java – Teil 4: Ein RESTful Web Service mit Spring Boot Project Lombok – Java Klassen scharf gewürzt Search for: TOP 3 Java Seminare ✓ Java Grundlagen ✓ Java Erweiterungen ✓ Java Erweiterungen II - Vertiefung Neueste Beiträge Java und Apple Swift Project Lombok – Java Klassen scharf gewürzt Software Architekturprüfung in Java Docker und Java – Teil 4: Ein RESTful Web Service mit Spring Boot Docker und Java – Teil 3: Der Build-Prozess Folgen Sie uns Twitter YouTube Xing LinkedIn Facebook RSS Download Java-Trainings Broschüre Tags AJAX Build Clean Code Codequalität Container Continuous Delivery DevOps Java Docker Funktionale Programmierung Garbage Java 8 Java 9 Java Card Java Embedded Java Micro Edition JavaScript JavaServer Faces Kontrollstrukturen Lambda Linux Maven Microservices Mobile Mocking OO REST RESTful Web Services Scala Softwarequalität Softwaretesting Spring Spring Boot String Deduplication Swift Swing Web Development Collector G1 iOS IoT Java-Performance Folgen Sie uns Twitter YouTube Xing LinkedIn Facebook RSS Impressum Datenschutz Bildnachweise Downloads © 2017 - Powered by Integrata AG