6. Static Code Analysis Day 2019
Statische Codeanalyse-Tools finden Fehler schnell und ohne großen Aufwand. Hierdurch ergibt sich ein enormes Kosteneinsparungspotential. Der Werkzeugeinsatz amortisiert sich früh und ist bei Systemen mit Sicherheitsrelevanz dringend empfohlen. Erfahren Sie hier in unserem Rückblick, wie Sie durch Einsatz von statischer Codeanalyse Ihre Softwarequalität effizient verbessern.
Wie bei den letzten Static Code Analysis Days (Foto SAD 2017) fanden auch zur 6. Ausgabe 2019 zahlreiche Teilnehmer aus dem gesamten deutschsprachigen Raum den Weg nach Offenburg.
Welcome and Introduction
Welcome to the 6th Static Analysis Day and short introduction in Verifysoft by CEO Klaus Lambertz.Watch video here (YouTube)
Verbesserung der Zuverlässigkeit, Sicherheit, Performance und Wartbarkeit von Applikationen durch statische Analyse
(Dipl.-Ing. (FH) Royd Lüdtke, Director Static Code Analysis, Verifysoft Offenburg)Noch vor wenigen Jahren war die dynamische Analyse mit ihren Prüfungen auf funktionale Sicherheit das Mittel schlechthin, um die Qualität von Applikationen hinreichend zu gewährleisten. Da Software zunehmend Aufgaben auch in kritischen Bereichen übernimmt, genügen Tests zur Laufzeit allein nicht mehr. Eine statische Codeanalyse, mit ihrer Fähigkeit Fehler frühzeitig im Entwicklungsprozess aufzudecken, ist heute unverzichtbar geworden. Die statische Analyse vermag allerdings weit mehr als reines „Bug Hunting“ zu leisten. Der Vortrag zeigt auf, wie unterstützt durch ein modernes Werkzeug zur statischen Codeanalyse, die Codequalität in vielerlei Hinsicht entscheidend verbessert und damit Kosten und Risiken minimiert werden können.
Jetzt Video ansehen! (YouTube)
Machine Learning for Finding Programming Defects and Anomalies
(Dr. Paul Anderson, Vice President of Engineering, GrammaTech New York/USA)Static analysis tools are useful for finding serious programming defects and security vulnerabilities in source and binary code. Most static analysis checkers work by searching the code for known patterns or conditions that will cause the program to fail, or that indicate violations of programming standards. The set of defects that such tools can find is thus limited to problems anticipated by the tool designer. Some tools can automatically determine new properties to check simply by deducing what is common practice, assuming that common practice is likely correct, and then looking for parts of the code that deviate from that practice in significant ways, on the assumption that such deviant code is incorrect. This approach has previously been applied only to the scope of the body of code under analysis, but the ever-increasing volume of open source, combined with advances in machine learning, means that it is now possible to deduce common practice from very large software collections. This technique is particularly useful for finding anomalies in API usage, especially for popular operating system interfaces or open source libraries. This talk will describe how the technique works and will show how it was able to find several previously unknown bugs in high-profile software systems. It will demonstrate how software developers can use these machine learning techniques to find defects that are otherwise very difficult to anticipate.
Watch video here (YouTube)
Extended Demo of GrammaTech CodeSonar
(Dr. Paul Anderson, Vice President of Engineering, GrammaTech New York/USA)Semantic Static Analysis of IoT Software
(Dr. Pietro Ferrara, Head of Research and Development, JuliaSoft, Verona/Italy)The IoT paradigm brings together two historically different software worlds. On the one hand, embedded software runs on "things", and it is written in lower level programming languages like C and C++. Such software manages locally the device interacting with the physical world. On the other hand, enterprise sw running nowadays on the cloud is often implemented in higher level programming languages like Java and C#. It usually manages the data and the business processes of an organization (the Internet part), and it does not directly interact with the physical world.
Rigorous semantic static analyses have been widely applied to safety-critical software to detect runtime errors that might compromise its safety. Compared to non-semantic (e.g., syntactic) analyses, they discover all possible bugs of a given type, producing fewer false alarms. For these reasons, many standards like ISO 26262 require the application of semantic static analysis. Similar analyses were available also for enterprise software despite the lack of interest in this world, since bugs and security vulnerabilities impacted only data and processes, and not the safety. However, the enterprise sw of an IoT system indirectly interacts with the physical world, where a sw issue might compromise the safety of an IoT system.
In this talk, we will discuss and show how we can combine semantic static analyses applied to different sw components of IoT systems to detect bugs and vulnerabilities that might impact the physical reliability of the system.
Watch video now (YouTube)
The Julia Static Analyzer
(Sanna Kallio, Marketing & International Sales, JuliaSoft and Dr. Pietro Ferrara, Head of Research and Development, JuliaSoft, Verona/Italy)The Julia Analyzer is an abstract interpretation-based static analyzer of Java and .NET bytecode. The technology has been developed by JuliaSoft, a spin-off of University of Verona born in 2010, and is now a solid commercial static analysis solution that helps companies to discover bugs, vulnerabilities, inefficiencies, and privacy leaks in industrial applications.
The advantage of the technology compared to most other static analysis tools for Java and .NET languages is the depth and completeness of analysis, which permits a higher detection rate and an intelligent ranking of the severity of the findings. Around the scientific core, a complete ecosystem to support various Software Development Lifecycle phases has been built, supporting the major IDEs (Eclipse, IntelliJ IDEA/Android Studio, and Visual Studio) and continuous integration processes (command line, SonarQube plugin). Advanced KPI Dashboards support management in the Asset and Vendor Management processes.
In this talk, we will give a complete overview of the analyzer, its architecture and plugins, as well as we will demo some of its most relevant analyses discussing the results. We will also present a benchmark comparison against some other commercial and open source tools.
Introduction Watch video now (YouTube)
Live Demo Watch video now (YouTube)
Das Kind ist in den Brunnen gefallen
(M.Sc. Jan-David Baltzer, Static Code Analysis, Verifysoft Technology Offenburg)Mit wachsender Laufzeit von Softwareprojekten steigen typischerweise deren Umfang und Komplexität. Damit wird es auch zusehends aufwändiger den Überblick zu behalten, sei es zur Wartung, Erweiterung oder Verifikation gegen bestehende und veränderte Anforderungen. Verstärkt wird dies zudem durch Fluktuationen in der Belegschaft und der Einbindung von zusätzlichen Programmteilen, sei es zugekauft, frei zugänglich oder aus bestehenden Projekten. Engpässe an Ressourcen führen dazu, bei der Umsetzung Abkürzungen zu nehmen, beispielsweise durch Verstöße gegen architektonische Richtlinien und mangelhafte Dokumentation. Diese Umstände prägten maßgeblich die Begriffe "Technical Debt" und "Software Decay". Der Aufwand zur Handhabung solcher Projekte rechtfertigt irgendwann eine Überarbeitung, Neuimplementierung oder sogar das Ende des Projektes. Die umgesetzte Software zu verstehen und zu bewerten gestaltet sich allerdings als schwierig. Insbesondere bei älteren Projekten, deren Kernentwickler nicht mehr verfügbar sind. Selbst wenn noch eine Dokumentation vorhanden ist, kann diese, aufgrund mangelhafter Nachpflege, völlig nutzlos sein. Um dieses, bereits in den Brunnen gefallene Kind zu beurteilen und gegebenenfalls herauszuziehen führt nichts am zugrunde liegenden Quelltext vorbei. Dieser Vortrag demonstriert einen praktischen Lösungsansatz anhand eines potenziell unbekannten Projektes und dem Reverse-Engineering-Tool Imagix 4D.
Jetzt Video ansehen! (YouTube)
Imagix 4D - Live Demo
(M.Sc. Jan-David Baltzer, Static Code Analysis, Verifysoft Technology Offenburg)Live-Demo des Reverse-Engineering-Tools Imagix 4D
- Schnelles Verständnis von unbekanntem C, C++ und Java Code durch aussagekräftige Visualisierung
- Einfache Beurteilung der Code-Qualität durch diverse statische Prüfungen und Erhebung von Metriken
- Unterstützung bei Code Reviews
- Visualisierung und Dokumentation von Versionsunterschieden
Referenten
Dr. Paul Anderson
Dipl.-Ing. (FH) Royd Lüdtke
M.Sc. Jan-David Baltzer
Pietro Ferrara (PhD)
M. Sc. Sanna Kallio
Archiv Static Code Analysis Days
5. Static Code Analysis Day 20184. Static Code Analysis Day 2017
3. Static Code Analysis Day 2016
2. Static Code Analysis Day 2015
1. Static Code Analysis Day 2014
weitere Veranstaltungen von Verifysoft
Ausgewählte Vorträge der Static Code Analysis Days
Wegweiser zur Auswahl eines Werkzeuges zur Statischen Codeanalyse (Dipl.-Ing. Royd Lüdtke, Verifysoft)Auffinden von Nebenläufigkeitsfehlern durch Statische Codeanalyse (Dipl.-Ing. Royd Lüdtke, Verifysoft) Präsentationsfolien
Qualitätssicherung (Prof. Dr. Daniel Fischer, Hochschule Offenburg)
Welcome and Introduction by Klaus Lambertz
The Julia Static Analyzer presented by Sanna Kallio
Live Demo of Julia Static Analyzer by Pietro Ferrara
Das Kind ist in den Brunnen gefallen - ist die Software noch zu retten?
Dr. Paul Anderson (GrammaTech New York) zeigt Advanced Static Analysis
Dr. Paul Anderson (Vice President of Engineering, GrammaTech) und Royd Lüdtke (Director Static Analysis Tools, Verifysoft)
Royd Lüdtke: Statische Codeanalyse hört nicht beim Quellcode auf
Vortrag: Wie arbeitet die Statische Codeanalyse?