...we make the invisible visible... Qualitätsanalyse, Code Comprehension und Reengineering



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

...we make the invisible visible...

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

Erfahrungen mit kontinuierlichem Architektur- und Qualitätsmonitoring in einer großen Anwendungsfamilie im Bankenumfeld

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

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

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Reengineering und Refactoring von Softwarearchitekturen

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Java Script für die Nutzung unseres Online-Bestellsystems

Einführung und Motivation

Sehr geehrte Faktor-IPS Anwender,

Was meinen die Leute eigentlich mit: Grexit?

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

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

Partnerportal Installateure Registrierung

Welchen Weg nimmt Ihr Vermögen. Unsere Leistung zu Ihrer Privaten Vermögensplanung. Wir machen aus Zahlen Werte

J e t z t h e l f e i c h m i r s e l b s t S A P S o l u t i o n M a n a g e r o p t i m a l e i n s e t z e n Hintergrund Ihr Nutzen

Langlebige Softwarearchitekturen

Was bringt TDD wirklich?

Softwareanforderungsanalyse

SWE12 Übungen Software-Engineering

Anleitung zur Datensicherung und -rücksicherung in der VR-NetWorld Software

Task: Nmap Skripte ausführen

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

Java Entwicklung für Embedded Devices Best & Worst Practices!

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

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

Java Enterprise Architekturen Willkommen in der Realität

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Outlook Vorlagen/Templates

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung

Formale Sprachen und Grammatiken

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Softwarearchitektur als Mittel für Qualitätssicherung und SOA Governance

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Anleitung zur Webservice Entwicklung unter Eclipse

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

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

FORGE2015 HDC Session 4. Nachhaltige Infrastruktur als technologische Herausforderung. Tibor Kálmán Tim Hasler Sven Bingert

Übungen zur Softwaretechnik

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Informationsblatt Induktionsbeweis

itestra Software Tuning Mehr Leistung. Weniger Kosten. Software Productivity

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Alexander Delater, Barbara Paech RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG

Enterprise Architekturmanagement im Spannungsfeld agiler Methoden oder Agiles EAM. BITKOM Software Summit Frankfurt,

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

07. November, Zürich-Oerlikon

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld

Grundlagen Software Engineering

MetaQuotes Empfehlungen zum Gebrauch von

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

Wie oft soll ich essen?

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Zeichen bei Zahlen entschlüsseln

Begeisterung und Leidenschaft im Vertrieb machen erfolgreich. Kurzdarstellung des Dienstleistungsangebots

Der Gabelstapler: Wie? Was? Wer? Wo?

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Softwareentwicklung aus Sicht des Gehirns

Version 0.3. Installation von MinGW und Eclipse CDT

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

AutoCAD Dienstprogramm zur Lizenzübertragung

Der Wunschkunden- Test

Semantik von Formeln und Sequenzen

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

Step by Step Webserver unter Windows Server von Christian Bartl

Built to last: Modernisierung von Java-Anwendungen

Kontinuierliche Architekturanalyse. in 3D

Microsoft Update Windows Update

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

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

Die Post hat eine Umfrage gemacht

Winet Network Solutions AG Täfernstrasse 2A CH-5405 Baden-Dättwil

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Wissensinseln trocken legen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

CENIT RETENTION SOLUTION 1.1 Verwaltung von temporären Sperren und Löschworkflows. Copyright CENIT AG

Installationshandbuch (deutsch)

Executive Information. «Setup and forget it!» So automatisieren Sie Ihr Datacenter mit dem Microsoft System Center Orchestrator 2012.

Scrum. Übung 3. Grundlagen des Software Engineerings. Asim Abdulkhaleq 20 November 2014

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Fragebogen zur Anforderungsanalyse

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

Anforderungen an die HIS

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Erstellen einer digitalen Signatur für Adobe-Formulare

ECO-Manager - Funktionsbeschreibung

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Datensicherung EBV für Mehrplatz Installationen

Transkript:

...we make the invisible visible... Qualitätsanalyse, Code Comprehension und Reengineering 1

Statische Software Analyse From Wikipedia, the free encyclopedia Static analysis is the analysis of computer software that is performed without actually executing programs built from that software (analysis performed on executing programs is known as dynamic analysis). In most cases the analysis is performed on some version of the source code and in the other cases some form of the object code. The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding or program comprehension. 2

Inhalt Grundidee der statischen Analyse Auf statischer Analyse basierende Qualitätsanalyse Auf statischer Analyse basierende Unterstützung für das Verstehen und Verändern von Softwaresystemen 3

Use Cases Qualitätsanalyse Projektbegleitend Einmalig durch externe Experten Code Comprehension Visualisierung High-level Cross-Referencing Verwendung von Bibliotheken Reengineering What-if-Analyse Simulation von Umstellungen der Package-Struktur Überwachung des Übergangs von der Soll- zur Ist-Architektur 4

Sotograph-Werkzeugfamilie Web & Reporting Add-On Sotoweb Sotoreport HTML Reports fast overview of trends in relevant quality aspects for sets of software systems HTML-GUI fast interactive access of information about rule violations and metric values, their change over time, flexible zooming down to source code Repository (RDBMS) Sotograph Sotograph Client Swing-GUI manage architecture and metric models visualization what-if-analyses ad-hoc queries 5

Sotograph-Integrationsschnittstellen Eclipse, Developer Studio, UltraEdit, Emacs,... Java Byte Code Parser IDE Plugin Interface Java Source Parser Remote Call Analysis EJB Analyzer C++ Parser Repository Fill Interface Repository (RDBMS) Custom Fill Interfaces Component Configuration Analysis C# Parser CodeChecker Plugin Interface PMD Checkstyle, PCLint... DupliScope 6

Top-down Qualitätsmodelle z.b. ISO 9126 7

Entwurfszielgetriebenes Qualitätsmodell 8

Bottom-up Qualitätsmodell Bottom-up (oder was kann ich messen) Harte Fakten Architekturabweichungen und Schnittstellenverletzungen Projektspezifische Architekturregeln Zyklen Grosse duplizierte Code Blöcke Regelverletzungen Hinweise auf potentielle Probleme Typischerweise durch Metriken Grösse Kopplung Komplexität Metrikwerte müssen interpretiert werden 9

Bottom-up Metrikaggregationsmodell 10

Top-down vs. Bottom-up in der Praxis Top-down Spricht tendenziell eher Manager an Qualitätszielorientiert Unternehmensweites Vergleichen von Anwendungen Benchmarking Keine Architekturprüfung Schwergewichtig einzuführen Bottom-up Spricht tendenziell eher Architekten an Problemorientiert Architekturzentriert Einfach einzuführen 11

Architekturanalyse Grundvoraussetzungen Abstraktion Analyse der Veränderung über die Zeit 12

Analyse auf Symbolebene 500.000 LOC 50.000 Symbole 13

Analyse auf Klassen/Dateiebene 4.000 Klassen 14

Analyse auf Paket/Verzeichnisebene 250 Packages 15

Analyse auf Subsystemebene 20 Subsysteme 16

Subsystemschnittstellen 17

Grapharchitekturen Erlaubte Beziehung Verbotene Beziehung 18

Schichtenarchitekturen Strikte Schichtung durchbrochen (optional) Produkt 1 Produkt 2 Abhängigkeit innerhalb einer Schicht (optional) Interface Datenhaltung Aufwärtsreferenz: Immer illegal Oberfläche Fachlogik Illegale Benutzungsbeziehungen: 19

Anwendung von Schichtenarchitekturen Klassische Prozessmodelle Prozess- und Library- Schichtenmodelle Vertikale Schichten z.b. für Produktlinien Verfeinern einer Schicht 20

Zyklenbasierte Architekturanalyse Wieso sind zyklische Beziehungen problematisch? Artefakte die zyklisch gekoppelt sind können nicht einzeln getestet werden. Artefakte die in verschiedenen Zyklen gebraucht werden spielen dabei häufig mehrere Rollen, was sie schlecht verständlich macht. Artefakte die in verschiedenen Zyklen gebraucht werden können nicht mehr einfach ausgetauscht werden. Erfahrung in grossen Projekten zeigt dass Zyklen die Wartbarkeit deutlich verschlechtern das Auflösen von Zyklen nicht mehr Wartbare Systeme wieder erweiterbar machen kann 21

Identifikation von dupliziertem Code Erfahrung aus der Praxis zeigt dass man in mittelgrossen Projekten häufig Kopien von Klassen oder grossen Teilen von Klassen findet In sehr grossen Softwaresystemen bis zu 70% des Codes aus Kopien besteht Auswirkungen Kopien bedeuten, dass bei Änderungen mehrere Stellen berücksichtigt werden müssen. Häufig ist man sich dessen aber nicht bewusst. Kopien, speziell wenn sie noch leicht angepasst sind komplizieren das Testen. 22

Metrik- und regelbasierte Analyse Arten Architekturmetriken Z.B. Stabilitätsmetriken von Robert C. Martin Grössen- und Kopplungsmetriken Z.B. Anzahl Klassen pro Package, Anzahl verwendeter Packages Komplexitätsmetriken Z.B. Cyclomatic Complexity Regeln Z.B eine Klasse darf die von ihr abgeleiteten Klassen nicht kennen Bad Smells Z.B. Flaschenhälse, unbenutzte Artefakte 23

Möglichkeiten und Grenzen Was bedeutet es wenn alle Messwerte im Grünen Bereich liegen? Wichtige strukturelle Eigenschaften entsprechen den Vorgaben. Zentrale Ursachen für den Architekturellen Verfall werden vermieden. Es wird sorgfältig und sauber gearbeitet. Worüber kann man keine Schlüsse ziehen? Sinnvollkeit der Vorgaben Logik der Implementierung Was gehört sonst noch zu einer umfassenden Sicherung der inneren Softwarequalität? Reviews auf Architektur- und Quelltextebene Diese müssen durch Werkzeuge unterstützt werden. Der Nutzen hängt stark von den Fähigkeiten des Reviewers ab. 24

Typischer Einsatz in der Praxis Kurzanalysen Ein Tag genügt um den Finger in die offenen Wunden zu legen. Die Entwickler sind sich der Ursachen ihrer Probleme häufig nicht bewusst. Kontinuierliche Qualitätsüberwachung Mit kleinem wöchentlichen Aufwand möglich Prozessveränderungen und Auseinandersetzung mit der Architektur kosten Zeit Sollte früh im Projekt einsetzen Basisanalyse und Einarbeitung: 2-3 Tage Workshop über Qualitätsmodelle nach ein paar Monaten Erfahrung Software Qualitätsanalyse durch Qualitätsberater Sehr tiefgehende Qualitätsanalysen grosser, komplexer Softwaresysteme zwei Personenwochen Aufwand Expertenwissen notwendig 25

Nutzen des Qualitätsmonitoring T-Systems Multimedia Solutions GmbH, Dresden In den Projekten in denen wir diese Techniken einsetzen sparen wir ca. 20% Wartungskosten. Christian Federspiel, VOEST-ALPINE Industrieanlagenbau, Linz Mit Hilfe des Sotographen untersuchen wir unsere Software regelmässig auf Architekturabweichungen. Das frühe Auffinden solcher Abweichungen spart uns erhebliche Kosten bei späteren Erweiterungen und kundenspezifischen Anpassungen. Wir sind sehr froh, dass wir den Sotographen haben! Michael Qvortrup, Zühlke Engineering AG, Zürich Nach ca. einen Tag Aufwand hat mir der Sotograph für ein mittelgrosses Projekt mehr relevante Architekturprobleme gezeigt, als ich nach etwa einer Woche manuellen Review selbst gefunden habe. Besser noch, der Sotograph überprüft danach laufend, ob die Probleme behoben worden sind, oder ob neue dazu gekommen sind. 26

Nutzen des Qualitätsmonitoring II Frank Simon, SQS Software Quality Systems AG, Köln Erst mit Werkzeugen wie dem Software-Tomographen ist eine maximale Transparenz bzgl. Technischer Qualität möglich und kann damit die Zukunftsfähigkeit moderner Softwaresysteme gesichert werden. In unterschiedlichen Projekten konnten wir belegen, daß der initiale Aufwand, der für die Umsetzung der Konzepte erforderlich ist, bereits nach einem Jahr einen deutlich positiven ROI besitzt. Neben diesen monetären Vorteilen existieren weitere Verbesserungen wie einfachere Planbarkeit, bessere Mitarbeiteraustauschbarkeit und höhere Unabhängigkeit zu bestimmten Werkzeugen/Techniken. 27

Buchempfehlung Refactorings in grossen Software Projekten Martin Lippert und Stefan Roock Beschreibt Architecture-Smells. D.h. probematische Muster auf architekturebene Wie man Architecture- Smells identifiziert Wie man Architecture- Smells ausmerzt 28

Software-Tomography GmbH Cottbus, München, Zug www.software-tomography.com 29