ThreadSafe
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 |
Programmiersprache | Java |
Kategorie | Statische Code-Analyse |
Lizenz | Proprietäre Software |
ThreadSafe unter contemplateltd.com |
Funktionen
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
ThreadSafe entdeckt Verstöße gegen zahlreiche nebenläufigkeitsbezogene Regeln im CERT Oracle Secure Coding Standard for Java.[8]
Gemeinsam vertriebene Produkte
ThreadSafe wird auch von GrammaTech als integrierte Erweiterung des CodeSonar Sourcecode-Analyse-Werkzeugs vertrieben.[9]
Einzelnachweise
- Victor Grazi: ThreadSafe Concurrency Static Analysis Tool Announces First Public Release. InfoQ.com. 28. August 2013. Abgerufen am 8. Juli 2014.
- Darryl Taft: Contemplate Delivers ThreadSafe Java Concurrency Static Analysis Tool. DevX.com. 4. September 2013. Abgerufen am 8. Juli 2014.
- Robert Atkey: Discover and Diagnose Java Concurrency Problems Using Contemplate's ThreadSafe. InfoQ.com. 14. Januar 2014. Abgerufen am 8. Juli 2014.
- Robert Atkey, Donald Sannella: ThreadSafe: Static Analysis for Java Concurrency. In: European Association of Software Science and Technology (Hrsg.): Electronic Communications of the EASST. 72, 2015. doi:10.14279/tuj.eceasst.72.1025.995.
- 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.“
- Paul Rubens: Why Software Testing Can't Save You From IT Disasters. CIO.com. 12. März 2014. Abgerufen am 8. Juli 2014.
- Matt Raible: Contemplate ThreadSafe Introduces Deadlock Detection. InfoQ.com. 26. Juni 2014. Abgerufen am 8. Juli 2014.
- SEI CERT Oracle Coding Standard for Java. Software Engineering Institute, Carnegie Mellon University. Abgerufen am 18. März 2016.
- Conquering Complex Java Concurrency Bugs with CodeSonar. GrammaTech White Paper. April 2014. Abgerufen am 8. Juli 2014.