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
BearbeitenThreadSafe 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
BearbeitenThreadSafe entdeckt Verstöße gegen zahlreiche nebenläufigkeitsbezogene Regeln im CERT Oracle Secure Coding Standard for Java.[8]
Gemeinsam vertriebene Produkte
BearbeitenThreadSafe wird auch von GrammaTech als integrierte Erweiterung des CodeSonar Sourcecode-Analyse-Werkzeugs vertrieben.[9]
Einzelnachweise
Bearbeiten- ↑ a b Victor Grazi: ThreadSafe Concurrency Static Analysis Tool Announces First Public Release. InfoQ.com, 28. August 2013, abgerufen am 8. Juli 2014.
- ↑ a b c d Darryl Taft: Contemplate Delivers ThreadSafe Java Concurrency Static Analysis Tool. DevX.com, 4. September 2013, abgerufen am 8. Juli 2014.
- ↑ 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.
- ↑ 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.
- ↑ Ritobaan Roy: Software Errors: New Technology Briefing For CFOs. CFO Insight, 1. Mai 2013, archiviert vom 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, archiviert vom 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.