Sotograph Enrico Eczko Testen von Software Sommersemester 2006

Slides:



Advertisements
Ähnliche Präsentationen
Forschungszentrum Informatik
Advertisements

V - Modell Anwendung auf große Projekte
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Prüfungspläne Bachelor-Thesis
PG Air Seminararbeit März 2002 Jürgen Wieners
Designing Software for Ease of Extension and Contraction
Die Softwarelebenszyklen
Das „Vorgehensmodell“
Ontologien- Query 1 Teil2
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Untersuchung und szenariobasierte Entwicklung von Websites zur Orientierung in Universitätsstudiengängen unter Berücksichtigung von Prinzipien des Web.
Der Stellenmarkt im Focus
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Regeln für serviceorientierte Architekturen hoher Qualität – eine Praxisevaluation Die Arbeit evaluiert die Regeln für serviceorientierte Architekturen.
Analyse von Voice-over-IP-Software im Vergleich zu Hardwarelösungen und Integration in ein bestehendes, heterogenes VoIP-Netz Auswertung und Empfehlung.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Erfahrungen aus Tests komplexer Systeme
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
K-Modeler Engineering
Algorithmentheorie 04 –Hashing
Weitere UML-Diagramme: Interaktionsübersichtsdiagramm Timing Diagramm
Der Testprozess als Bestandteil des SE Prozesses:
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
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.
– Team 2 Aktueller Projektleiter: Christian Krapp
eXtreme Programming (XP)
GROOVE Graphs for Object-Oriented Verification Seminar: SEFSIS Sommersemester 2006 Basil Becker
Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible...
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Einführung von Groupware
Theorie soziotechnischer Systeme – 12 Thomas Herrmann Informatik und Gesellschaft FB Informatik Universität Dortmund iundg.cs.uni-dortmund.de.
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Grundschutztools
Gesundes Führen lohnt sich !
Folie 1 Reengineering-Werkzeugen für Webseiten Johannes Martin, University of Victoria Ludger Martin, Technische Universität Darmstadt WSR 2001 Bad Honnef,
1 Dienstbeschreibung mit DAML Ein graphischer Editor für DAML - Ting Zheng Betreuer: Michael Klein, Philipp Obreiter.
Spezifikation von Anforderungen
Das Wasserfallmodell - Überblick
Präsentation von: Tamara Nadine Elisa
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Kollektionen in Java Aufzählungstypen, Generische Typen
DataMining Von Daten zu Informationen und Wissen
Prototypentwicklung für ein Testmanagementsystem
Übersicht Auf den folgenden Seiten wird Ihnen anhand einer kleinen Abteilung gezeigt, wie Sie PQM an Ihre Bedürfnisse anpassen können. Mitarbeiter einrichten.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Übung Datenbanksysteme II Index- strukturen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
UML-Kurzüberblick Peter Brusten.
PRO:CONTROL Ziel des Moduls Arbeitspakete
IT Kosten Reduzierung und effizientere Dienstleistungen Wir optimieren Strukturen und Prozesse und reduzieren dabei Ihre IT Kosten Ihr OPTICONSULT International.
Untersuchungen zur Erstellung eines
Rational Unified Process
Grafische Visualisierung von Softwarestrukturen
Das Unternehmen.
Software Engineering Grundlagen
Die Management-Tools von Z&H COACH beinhalten zentrale Hilfsmittel für ein Management-System. Sorgfältig angewendet führen diese Tools Ihr Unternehmen.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Oracle Portal think fast. think simple. think smart. Dieter Lorenz, Christian Witt.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
MDA – Model Driven Architecture
ResA am Arbeitsplatz Das Vorgehen ist angelehnt an „5 S“ und bietet Ihnen die Möglichkeit das Konzept der 5 Disziplinen ressourcenschonenden Arbeitens.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
 Präsentation transkript:

Sotograph Enrico Eczko Testen von Software Sommersemester 2006 2005-12-31

Gliederung 1. Allgemeines 2 Programmumfang 3. Prgrammstruktur 4. Grundlegender Aufbau des Programms 5. Programmaufbau im Detail - Modellbildung - GraphScope - MetricScope - ResultScope - TrendMetricScope 6. Beispiel

Allgemeines zum Sotograph Tomograph zur Softwareanalyse = Softwaretomograph (Sotograph)

Allgemeines Unter den mittleren und großen Unternehmen aus unterschiedlichen Branchen in den USA scheitern schätzungsweise 31% aller Softwareprojekte. So werden Jährlich rund 81 Milliarden Dollar für gescheiterte Softwareprojekte ausgegeben. Softwarepanne kostet BA schon 200 Millionen Euro Arbeitsagentur überweist zu viel an Kassen. Hartz IV-Software: 28 Millionen Euro Schaden Autobahnmaut 16 Monate Verspätung Statistikämter verschwenden Millionen für Software und IT - zwölf Entwicklungsjahre Informationssystem "Genesis" befindet sich noch immer im Probebetrieb - 700.000 € geplant, statt dessen über 10 Millionen € ausgegeben Auswahl einiger Anwender: - Credit Suisse - DaimlerChrysler - Siemens - Deutsche Post IT Solutions - Dresdner Bank - Hamburger Hafen- und Lagerhaus AG - T-Systems - Telekom Austria - Fiducia IT AG - Berater: c1-wps, SQS, SCCH

Allgemeines Funktionen - Software-Architekturvalidierung - Grafische Darstellung der Analyseergebnisse - Zentrales Repository für alle Analysedaten - Auffinden zyklischer Abhängigkeiten - Doppelte Code-Analyse - Zusatzmodul webbasierte Reporting-Engine - 300 vordefinierte Analyse-Abfragen, Metriken, Codierungsregeln Qualitätsmodelle - Mächtige Query-Engine für projektspezifische Analysen - Trend Monitoring zeigt Veränderungen für verschiedene Versionsstände - Hohe Analyse-Performance auch für sehr grosse Softwaresysteme

Allgemeines Szenarios gründliche Qualitätsanalyse: - Analyse eines mittleren Softwaresystems braucht eine bis mehrere Personenwochen und setzt Expertenwissen voraus - Metriken werden genutzt um wichtige Elemente für die weitere Analyse zu identifizieren - starke Nutzung der Visualisierungsmöglichkeiten - wird normalerweise von speziellen Qualitätsberatern durchgeführt Kurzanalyse: Grundlegende Problemanalyse eines Softwaresystems, benötigt ein bis zwei Tage - Überprüfung ob der Systemzustand mit der geplanten Architektur übereinstimmt - Suche nach Zyklen und doppelten Code - Große, komplexe Artefakte identifizieren, welche zu Architekturproblemen führen könnten - Prüfung der source code Qualität auf der Basis von Programmierregeln

Allgemeines Szenarios Kontinuierliche Qualitätsüberwachung Ständige Qualitätsüberwachung, bei der Regeln genutzt werden um in kürzester Zeit neue Probleme in der Architektur und im Code zu erkennen. Wöchentliche Überwachung braucht zwischen 15 und 30 Minuten - Programmierregeln sollten ständig von den Entwicklern in ihren IDEs überprüft werden - Sotograph sorgt nur dafür, dass dies nicht von den Entwicklern vergessen wird - Architekturverletzungen sollten von einem technischen Projektleiter überwacht - sollte möglichst früh zum Einsatz kommen, denn eine frühe Erkennung von Fehlentwicklungen spart Geld

Programmstruktur

Datenbank anlegen

Von Sotograph unterstützte Abstraktionslevel Strukturkonzepte sind die zentrale Vorbereitung für eine erfolgreiche Analyse großer Softwaresysteme. Source files: - sind die atomaren Grundlagen, höhere Abstraktionen bauen auf ihnen auf - werden in der Regel nicht zur Analyse verwendet Files: - sind aggregierte source files, in Java sind diese identisch - C/ C++ in Header und Implementation geteilt, werden gruppiert Package: - werden in Java direkt übernommen, in C/ C++ aus der Directory Struktur abgeleitet Subsysteme: - Abstraktion auf Paket-Ebene noch zu feingranular bei großen Projekten - Pakete werden zu Subsystemen zusammengefasst Architecture: - klare Richtlinien wie Subsysteme sich gegenseitig nutzen dürfen - zum Prüfen ob festgelegte Designs eingehalten werden - unterstützt Schichten- und Grapharchitekturen

Programmaufbau

Programmaufbau im Detail Modellbildung - Paket- und die Subsystemebene lassen sich flexibel modellieren - kann in Form von Architekturmodellen beschreiben wie Subsysteme zusammenarbeiten - ModelManager dient dazu, diese drei Ebenen der logischen Modellierung zu definieren - Architekturmodelle beschreiben Sollarchitekturen - Sotograph kann automatisch prüfen, an welchen Stellen eine vorgegebene Sollarchitektur verletzt wird

Programmaufbau im Detail Graphscope Arbeiten mit dem GraphScope - Überblick über das System zu verschaffen - Ergebnisse aus dem Resultscope markieren oder einfügen - Zyklen, Interfaces, Architekturverstöße markieren Graphlayouts Topologielayout: Sortierung der Knoten nach Benutzung Links werden die benutzenden Knoten abgebildet Rechts die eher benutzten Knoten „spring embedder“ Layout: ordnet die Knoten nach einem physikalischen Modell an Kanten werden als Federn betrachtet, die je nach Dicke eine unterschiedliche Zugkraft haben Knoten ohne verbindende Pfeile stoßen sich ab Leicht erkennbar, welche Knoten zentrale Elemente sind (stark gekoppelt) Architektur Layout: - ordnet Knoten nach einem vorher definierten Architekturmodell

Programmaufbau im Detail MetricScope Arbeiten mit dem Metricscope - ermöglicht die Analyse eines Softwaresystems mit Hilfe von Metriken und Regeln - Unterscheidung interne vs externe Softwarequalität Externe: - bestimmt durch Qualitätsaspekte, die der Endnutzer wahrnimmt Interne: - bestimmt durch Wartbarkeit einer Applikation, strukturelle Aspekte - Einhalten der geplanten Architektur und vorgegebener Code-Level

Programmaufbau im Detail MetricScope Rules: - definieren Bedingungen, die erfüllt werden müssen, Verletzungen sind meist Fehler - Unterscheidung zwischen Architektur- und Programmierregeln Architektur: - keine durch das Architekturmodel verbotenen Referenzen - Keine Interface-Verletzungen - zirkuläre Abhängigkeiten zwischen Artefakten sollten vermieden werden - Vervielfältigung großer Codesegmente soll vermieden werden Programmierregeln: - diverse Arten von Exception-Behandlungsroutinen, wie leere Catch-Blöcke - Überprüfung projektspezifischer Namensgebung, Formatierung und Dokumentierung Measures - helfen eventuell problematische Strukturen auf allen Abstraktions-Level zu finden - in der Literatur oftmals Metriken genannt - im Gegensatz zu Rules nicht so eindeutig, gutes Systemverständnis und viel Analyse sind notwendig - wird empfohlen um große, stark vernetzte Strukturen zu identifizieren

Programmaufbau im Detail ResultScope - Ergebnisse von Analysen werden im ResultScope angezeigt - Ausgangspunkt für graphische Darstellung - Möglichkeit sich bis auf die niedrigste Ebene „durchzuhangeln“, um den Sourcecode zu betrachten

Programmaufbau im Detail TrendMetricScope - funktioniert analog zu dem Werkzeug MetricScope, liefert ebenfalls Metrikwerte - diese sind allerdings zusätzlich im Vergleich für zwei verschiedene Versionsstände des zu untersuchenden Softwaresystems dargestellt Grundlegende Idee: - Entwicklung des Systems regelmäßig und dauerhaft beobachten Mit ein paar Minuten Arbeit pro Woche frühzeitig gefährliche Entwicklungstrends entdecken Software veränderungs- Szenarios - Reguläres Wachstum - Augenmerk liegt auf der Entwicklung. - wöchentliche Änderungen der logischen Modelle - Sanierung - folgen meistens auf Wachstums-Phasen, korrigieren starke Abweichungen von den Architekturmodellen - häufigere Änderung der logischen Modelle - Restrukturierung - sehr selten, - falls sich die Anforderungen so stark geändert haben, dass die Architektur angepasst werden muss

Beispiel Untersuchung eines unbekannten Systems JHotDraw - freies, Java-basiertes Rahmenwerk zur Erstellung von grafischen Editoren - UML-Editoren, Workflow-Management-Systeme oder (grafische) Petri-Netz-Simulatoren sind prädestinierte Anwendungen - gut strukturiert und beinhaltet ein Framework, welches analysiert werden kann - ist relativ klein, somit brauchen keine Subsysteme definiert werden

Beispiel wichtigsten Pakete ermitteln 1. Beziehungen zwischen wichtigen Paketen betrachten Grundidee: - zwei Strategien zur Analyse großer Softwarepakete 1. Subsystem-Modell erstellen und die Architektur analysieren 2. geht von den am meisten benutzten Klassen/ Paketen aus (Arbeitstiere) überprüft welche anderen Pakete diese stark nutzen Die wichtigsten Pakete ermitteln - nutzt QueryScope um häufig genutzte Pakete zu identifizieren

Beispiel wichtigsten Pakete visualisieren Beziehungen zwischen wichtigen Paketen darstellen - den „normalen“ Packages Nesting Graph erzeugen - die ermittelten Pakete im Resultscope markieren und im Graph einfärben

Beispiel Vererbungsbeziehungen untersuchen

Beispiel Aufrufbeziehungen untersuchen

Beispiel Aufrufbeziehungen untersuchen

Beispiel Analyze von Paketmetriken

Fazit 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.“

Fazit - sehr komplex, benötigt viel Erfahrung um die Ergebnisse interpretieren zu können - hohe Anschaffungskosten für Lizenz, Schulung und Hardware - Benutzerführung ist komplex - Erfordert intensive Schulung der Mitarbeiter - Abgeschwächt durch Zusatzprodukt „Sotoweb“ - Erzeugung der Datenbank benötigt Zeit - Für 12 Mio LoC ca. 6 Stunden Generierung der DB - Darauffolgend ca. 6 Stunden Metrikberechnung - Für „normale“ Projekte (< 2Mio LoC) kein Problem + spart beim richtigen Einsatz viele Kosten + es gibt keine Alternative zum Sotograph