{"id":"https://openalex.org/W2888762786","doi":"https://doi.org/10.1145/3238147.3238212","title":"Is this class thread-safe? inferring documentation using graph-based learning","display_name":"Is this class thread-safe? inferring documentation using graph-based learning","publication_year":2018,"publication_date":"2018-08-20","ids":{"openalex":"https://openalex.org/W2888762786","doi":"https://doi.org/10.1145/3238147.3238212","mag":"2888762786"},"language":"en","primary_location":{"id":"doi:10.1145/3238147.3238212","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3238147.3238212","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5025656553","display_name":"Andrew Habib","orcid":"https://orcid.org/0000-0002-5857-1864"},"institutions":[{"id":"https://openalex.org/I31512782","display_name":"Technische Universit\u00e4t Darmstadt","ror":"https://ror.org/05n911h24","country_code":"DE","type":"education","lineage":["https://openalex.org/I31512782"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Andrew Habib","raw_affiliation_strings":["TU Darmstadt, Germany"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"TU Darmstadt, Germany","institution_ids":["https://openalex.org/I31512782"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013438083","display_name":"Michael Pradel","orcid":"https://orcid.org/0000-0003-1623-498X"},"institutions":[{"id":"https://openalex.org/I31512782","display_name":"Technische Universit\u00e4t Darmstadt","ror":"https://ror.org/05n911h24","country_code":"DE","type":"education","lineage":["https://openalex.org/I31512782"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Michael Pradel","raw_affiliation_strings":["TU Darmstadt, Germany"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"TU Darmstadt, Germany","institution_ids":["https://openalex.org/I31512782"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.8488,"has_fulltext":false,"cited_by_count":11,"citation_normalized_percentile":{"value":0.86765591,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"41","last_page":"52"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9980999827384949,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9980999827384949,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9965999722480774,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9958999752998352,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.8500691652297974},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.78397536277771},{"id":"https://openalex.org/keywords/documentation","display_name":"Documentation","score":0.7704686522483826},{"id":"https://openalex.org/keywords/classifier","display_name":"Classifier (UML)","score":0.47497981786727905},{"id":"https://openalex.org/keywords/graph","display_name":"Graph","score":0.41853538155555725},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.34143301844596863},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.33197277784347534},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.2919256091117859}],"concepts":[{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.8500691652297974},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.78397536277771},{"id":"https://openalex.org/C56666940","wikidata":"https://www.wikidata.org/wiki/Q788790","display_name":"Documentation","level":2,"score":0.7704686522483826},{"id":"https://openalex.org/C95623464","wikidata":"https://www.wikidata.org/wiki/Q1096149","display_name":"Classifier (UML)","level":2,"score":0.47497981786727905},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.41853538155555725},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.34143301844596863},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.33197277784347534},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.2919256091117859}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3238147.3238212","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3238147.3238212","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320320879","display_name":"Deutsche Forschungsgemeinschaft","ror":"https://ror.org/018mejw64"},{"id":"https://openalex.org/F4320321114","display_name":"Bundesministerium f\u00fcr Bildung und Forschung","ror":"https://ror.org/04pz7b180"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":83,"referenced_works":["https://openalex.org/W1511160855","https://openalex.org/W1541313361","https://openalex.org/W1560724230","https://openalex.org/W1816257748","https://openalex.org/W1835509607","https://openalex.org/W1868584616","https://openalex.org/W1887412317","https://openalex.org/W1965462925","https://openalex.org/W1972544179","https://openalex.org/W1977223454","https://openalex.org/W1981393723","https://openalex.org/W1989526951","https://openalex.org/W2002179840","https://openalex.org/W2005335403","https://openalex.org/W2005662348","https://openalex.org/W2008107570","https://openalex.org/W2013039900","https://openalex.org/W2016314068","https://openalex.org/W2047260020","https://openalex.org/W2051393771","https://openalex.org/W2054520963","https://openalex.org/W2080696000","https://openalex.org/W2081301924","https://openalex.org/W2082766667","https://openalex.org/W2092942461","https://openalex.org/W2093938715","https://openalex.org/W2095938258","https://openalex.org/W2099438806","https://openalex.org/W2102640269","https://openalex.org/W2102731275","https://openalex.org/W2108980486","https://openalex.org/W2109875364","https://openalex.org/W2110852599","https://openalex.org/W2111759889","https://openalex.org/W2112274482","https://openalex.org/W2112582249","https://openalex.org/W2115015193","https://openalex.org/W2115467367","https://openalex.org/W2121059325","https://openalex.org/W2123468567","https://openalex.org/W2127989655","https://openalex.org/W2130426318","https://openalex.org/W2130730821","https://openalex.org/W2131954495","https://openalex.org/W2132800423","https://openalex.org/W2135395375","https://openalex.org/W2136646111","https://openalex.org/W2137262074","https://openalex.org/W2142498761","https://openalex.org/W2147286743","https://openalex.org/W2153229512","https://openalex.org/W2158391928","https://openalex.org/W2161600851","https://openalex.org/W2167187192","https://openalex.org/W2167744164","https://openalex.org/W2168103835","https://openalex.org/W2170998491","https://openalex.org/W2171076136","https://openalex.org/W2171480813","https://openalex.org/W2218242280","https://openalex.org/W2244729939","https://openalex.org/W2295399529","https://openalex.org/W2357666213","https://openalex.org/W2366532918","https://openalex.org/W2389540670","https://openalex.org/W2492608700","https://openalex.org/W2512244510","https://openalex.org/W2527497076","https://openalex.org/W2531260568","https://openalex.org/W2593635859","https://openalex.org/W2617604339","https://openalex.org/W2619153025","https://openalex.org/W2646159910","https://openalex.org/W2740268627","https://openalex.org/W2767331170","https://openalex.org/W2767532479","https://openalex.org/W4231709874","https://openalex.org/W4235116491","https://openalex.org/W4243324871","https://openalex.org/W4247660350","https://openalex.org/W4249817346","https://openalex.org/W4254906220","https://openalex.org/W6740158948"],"related_works":["https://openalex.org/W2618286804","https://openalex.org/W2329643025","https://openalex.org/W3131163342","https://openalex.org/W2166271660","https://openalex.org/W2092256833","https://openalex.org/W2142369114","https://openalex.org/W2002770077","https://openalex.org/W2361728394","https://openalex.org/W2352631095","https://openalex.org/W2408577762"],"abstract_inverted_index":{"Thread-safe":[0],"classes":[1,10,73,95,105],"are":[2],"pervasive":[3],"in":[4,30],"concurrent,":[5],"object-oriented":[6],"software.":[7],"However,":[8],"many":[9,150],"lack":[11,21,62],"documentation":[12,23,129,148],"regarding":[13],"their":[14],"safety":[15,128],"guarantees":[16],"under":[17],"multi-threaded":[18],"usage.":[19],"This":[20],"of":[22,40,63,116],"forces":[24],"developers":[25],"who":[26],"use":[27],"a":[28,31,85,91,97],"class":[29,56],"concurrent":[32],"program":[33],"to":[34,43,48,51,70,83,107,125,146],"either":[35],"carefully":[36],"inspect":[37],"the":[38,41,55,61,102,123],"implementation":[39],"class,":[42,140],"conservatively":[44],"synchronize":[45],"all":[46],"accesses":[47],"it,":[49],"or":[50,77],"optimistically":[52],"assume":[53],"that":[54,89],"is":[57,82,143],"thread-safe.":[58],"To":[59],"overcome":[60],"documentation,":[64],"we":[65],"present":[66],"TSFinder,":[67],"an":[68,114],"approach":[69,124],"automatically":[71],"classify":[72],"as":[74],"supposedly":[75],"thread-safe":[76,109],"thread-unsafe.":[78],"The":[79,133],"key":[80],"idea":[81],"combine":[84],"lightweight":[86],"static":[87],"analysis":[88],"extracts":[90],"graph":[92],"representation":[93],"from":[94],"with":[96,104,130],"graph-based":[98],"classifier.":[99],"After":[100],"training":[101],"classifier":[103,134],"known":[106],"be":[108],"and":[110],"thread-unsafe,":[111],"it":[112,142],"achieves":[113],"accuracy":[115],"94.5%":[117],"on":[118],"previously":[119],"unseen":[120],"classes,":[121],"enabling":[122],"infer":[126,147],"thread":[127],"high":[131],"confidence.":[132],"takes":[135],"about":[136],"3":[137],"seconds":[138],"per":[139],"i.e.,":[141],"efficient":[144],"enough":[145],"for":[149],"classes.":[151]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
