Software Architekturprüfung in Java

Werbung
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
Herunterladen