{"id":"https://openalex.org/W3032997990","doi":"https://doi.org/10.22152/programming-journal.org/2020/4/14","title":"Did JHotDraw respect the Law of Good Style? - An exploratory deep dive into the nature of false positives of bad code smells","display_name":"Did JHotDraw respect the Law of Good Style? - An exploratory deep dive into the nature of false positives of bad code smells","publication_year":2020,"publication_date":"2020-02-14","ids":{"openalex":"https://openalex.org/W3032997990","doi":"https://doi.org/10.22152/programming-journal.org/2020/4/14","mag":"3032997990"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2020/4/14","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2020/4/14","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"type":"article","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://arxiv.org/pdf/2002.06191","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Daniel Speicher","orcid":null},"institutions":[{"id":"https://openalex.org/I4210164149","display_name":"Bonn Aachen International Center for Information Technology","ror":"https://ror.org/054zhq066","country_code":"DE","type":"facility","lineage":["https://openalex.org/I135140700","https://openalex.org/I155417937","https://openalex.org/I4210164149","https://openalex.org/I4923324"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Daniel Speicher","raw_affiliation_strings":["Bonn-Aachen International Center for Information Technology, B-IT, Germany"],"affiliations":[{"raw_affiliation_string":"Bonn-Aachen International Center for Information Technology, B-IT, Germany","institution_ids":["https://openalex.org/I4210164149"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I4210164149"],"apc_list":null,"apc_paid":null,"fwci":0.2775,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.63909003,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":"4","issue":"3","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.8568999767303467,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.8568999767303467,"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"}},{"id":"https://openalex.org/T11675","display_name":"Open Source Software Innovations","score":0.019500000402331352,"subfield":{"id":"https://openalex.org/subfields/1706","display_name":"Computer Science Applications"},"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/T10430","display_name":"Software Engineering Techniques and Practices","score":0.01889999955892563,"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/code-smell","display_name":"Code smell","score":0.8773999810218811},{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.7508000135421753},{"id":"https://openalex.org/keywords/false-positive-paradox","display_name":"False positive paradox","score":0.6927000284194946},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5879999995231628},{"id":"https://openalex.org/keywords/metric","display_name":"Metric (unit)","score":0.5828999876976013},{"id":"https://openalex.org/keywords/quality","display_name":"Quality (philosophy)","score":0.5654000043869019},{"id":"https://openalex.org/keywords/relation","display_name":"Relation (database)","score":0.5625},{"id":"https://openalex.org/keywords/false-accusation","display_name":"False accusation","score":0.39750000834465027}],"concepts":[{"id":"https://openalex.org/C133237599","wikidata":"https://www.wikidata.org/wiki/Q2295111","display_name":"Code smell","level":5,"score":0.8773999810218811},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.7508000135421753},{"id":"https://openalex.org/C64869954","wikidata":"https://www.wikidata.org/wiki/Q1859747","display_name":"False positive paradox","level":2,"score":0.6927000284194946},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6524999737739563},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5879999995231628},{"id":"https://openalex.org/C176217482","wikidata":"https://www.wikidata.org/wiki/Q860554","display_name":"Metric (unit)","level":2,"score":0.5828999876976013},{"id":"https://openalex.org/C2779530757","wikidata":"https://www.wikidata.org/wiki/Q1207505","display_name":"Quality (philosophy)","level":2,"score":0.5654000043869019},{"id":"https://openalex.org/C25343380","wikidata":"https://www.wikidata.org/wiki/Q277521","display_name":"Relation (database)","level":2,"score":0.5625},{"id":"https://openalex.org/C59577422","wikidata":"https://www.wikidata.org/wiki/Q10265143","display_name":"False accusation","level":2,"score":0.39750000834465027},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.375900000333786},{"id":"https://openalex.org/C2777027219","wikidata":"https://www.wikidata.org/wiki/Q1284190","display_name":"Constant (computer programming)","level":2,"score":0.3619000017642975},{"id":"https://openalex.org/C117447612","wikidata":"https://www.wikidata.org/wiki/Q1412670","display_name":"Software quality","level":4,"score":0.34860000014305115},{"id":"https://openalex.org/C112789634","wikidata":"https://www.wikidata.org/wiki/Q18207010","display_name":"False positives and false negatives","level":3,"score":0.3427000045776367},{"id":"https://openalex.org/C85973986","wikidata":"https://www.wikidata.org/wiki/Q1091731","display_name":"Exploratory research","level":2,"score":0.3361999988555908},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.3246000111103058},{"id":"https://openalex.org/C94124525","wikidata":"https://www.wikidata.org/wiki/Q912550","display_name":"Categorization","level":2,"score":0.3102000057697296},{"id":"https://openalex.org/C112930515","wikidata":"https://www.wikidata.org/wiki/Q4389547","display_name":"Risk analysis (engineering)","level":1,"score":0.27219998836517334},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.2700999975204468},{"id":"https://openalex.org/C2989486834","wikidata":"https://www.wikidata.org/wiki/Q3808900","display_name":"True positive rate","level":2,"score":0.2614000141620636},{"id":"https://openalex.org/C2776836416","wikidata":"https://www.wikidata.org/wiki/Q1364844","display_name":"False alarm","level":2,"score":0.2581000030040741}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.22152/programming-journal.org/2020/4/14","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2020/4/14","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:2002.06191","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2002.06191","pdf_url":"https://arxiv.org/pdf/2002.06191","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"pmh:oai:arXiv.org:2002.06191","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2002.06191","pdf_url":"https://arxiv.org/pdf/2002.06191","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Developers":[0],"need":[1],"to":[2,7,17,81,113,153,173,201,215,251,257,276,294,399,414,418,466],"make":[3],"a":[4,56,85,108,144,150,191,301,307,346,374,378,388,400],"constant":[5],"effort":[6],"improve":[8],"the":[9,82,98,103,111,124,178,186,240,260,265,278,281,284,322,332,335,351,382,393,397,419,427,434,445,449,455,458],"quality":[10,51,442],"of":[11,47,59,100,106,180,188,209,219,267,280,283,334,384,396,460,470,490],"their":[12],"code":[13,23,43],"if":[14],"they":[15],"want":[16],"stay":[18],"productive.":[19],"Tools":[20],"that":[21,25,167,197,236,245,259,315,321,342,358,479],"highlight":[22],"locations":[24,40],"could":[26,288,324],"benefit":[27],"from":[28,248,387],"refactoring":[29],"are":[30,171,224],"thus":[31,92],"highly":[32],"desirable.":[33],"The":[34,95,159,298,356],"most":[35,168,222],"common":[36],"name":[37],"for":[38,155,239,296,429,448,457],"such":[39,50,107],"is":[41,55,190,305,377,392],"\"bad":[42],"smell\".":[44],"A":[45],"number":[46],"tools":[48],"offer":[49],"feedback":[52],"and":[53,90,110,123,129,134,286,329,440,451,472],"there":[54],"substantial":[57],"body":[58],"related":[60],"research.":[61],"However,":[62],"all":[63],"these":[64],"tools,":[65],"including":[66],"those":[67],"based":[68,482],"on":[69,88,372,483],"Machine":[70],"Learning,":[71],"still":[72,199],"produce":[73],"false":[74,78,121,175,347,385,473],"positives.":[75,176,226],"Every":[76],"single":[77],"positive":[79,309,380],"shown":[80],"developer":[83,450],"places":[84],"cognitive":[86,446],"burden":[87],"her":[89],"should":[91,486],"be":[93,174,277,464],"avoided.":[94],"literature":[96],"discusses":[97],"choice":[99],"metric":[101],"thresholds,":[102],"general":[104,361],"subjectivity":[105],"judgment":[109],"relation":[112,125],"conscious":[114],"design":[115,130,194,234,269,292,354,362,367,407,491],"choices,":[116],"\"design":[117],"ideas\".":[118],"To":[119],"examine":[120],"positives":[122,386],"between":[126],"bad":[127,205],"smells":[128,218,275,462],"ideas,":[131],"we":[132,147,198,272,317,330,339,343,349,405],"designed":[133,164],"conducted":[135],"an":[136,370],"exploratory":[137],"case":[138],"study.":[139],"While":[140],"previous":[141],"research":[142],"presented":[143],"broad":[145],"overview,":[146],"have":[148,369],"chosen":[149],"narrow":[151],"setting":[152],"reach":[154],"even":[156],"deeper":[157],"insights:":[158],"framework":[160],"JHotDraw":[161],"had":[162,344],"been":[163],"so":[165,196],"thoughtfully":[166],"smell":[169,261,303,323,376,410,420,428,474,480],"warnings":[170],"expected":[172,200],"Nevertheless,":[177],"\"Law":[179,187],"Good":[181],"Style\",":[182],"better":[183],"known":[184],"as":[185,230,232],"Demeter\",":[189],"rather":[192],"restrictive":[193],"rule":[195],"find":[202],"some":[203,274],"potential":[204,217,302,375,461],"smells,":[206],"i.e.":[207],"violations":[208],"this":[210],"\"Law\".":[211],"This":[212],"combination":[213],"led":[214],"1215":[216],"which":[220],"at":[221],"42":[223],"true":[225,308,379,394,471],"We":[227,254,412],"found":[228,273,345],"generic":[229],"well":[231],"specific":[233,366,430],"ideas":[235,293,363,368,408,492],"were":[237,255,340],"traded":[238],"smell.":[241],"Our":[242],"confidence":[243],"in":[244],"decision":[246,299],"ranged":[247],"high":[249],"enough":[250],"very":[252,312],"high.":[253],"surprised":[256],"realize":[258],"definition":[262,395],"itself":[263],"required":[264],"formulation":[266],"constructive":[268,291],"ideas.":[270,355],"Finally":[271],"result":[279,333],"limitation":[282],"language":[285],"one":[287],"introduce":[289],"auxiliary":[290],"compensate":[295],"them.":[297],"whether":[300,373],"occurrence":[304],"actually":[306],"was":[310],"made":[311],"meticulously.":[313],"For":[314],"purpose":[316],"took":[318],"three":[319],"qualities":[320],"affect":[325],"negatively":[326],"into":[327,409,493],"account":[328],"discussed":[331],"recommended":[336],"refactorings.":[337],"If":[338],"convinced":[341],"positive,":[348],"described":[350],"relationships":[352],"with":[353],"realization":[357],"not":[359],"only":[360],"but":[364],"also":[365,487],"influence":[371],"turns":[381],"problem":[383,390,402],"scientific":[389],"(\"What":[391],"smell?\")":[398],"engineering":[401],"(\"How":[403],"can":[404],"incorporate":[406],"definitions?\").":[411],"recommend":[413],"add":[415],"adaptation":[416,433],"points":[417],"definitions.":[421],"Higher":[422],"layers":[423],"may":[424,436,463],"then":[425],"adapt":[426],"contexts.":[431],"After":[432],"tool":[435],"continuously":[437],"provide":[438],"distinct":[439],"precise":[441],"feedback,":[443],"reducing":[444],"load":[447],"preventing":[452],"habituation.":[453],"Furthermore,":[454],"schema":[456],"discussion":[459],"used":[465],"elaborate":[467],"more":[468],"sets":[469],"occurrences.":[475],"Finally,":[476],"it":[477],"follows":[478],"detection":[481],"machine":[484],"learning":[485],"take":[488],"signs":[489],"account.":[494]},"counts_by_year":[{"year":2022,"cited_by_count":1}],"updated_date":"2026-03-07T16:01:11.037858","created_date":"2020-06-12T00:00:00"}
