Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken



Ähnliche Dokumente
Comparison of Software Products using Software Engineering Metrics

Was meinen die Leute eigentlich mit: Grexit?

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Konzentration auf das. Wesentliche.

Bernadette Büsgen HR-Consulting

Software Engineering in der Praxis

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Internet Explorer Version 6

Die Post hat eine Umfrage gemacht

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

Qualitätsmanagement im Projekt

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Requirements Engineering für IT Systeme

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

Erfahrungen mit Hartz IV- Empfängern

Was bringt TDD wirklich?

Softwarequalität: Einführung. 15. April 2015

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert Seminar Software-Entwurf WS 2004/05

Java Script für die Nutzung unseres Online-Bestellsystems

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Abwesenheitsnotiz im Exchange Server 2010

Java: Vererbung. Teil 3: super()

Nicht über uns ohne uns

Whitebox-Tests: Allgemeines

Auswahl alter Klausuraufgaben aus einer ähnlichen Vorlesung Maßgeblich für die Prüfung sind die Vorlesungsinhalte!

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

emotion messen. motivation sichtbar machen. Vortrag auf der Zukunft Personal 2014 in Köln von Stefan Lapenat Motivanalyse Profi seit 10 Jahren.

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Professionelle Seminare im Bereich MS-Office

Fragebogen ISONORM 9241/110-S

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Haus sanieren profitieren! 27. Februar 2014

Fragen und Antworten

Wir machen neue Politik für Baden-Württemberg

Konventionen. Danksagung

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Wie wirksam wird Ihr Controlling kommuniziert?

Kontinuierliche Architekturanalyse. in 3D

Kampf dem Fehlerteufel PMD, Findbugs und Checkstyle in großen Projekten

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

Grundbegriffe der Informatik

Sehr geehrte Faktor-IPS Anwender,

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

! " # $ " % & Nicki Wruck worldwidewruck

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Einführung in die Informatik Tools

Leichte-Sprache-Bilder

Installationsanleitung WibuKey Treiber

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

ORCA Software GmbH Kunstmühlstraße 16 D Rosenheim Telefon +49(0) Fax +49(0)

Alle gehören dazu. Vorwort

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

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

FULFILLMENT VON ALLYOUNEED

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

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Anleitung über den Umgang mit Schildern

Übungsklausur vom 7. Dez. 2007

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

Wie oft soll ich essen?

EINBLICKE FÜR KMU-KUNDEN

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

1 WEB ANALYTICS: PROFESSIONELLE WEB-ANALYSEN UND REPORTING FÜR IHR ONLINE MARKETING.

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Reporting Services und SharePoint 2010 Teil 1

Lehrer: Einschreibemethoden

Emergency Room für Projektleiter

1 PIVOT TABELLEN. 1.1 Das Ziel: Basisdaten strukturiert darzustellen. 1.2 Wozu können Sie eine Pivot-Tabelle einsetzen?

Version 0.3. Installation von MinGW und Eclipse CDT

Semantik von Formeln und Sequenzen

Was ist Software-Architektur?

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

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Wärmebildkamera. Arbeitszeit: 15 Minuten

Abwesenheitsnotiz im Exchangeserver 2010

Verkaufen Sie doch wo Sie wollen. Ihr einfacher Weg zu mehr Umsatz und dauerhaft steigendem Erfolg im E-Business

Verwendung von OO-Metriken zur Vorhersage

Wie Sie mit PO Convert eine Rechnung aus einer Bestellung erstellen können.

TeamSpeak3 Einrichten

plus Flickerfeld bewegt sich nicht

Installation der Eicon Diva PCI Karte unter Windows XP

Kommunikations-Management

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Skills-Management Investieren in Kompetenz

Ökonomik der Agrar und Ernährungswirtschaft in ILIAS

Pflegende Angehörige Online Ihre Plattform im Internet

5.2 Neue Projekte erstellen

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Q & A: Representation Tool

Microsoft Update Windows Update

Outlook 2010 Automatische Antworten einrichten

Software- Qualitätsmanagement

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Transkript:

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken Dennis Hardt 21.06.2006

Gliederung Statische Analyse Definition, Arbeitsweise, Werkzeuge Angewandt auf ein Projekt Statische Analyse selbst gemacht Metriken Definition Codemetriken, Werkzeuge Zusammenfassung 2

Statische Analyse - Definition Analyse eines Prüflings mit dem Ziel Mängel zu finden und automatisch durchführbar zu sein. Der zu analysierende Prüfling muss einer formal definierten Struktur genügen. Die Analyse ist statisch, weil das analysierte Programm nicht ausgeführt wird. Der Prüfling ist eine Beschreibung des Programms. 3

Arbeitsweise von statischer Analyse (I) Programm Prüfling Prüfungsaspekt Statisches Analysewerkzeug Fehler gefunden? Welchen? Wo, wie? Kein Fehler gefunden! 4

Arbeitsweise von statischer Analyse (II) Programm Kripke-Struktur Temporale Logik Model Checker Fehler gefunden! Gegenbeispiel Anforderungen erfüllt 5

Statische und dynamische Analyse Statische Analyse Analyse ohne Ausführung des Programms Dynamische Analyse Analyse durch Ausführung des Programms Beispiele: Model Checking Code Analyse Beispiele: Testen Was ist keine statische Analyse: Reviews, Walkthroughs Heute: statische Code Analyse 6

Statische Analyse Tools für Java (I) Prüfungsaspekte Lexikalische Analyse Syntaktische Analyse Andere: Nicht erreichbarer Code Nicht definierte Variablen Konkretes Werkzeug Java Compiler (javac) http://java.sun.com/ Alte Bekannte Warnungen : Codestil Unnötiger Code Eclipse http://www.eclipse.org 7

Statische Analyse Tools für Java (II) Prüfungsaspekte Codierrichtlinien Konkretes Werkzeug Checkstyle http://checkstyle.sourceforge.net/ Bug Patterns FindBugs http://findbugs.sourceforge.net/ Sicherheit Fortify Source Code Analysis http://fortifysoftware.com/ 8

Demonstration: PMD PMD ist ein statisches Code Analysewerkzeug für Java Open Source, zu finden unter http://pmd.sourceforge.net Enthält Regeln ( Rules ) zu verschiedenen Kategorien, z.b. Coupling (Beziehungen zwischen Objekten) Design Unused Code 9

Das XP-Labor Projekt 2006 UseCaseEditor UseCase Nr. 1 Umfeld Ebene Hauptakteur Überweisung tätigen Aufgabe Speichern Laden M...... RTF Export C V Statistiken, Warnungen 10

Das XP-Labor Projekt 2006 unter der Lupe Analyse des Projekts anhand drei ausgewählter PMD-Regeln: 1. Ignorieren Sie keine Ausnahmen [Bloch02] PMD-Rule: EmptyCatchBlock 2. Referenzieren Sie Objekte über ihre Interfaces [Bloch02] PMD-Rule: LooseCoupling 3. Klassen, die nur aus statischen Methoden bestehen, sollten als Singleton implementiert werden PMD-Rule: UseSingleton [ Bloch02: Joshua Bloch, Effektiv Java programmieren, 2002 ] 11

PMD Kritische Würdigung PMD-Regeln finden den repräsentierten Mangel nicht immer vollständig Beschreibung genau lesen und Regel kennen Gegebenfalls eigene Regeln schreiben oder erweitern Liefert bei allen aktivierten Regeln sehr viele Mängel Schrittweise aktivieren Sinnvoll auswählen Aber: Die Analyse ist einfach durchzuführen und schnell 12

Eigene PMD-Regeln schreiben Code Abstract Syntax Tree (vereinfacht) class IndexExample { void maxindex(index i) { while(i.isvalid()) i.increment(); } } Was dieser Code leistet sei nicht von Interesse, weil wir ihn nur statisch analysieren wollen! ClassDeclaration MethodDeclaration WhileStatement Expression Statement In PMD: XPath Anfrage an den AST stellen 13

Qualitätsaspekte (Auswahl) Funktionalität Effizienz Usability Qualität Wartbarkeit Korrektheit Sicherheit Verständlichkeit Veränderbarkeit Portabilität Frage: Lässt sich Qualität messen? 14

Metrik - Definition Eine Softwarequalitätsmetrik ist eine Funktion, die eine Software- Einheit in einen Zahlenwert abbildet. Dieser berechnete Wert ist interpretierbar als der Erfüllungsgrad einer Qualitätseigenschaft der Software-Einheit. (IEEE Standard 1061, 1992) Statische Code Analyse lässt sich als Messinstrument für Produktmetriken einsetzen Für nahezu jede Programmiersprache sind entsprechende Werkzeuge vorhanden 15

Bekannte Codemetriken Metrik Max. (XP 06) Regel Cyclomatic Complexity Methods per Class 24 -- < 10 < 20 LOC per Method DIT 152 7 < 24 (bei C++) < 6 Interpretationshilfe, aber projektspezifisch! Regel nach [Stephen H. Kan, Metrics and Models in Software Quality Engineering, 2003] 16

Demonstration: Metrics Plugin für die Entwicklungsumgebung Eclipse Open Source, zu finden unter: http://metrics.sourceforge.net Misst automatisch über 20 Codemetriken 17

Umgang mit dem Metrics Eclipse-Plugin Welche Metriken brauche ich für mein Projekt? Ziel- und Projektorientierte Auswahl treffen Wird leider nicht direkt im Plugin unterstützt Was bedeutet eine Metrik? Was wird gemessen? Beschreibung der Metriken: http://metrics.sourceforge.net Wie interpretiere ich eine Metrik? Toleranzbereiche im Plugin als Hilfestellung nutzen und durch die Codenavigation den betroffenen Bereich schnell finden 18

Zusammenfassung Statische Analyse Gute Werkzeugunterstützung Einfach anzuwenden und schnell, selbst bei viel Code Aber: viele Regeln erzeugen auch sehr viele Informationen und auch nicht immer für ein Projekt sinnvolle Statische Analyse braucht gesunden Menschenverstand, der ihn einsetzt Metriken Nutzen bei Code statische Analyse zur Messung Sind gezielt auszuwählen und müssen interpretiert werden 19