Statische Analyse Gero Leinemann.

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Projektbericht ~ 5 Seiten pro Person Ein Autor pro Kapitel.
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
PG 487 Methoden der Computational Intelligence in der Bioinformatik
Qualitätssicherung von Software (SWQS)
Designing Software for Ease of Extension and Contraction
What Computers still cant do A Critique of Artificial Reason Hubert L. Dreyfus.
Tonträger digitalisieren Computeria Wallisellen Joachim Vetter
Vorstellung von PaderWAVE Generierung von Web-Anwendungen aus visuellen Spezifikationen, SS04 Projektgruppe der AG Kastens.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Computergestützte Verifikation
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Erst mal den Desktop richtig einrichten. Desktop anzeigen Die Taskleiste Wenn wir auf dem Desktop sind, die F1 Taste drücken.
Software Praat: Doing Phonetics by Computer. Phonetik Institut, Amsterdam, EMU: Ein System für die Analyse von Sprachdatenbanken Macquarie.
Software Praat: Doing Phonetics by Computer. Phonetik Institut, Amsterdam, EMU: Ein System für die Analyse von Sprachdatenbanken Macquarie.
Software Praat: Doing Phonetics by Computer. Phonetik Institut, Amsterdam, EMU: Ein System für die Analyse von Sprachdatenbanken Macquarie.
Testgetriebene Entwicklung
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
1 WS 2012 Software-Engineering II Aspektorientierung.
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
DBD::PO Mit SQL GNU gettext PO-Files bearbeiten. Über was ich heute spreche. Vom Quelltext bis zur mehrsprachigen Anwendung. Formate Irrwege Lösungen.
Forschungs-Verbundprojekt des Landes Baden-Württemberg "Vom Markt zum Produkt". Projekt-Koordination: wbk Projekt-Partner: ETU, mkl, RPK, wbk, WOP Analogiebildung.
UML Begleitdokumentation des Projekts
John-von-Neumann-Architektur
JavaScript.
Zentralübung Automotive Software Engineering – Übungsblatt 8
Entwicklung der Programmiersprachen
HTML-Editoren Eine Präsentation von Erik Kulisch.
Architekturen und Techniken für computergestützte Engineering Workbenches.
Uwe Habermann Venelina Jordanova Schreiben von Visual FoxPro Code in der Oberfläche.
Referat von Bernhard Novak
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Es handelt sich um eine Übersetzungs- App Mehr als 60 Sprachen werden angeboten Häufig verwendete Übersetzungen können gespeichert werden.
Von Patrik, Yannik, Marc und Luca
Bonn-to-code.net Nutzung von.NET User Controls in Legacy Code Sascha Lehmann
Präsentation von Lukas Sulzer
Uwe Habermann Venelina Jordanova VFX in Cloud.
Oliver Spritzendorfer Thomas Fekete
Natürliche und künstliche Sprachen
PC Club 29. November
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Eclipse-Entwicklungsumgebung
Algorithmen und Datenstrukturen Übungsmodul 8
SQL Server nach MySQL Datenbank-Migration SQLWays – Software für Migration Präsentation Copyright (c) Ispirer Systems Ltd. Alle.
1 Hauptziele Ihrer Schule Hauptziel 1 Bessere Leistungen der Schüler und Schülerinnen (hier Hauptziel 1 eintragen) Hauptziel 2 Bessere Leistungen der Schüler.
Code-Optimierung Philipp Bergener Seminar „Übersetzung künstlicher Sprachen“
Wie funktionieren Internetseiten? Html und Co – Teil 2 Heimo Reiter.
Technik schädlicher Software
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
Inf K1/2 Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Klassen und Objekte.
Typo 3 // Templa Voila * Was? * Warum? * Wie? - Praktische Übung.
Technische Universität München Zentralübung Automotive Software Engineering – Übungsblatt 6.
Best Practices der sicheren Programmierung mit.NET Andrea Janes.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
TypoScript.
WebComposition & WCML Ein Vortrag von Michael Capper & Lars Völker.
Digitale Annotationen. Grundlage: John Bradley “Towards a Richer Sense of Digital Annotation: Moving Beyond a Media Orientation of the Annotation of Digital.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
 Präsentation transkript:

Statische Analyse Gero Leinemann

Statische Analyse Was ist das? Was mache ich damit? Wie funktioniert das? Wie benutze ich das? Demo FindBugs STAN4j IDA Pro Fragen?

Was ist das? Analyse eines Programms, ohne es auszuführen ( dynamische Analyse) Anwendung mathematischer Verfahren auf Programme-Code um Eigenschaften zu prüfen Zwei Arten: Analyse des Source-Codes Meist direkt auf dem AST der jeweiligen Sprache Analyse des Object-Codes Wird oft in WHILE-ähnliche Sprachen übersetzt

Was mache ich damit? Wird benutzt für: Optimierung (klassisch) Software-Qualität Sicherheit Reverse Engineering Korrektheit (-sbeweis) lint

Wie funktioniert das? Methoden: Denotationelle Semantik Abbildung von Zustandsräumen Operationelle Semantik Schrittweise Zustandsänderung Axiomatische Semantik Schlussregeln über Eingabe Abstrakte Interpretation Verallgemeinerung/Teilweise (abstrakte) Ausführung Möglichkeiten begrenzt durch das Halteproblem

Abstrakte Interpretation Nachverfolgen des Control-Flows Monotone Funktionen über Verbänden Praktisch: Mitführen eines Zustandsraumes durch das Programm Ziel: Minimaler (möglichst präziser) Zustandsraum Approximation von Fixpunkten bei Branches/Loops Beschränkung des Zustandsraumes ohne jede Iteration auszuführen z.B. durch Widening (aktuelle Forschung), abstrakte Domänen

Demo

Fragen?

Bildnachweise http://findbugs.sourceforge.net/umdFindbug s.png http://testlinkjavaapi.sourceforge.net/images /stan4j-88x31-o1.png http://www.di.ens.fr/~cousot/projects/DAED ALUS/synthetic_summary/POLYSPACE/imgs/l ogo_fond_blanc.gif http://findlogo.net/images/E/eclair%20logo.j pg http://amiga-dev.wdfiles.com/local-- files/tool%3Aida-pro/idapro.gif