Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible...

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

E-Commerce Shop System
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
mit Entwicklungsumgebungen (Eclipse) Software verbessern
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Design Patterns- Entwurfsmuster
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Architektur, Design oder Implementation? Ulrich Schulz, Sebastian Ordyniak.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
ATHOS Benutzertreffen 27.September Report of the Lab Glashütten, 27.September 2007 HighQSoft GmbH, Karst Schaap
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
XDoclet ETIS SS05.
Grundlegende Analysen & Zwischendarstellungen
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
Software-Engineering
Explizite und editierbare Metainformationen für Software Muster.
Prüfkriterien für objektorientierte Systeme
Sotograph Enrico Eczko Testen von Software Sommersemester 2006
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Software Design Patterns Extreme Programming (XP).
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
VFP Class Browser. © 1999 TMN-Systemberatung GmbH Einsatz des Class Browser n Managen von Klassen inklusive, ändern, umbenennen, löschen und umdefinieren.
UML Begleitdokumentation des Projekts
Folie 1 Reengineering-Werkzeugen für Webseiten Johannes Martin, University of Victoria Ludger Martin, Technische Universität Darmstadt WSR 2001 Bad Honnef,
Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke.
Visualisierung von Folksonomies Seminar: Wissensorganisation 2.0? Julia Rehder.
Space Based Computing VU SS08
Seminar Softwaretechnik SS2005 Radouane El Marjani ( ) Institut für Softwaretechnik und theoretische Informatik Fakultät IV -
Übersicht Motivation Konzeption Umsetzung/ Implementierung
Mit 3 Schichte zum Erfolg
Entstehung & Einflüsse Ideen, Wünsche, eigene Überlegungen bisheriges Dateisystem Einschrän- kungen: - technisch - zeitlich - fachlich Literatur, ältere.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Sesame Florian Mayrhuber
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
CEF 2001, New Haven Genetic Neural Fuzzy Explorer GENEFER Konzeption, Technologien und Einsatzmöglichkeiten Eric Ringhut Muenster Institute for Computational.
NDepend - Kurzvorstellung Stefan Lieser Web:
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Keynote for SCI/ISAS 99 on Automated Modification of Legacy Assets Chris Verhoef University of Amsterdam Deutsche Version von Monika Schneider, sd&m.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Code wartbar: Qualität messen, Metriken
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
EPROG Tutorium #4 Philipp Effenberger
Elternabend der Schule … vom …
Abhängigkeiten managen mit Degraph Jens T-Systems on site services GmbH.
Software Development Principles Stefan Lieser Web:
Fred 2.0 Projektvorstellung Christoph Müller
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Erst Theorie… …dann Praxis. Erst Theorie… …dann Praxis.
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Sd&m AG software design & management Herrnstraße Offenbach am Main Telefon (069) Telefax (069) Internet-Anwendungen.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Software Product Line Adoption
Meine Familie Für die Klasse 10.
Inhalt Kap. 29: Defining Culture Kap. 30: Games as Cultural Rhetoric Kap. 31: Games as Open Culture.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Uduvudu: a Graph-Aware and Adaptive UI Engine for Linked Data UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG WS 2015/2016.
Das IT - Informationssystem
Paketzyklen – Diagnose, Therapie und Prophylaxe
Kontrolle über Architekturerosion und Codequalität bei 40 Mio LOC
 Präsentation transkript:

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible...

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger2 Inhalt n Patterns und Antipatterns n Automatisches Suchen von Antipatterns n Erfahrungen

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger3 Patterns und Antipatterns n Patterns o Muster wie man Software organisieren kann o -> Konstruktion n Antipatterns o Muster für verbreitete Fehler und Probleme o -> Analyse n Patterns und Antipatterns gibt es auf Code-, Mikroarchitektur- und Architekturebene

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger4 Code-Smells n Stil o Einrückungen o Namensgebung n Inkonsistenzen o JavaDoc entspricht strukturell nicht dem Quelltext n Schlecht wartbarer Code o Schlechtes Exceptionhandling o Duplizerter Code o Kompizierte boolsche Ausdrücke n Gefährlicher Code o Connections die nicht geschlossen werden

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger5 Bad-Smells (Mikroarchitektur) n Fehlende oder falsche Abstraktionen o Abstrahierbare Methoden- und Attributgruppen o Implementationsvererbung (Subklassen überschreiben nichts) o Vererbungshierarchie ohne polymorphe Zuweisungen n Kopplungs und Kohäsionsprobleme o Flaschenhälse o Zyklen auf Klasseneben o Law of Demeter o Typabfragen n Grössenprobleme o Zu grosse Klassen o Methoden mit duzenden von Parametern n Unbenutzte Artefakte o Klassen, Methoden, Attribute

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger6 Architektur-Smells n Quelltext enspricht nicht der Architektur o Architekturverletzungen durch illegale Beziehungen zwischen Artefakten n Kopplungs und Kohäsionsprobleme o Starke Kopplung, mangelnde Kohäsion o Zyklische Beziehungen zwischen Artefakten n Geschichte o Artefakte die über längere Zeiträume immer verändert werden o Artefakte an denen viele Entwickler gleichzeitig arbeiten n Anderes o Übergeneralisierung

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger7 Aufbau des Sotographen Java Parser Xref- Scope Metrics Scope SNiFF+ C/C++ Graph Scope Reposi- tory (RDBMS) Query Scope IDE Interaction Architecture Scope Query Developer Metrics & Transformation Engine Java Source Parser Repository Fill Interface Custom Fill Interfaces Component Structure EJB Analyzer CM Information

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger8 Analyse auf Symbolebene LOC Symbole

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger9 Analyse auf Klassen/Dateiebene Klassen

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger10 Analyse auf Paket/Verzeichnisebene 250 Packages

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger11 Analyse auf Subsystemebene 20 Subsysteme

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger12 Subsystemschnittstellen

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger13 Schichtenarchitektur Illegale Benutzungsbeziehungen: Product Line 1Product Line 2 Layer 1 Layer 2 Layer 3 Interface Überspringen von Schichten (optional) Aufwärts- Benutzung: Immer illegal Abhängigkeit innerhalb einer Schicht (optional) Benutzung am Interface vorbei: Immer illegal

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

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

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger16 Metrik- und Regelbasierte Analyse n Schwierigkeiten o Sehr grosse Menge Messwerte Filtern o Verstehen der Ursache eines Messwerts Erklärungen Visualisierung im Kontext des Softwaresystems o Das Untersuchen einer Version genügt oft nicht Trend-Unterstützung o Definieren eigener Metriken Ermöglicht durch Einfaches Datenmodell im Repository

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger17 Erfahrungen aus der Praxis n Kurzanalysen durch uns o Ein halber Tag genügt um den Finger in die offenen Wunden zu legen. o Die Kunden sind sich dieser Ursachen ihrer Probleme häufig nicht bewusst. n Software Qualitätsanalyse durch Qualitätsberater o Sehr tiefgehende Qualitätsanalysen grosser, komplexer Softwaresysteme zwei Personenwochen Aufwand o Aufwand: Zwei Personenwochen versus 10 Personenwochen n Architektur-Reengineering bei einer Schweizer Grossbank o 2'000'000 LOC o Identifizierung des Problems o Überwachung der iterativen Verbesserung o Basisanalyse und Einarbeitung: drei Tage

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger18 Software-Tomography GmbH Cottbus, München, Zürich