ThreadSafe

Java-Programmierwerkzeug

ThreadSafe analysiert Java-Sourcecode, um Risiken und Sicherheitslücken zu entdecken, die von Multithreading-Programmfehlern stammen.[1][2][3][4] Investmentbanken und andere Firmen benutzen ThreadSafe, um Software-Pannen in nebenläufigen Anwendungen zu lokalisieren und zu vermeiden.[1][2][5] Solche Programmfehler sind am heimtückischsten, weil sie beim Testen nicht verlässlich entdeckt werden können.[6]

ThreadSafe


ThreadSafe für Eclipse
Basisdaten

Entwickler Contemplate
Aktuelle Version 1.3
(28. März 2014)
Betriebssystem plattformunabhängig: Linux, OS X, Windows
Programmier­sprache Java
Kategorie Statische Code-Analyse
Lizenz Proprietäre Software
ThreadSafe unter contemplateltd.com

Funktionen

Bearbeiten

ThreadSafe entdeckt schwerwiegende Multithreading-Programmfehler in Java:[2][3][4]

  • Race Conditions – die falsche oder unvorhersehbare Ergebnisse verursachen können, die in einem Debugger nur schwer zu reproduzieren sind.
  • Deadlocks[7] – die durch zyklische Wartesituationen entstehen, wobei jeder Thread auf eine Ressource wartet, die bereits von einer anderen reserviert ist.
  • Unvorhersehbare Ergebnisse – durch fehlerhafte Behandlung von nebenläufigen Collections, schlechte Laufzeitfehler-Handhabung oder uneinheitliche Synchronisation von Objekten.
  • Leistungs-Engpässe – durch fehlerhafte API-Benutzung, überflüssige Synchronisation oder unnötige Verwendung von gemeinsam benutzten mutablen Objekten.

ThreadSafe ist eng mit der Eclipse Software-Entwicklungsumgebung sowie mit der SonarQube Software-Qualitätskontroll-Plattform integriert. Information über festgestellte Fehler wird in der Entwicklungsumgebung angezeigt, direkt im Sourcecode, um dem Softwareentwickler zu helfen, Nebenläufigkeits-Probleme zu ermitteln und zu beheben.[2][3][4] Es gibt auch eine ThreadSafe-Version, die von der Kommandozeile aus benutzt werden kann.

Überprüfung der Standard-Einhaltung

Bearbeiten

ThreadSafe entdeckt Verstöße gegen zahlreiche nebenläufigkeitsbezogene Regeln im CERT Oracle Secure Coding Standard for Java.[8]

Gemeinsam vertriebene Produkte

Bearbeiten

ThreadSafe wird auch von GrammaTech als integrierte Erweiterung des CodeSonar Sourcecode-Analyse-Werkzeugs vertrieben.[9]

Einzelnachweise

Bearbeiten
  1. a b Victor Grazi: ThreadSafe Concurrency Static Analysis Tool Announces First Public Release. InfoQ.com, 28. August 2013, abgerufen am 8. Juli 2014.
  2. a b c d Darryl Taft: Contemplate Delivers ThreadSafe Java Concurrency Static Analysis Tool. DevX.com, 4. September 2013, abgerufen am 8. Juli 2014.
  3. a b c Robert Atkey: Discover and Diagnose Java Concurrency Problems Using Contemplate’s ThreadSafe. InfoQ.com, 14. Januar 2014, abgerufen am 8. Juli 2014.
  4. a b c Robert Atkey, Donald Sannella: ThreadSafe: Static Analysis for Java Concurrency. In: Electronic Communications of the EASST. 72. Jahrgang. European Association of Software Science and Technology, 2015, doi:10.14279/tuj.eceasst.72.1025.995.
  5. Ritobaan Roy: Software Errors: New Technology Briefing For CFOs. CFO Insight, 1. Mai 2013, archiviert vom Original am 14. Oktober 2013; abgerufen am 8. Juli 2014: „It claims to have developed technology [dies bezieht sich auf ThreadSafe, wie in der Bildunterschrift erklärt wird, die in der archivierten Version fehlt] that can identify errors in software code that don’t pop up regularly enough to be detected by conventional tools.“
  6. Paul Rubens: Why Software Testing Can’t Save You From IT Disasters. CIO.com, 12. März 2014, abgerufen am 8. Juli 2014.
  7. Matt Raible: Contemplate ThreadSafe Introduces Deadlock Detection. InfoQ.com, 26. Juni 2014, abgerufen am 8. Juli 2014.
  8. SEI CERT Oracle Coding Standard for Java. Software Engineering Institute, Carnegie Mellon University, abgerufen am 18. März 2016.
  9. Conquering Complex Java Concurrency Bugs with CodeSonar. GrammaTech White Paper, April 2014, archiviert vom Original am 14. Juli 2014; abgerufen am 8. Juli 2014 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/grammatech.com
Bearbeiten