Langlebige Softwarearchitekturen



Ähnliche Dokumente
Keine technischen Schulden mehr!

Validierung von SW-Architekturen - Erfahrungen beim Einsatz des Sotographen Dr. Carola Lilienthal Carola.Lilienthal@workplace-solutions.

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen

Technische Schulden in Architekturen erkennen und beseitigen

Langlebige Softwarearchitekturen der Weg aus den technischen Schulden

Nachhaltigkeit durch regelmäßige Architekturprüfung Software-Architekturen überprüfen und erhalten

Langlebige Software-Architekturen

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

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

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

Reengineering und Refactoring von Softwarearchitekturen

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

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

Some Software Engineering Principles

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

16 Architekturentwurf Einführung und Überblick

SDD System Design Document

Fragebogen ISONORM 9241/110-S

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

IT-Unternehmensarchitektur Übung 01: IT-Strategie

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Klausur Softwaretechnik Feb. 2008

Übungsklausur vom 7. Dez. 2007

Was ist Software-Architektur?

PSE: Analysesoftware für Logistiknetzwerke

Zukunft der WfbM Positionspapier des Fachausschusses IV

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Software modular bauen

Klausur Software-Engineering SS 2005 Iwanowski

Vorstellung des BMBF-Projektes FluSs aus Sicht eines Endanwenders. Düsseldorf Maritim-Hotel, 09. Juli 2013 Mark Zwirner

Prüfung Software Engineering I (IB)

Data Mining-Projekte

FACHHOCHSCHULE MANNHEIM

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Wärmebildkamera. Arbeitszeit: 15 Minuten

Nicht über uns ohne uns

Die Softwareentwicklungsphasen!

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle

Mit Soft Skills zum Projekterfolg

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Sotographie Code-basierte Analyse, Bewertung und Sanierung komplexer ABAP-Systeme

Sehr geehrter Herr Pfarrer, sehr geehrte pastorale Mitarbeiterin, sehr geehrter pastoraler Mitarbeiter!

Softwareanforderungsanalyse

Electures-Portal. Vorstellung und Empfehlungen Christoph Hermann - Universität Freiburg - Institut für Informatik 1

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Software Survivability

Der Vortrag besteht aus 27 Seiten! Ich habe 15 Minuten. + 1 Minute Diskussion Passt!

Diese wurde im Leitbild fixiert welches von den Mitarbeitern/innen in Kooperation mit den Nutzern entwickelt und reflektiert wurde.

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

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

SOA Starter Kit Einführungsstrategien und Einstiegspunkte

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

Übungen zur Softwaretechnik

Was ist Sozial-Raum-Orientierung?

Offen für Neues. Glas im Innenbereich.

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Meet Magento,

Microsoft Office 365 Kalenderfreigabe

Architektur und Qualität. Tjard Köbberling

Commerce-Anwendungen. Entwicklung von E- Prof. Dr. Susann Kowalski

Digitaler*Ausstellungsbegleiter*für*Mobilgeräte ** * * * Alter: Studiengang: Geschlecht: $ $ $ $ Datum: Falls%Ja,%welches? Falls%ja, %welches?

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

16.4 Wiederverwendung von COTS-Produkten

Neues Modul für individuelle Anlagen. Änderung bei den Postleitzahl-Mutationen

Was ist eigentlich ein Service? Software Architektur 08

Was wir gut und wichtig finden

Unabhängig, investitionssicher, nutzerfreundlich: Open Source für integrale betriebliche IT-Systeme

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Social-Media Basis-Paket Ein einfaches und verständliches Unternehmens-Programm für den ersten Schritt

Fragebogen zur Anforderungsanalyse

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Applikationsvirtualisierung in der Praxis. Vortrag an der IHK Südlicher Oberrhein, Freiburg Thomas Stöcklin / 2007 thomas.stoecklin@gmx.

Microsoft SharePoint 2013 Designer

RAUM FÜR TÜREN AUSSTELLUNGSSYSTEM

Qualitätsmanagement im Projekt

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Mit service-orientierten Architekturkonzepten ABAP- Altsysteme auf die Zukunft ausrichten

Alle gehören dazu. Vorwort

mit attraktiven visuellen Inhalten

MESSE- PROGRAMM. Halle H I Stand B.25 I CCH Hamburg

Refactoring relationaler Datenbank. Shaoke Wu

Change-Monitor - Einführung und Anwendung.

Xesar. Die vielfältige Sicherheitslösung

Java Enterprise Architekturen Willkommen in der Realität

Modul: Soziale Kompetenz. Vier Ohren. Zeitl. Rahmen: ~ 45 min. Ort: drinnen

17 Architekturentwurf Vorgehen und Dokumentation

Praxen bei der Implementierung von IT achten?

TechNote: Exchange Journaling aktivieren

Softwaretechnik (Allgemeine Informatik) Überblick

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Erklären Sie die Innenfinanzierung und die Formen derselben!

Reizdarmsyndrom lindern

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

Transkript:

Langlebige Softwarearchitekturen Dr. Carola Lilienthal Carola.Lilienthal@wps.de www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Die zwei Architekturziele für diesen Vortrag Architekturziel 1: Wartbarkeit Stabilität und Verständlichkeit Reduktion von Komplexität schnelle Fehleranalyse schnelle Changes Architekturziel 2: Fachliche Flexibilität Geschäftsprozesse verschiedener Kunden unterstützen Anpassbarkeit an geänderte Anforderungen Baukastenprinzip 08.07.2015 //// Seite 2 1

Technischen Schulden = Architektur-Erosion Grad der Wartbarkeit Regelmäßige Architektur-Erneuerung Korridor für gute Architekturqualität Architektur- Erosion Refactorings Neue Funktionalität pro Zeiteinheit 08.07.2015 //// Seite 3 Architekturanalyse: Was ist das? Findet sich die geplante Architektur (Soll-Architektur) in der Strukturen der implementierten Software (Ist-Architektur) wieder? Soll-Architektur Ist-Architektur Quelltext 08.07.2015 //// Seite 4 2

Erfahrungshintergrund Architekturanalysen in Java, C#, C++, ABAP etc. Erkenntnisse Typische Eigenschaften je nach Größe Strukturelle Einfachheit und Einheitlichkeit Ohne regelmäßige Architektur-Erneuerung degenerieren Systeme Analysewerkzeuge SotoArc + Sotograph SonarJ Sonargraph Lattix 08.07.2015 //// Seite 5 Strukturelle Einfachheit der Architektur = Zeitgewinn! Einfach, einheitliche Architektur Modularität Geordnetheit Mustertreue 08.07.2015 //// Seite 6 3

Strukturelle Einfachheit der Architektur = Zeitgewinn! Einfach, einheitliche Architektur Modularität Geordnetheit Mustertreue 08.07.2015 //// Seite 7 Mustertreue: Was finden wir? Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen? 08.07.2015 //// Seite 8 4

Architekturstile: Was ist das? Ein Architekturstil ist eine prinzipielle Lösungsstruktur, die für ein Softwaresystem durchgängig und unter weitgehendem Verzicht auf Ausnahmen angewandt werden sollte. [Reussner et al. 2006] Komponentenarchitektur Schichtenarchitektur Mustersprache GUI Window View Model C on t r o l Service BusinessObject ValueObject 08.07.2015 //// Seite 9 Zwei Dimensionen einer Architektur Technische Schichtung Fachliche Schichtung Eine Komponente verursacht die Probleme Schwer zu behebende Verletzungen Leicht zu behebende Verletzungen Eine Komponente verursacht die Probleme 08.07.2015 //// Seite 10 5

Fachliche Schichtung misslungen Technische Schichtung Fast alle 90 fachlichen Komponenten brauchen sich gegenseitig Keine fachliche Schichtung Wenige Schichtenverletzungen 08.07.2015 //// Seite 11 Mustersprache 80% des Sourcecodes lässt sich den 23 Mustern zuordnen 4% Verletzungen in den Mustern 08.07.2015 //// Seite 12 6

Strukturelle Einfachheit der Architektur = Zeitgewinn! Architekturkomplexität Modularität Geordnetheit Mustertreue 08.07.2015 //// Seite 13 Modularität: Entwurf nach Zuständigkeiten Entwurf nach Zuständigkeiten (engl.: Responsibility-Driven Design) ist eine Entwurfsphilosophie, die von Rebecca Wirfs-Brock et al. Ende der 80er Jahre formuliert wurde: Dazu passende Ansätze: Separation of Concerns (Dijkstra) Modularität (Parnas) Objects are not just simple bundles of logic and data. They are responsible members of an object community. Kohäsion (Myers, Coad&Yourdon) Single Responsibility Principle (SRP) (Robert C. Martin) Jede Klasse, jedes Paket, jedes Subsystem, jedes Modul, jede Schicht sollte für eine klar definierte Aufgabe zuständig sein. 08.07.2015 //// Seite 14 7

Modularität: Ausgewogene Größenverhältnisse Ist das System auf den verschiedenen Ebenen ausgewogen? Welche Code-Abschnitte fallen durch ihre Größe besonders auf? Typische Metriken: LOC pro Methode, Klasse, Package, Komponenten Duplizierter Code Zyklomatische Komplexität Anti-Pattern Godclass 08.07.2015 //// Seite 15 Kopplungsgrad Ist das System auf den verschiedenen Ebenen lose gekoppelt? Welche Code-Abschnitte fallen durch besonders viele Beziehungen auf? Ziel: Lose Kopplung 08.07.2015 //// Seite 16 8

Beispiel: Größenverhältnis und Kopplungsgrad Große Steuerungsklassen benutzen bis zu 100 500 andere Klassen 300 30 250 25 RLOC/Klasse 200 150 100 50 0 0 200.000 400.000 600.000 800.000 1.000.000 1.200.000 1.400.000 RLOC Beziehungen/Klasse 20 15 10 5 0 0 200.000 400.000 600.000 800.000 1.000.000 1.200.000 1.400.000 RLOC Ausgewogene Größenverhältnisse auf allen Ebenen führen zu geringerer Kopplung und besserem objektorientiertem Entwurfs 08.07.2015 //// Seite 17 Strukturelle Einfachheit der Architektur = Zeitgewinn! Architekturkomplexität Modularität Geordnetheit Mustertreue 08.07.2015 //// Seite 18 9

Zyklenfreiheit Hierarchische Strukturen Acyclic Dependencies Principle (ADP) Auswirkung auf: Wartbarkeit Austauschbarkeit Testbarkeit Einstiegspunkt beim Analysieren Zyklen zwischen Klassen, Paketen, Komponenten und Schichten vermeiden 08.07.2015 //// Seite 19 Große Zyklen sichtbar machen 327 Klassen aus 8 Komponenten brauchen sich gegenseitig 08.07.2015 //// Seite 20 10

Der Zwang zur Zyklenfreiheit 80% des Sourcecodes 9 Komponenten = 17 Subsysteme 08.07.2015 //// Seite 21 Grundregeln struktureller Einfachheit für Architektur Architekturkomplexität Modularität Geordnetheit Mustertreue Zuständigkeit Kopplung Größenverhältnisse Schnittstellen Zyklenfreiheit auf allen Ebenen Architekturstil(e) Einheitlich und durchgängige 08.07.2015 //// Seite 22 11

Schrittweise Weiterentwicklung der Architektur Phase 1: Aufräumen Phase 1 Soll-/Ist-Architektur vergleichen Phase 2: Verbessern Phase 2 Architektur diskutieren und verbessern Phase 3: Erhalten Phase 3 Im Architekturkorridor bleiben und Architektur verbessern 2-Tage Workshop Verletzungen beheben 2x2-Tage Workshop Anpassungen an neue Architektur -Guidlines 1-Tages Workshop Reparaturen ½-Tages Workshop 08.07.2015 //// Seite 23 Vielen Dank für Ihre Aufmerksamkeit. Diplom-Informatikerin Dr. Carola Lilienthal Mitglied der Geschäftsleitung cl +49 170 184 77 11 08.07.2015 //// Seite 24 12