{"id":"https://openalex.org/W2986478207","doi":"https://doi.org/10.1007/s10664-019-09769-8","title":"Recognizing lines of code violating company-specific coding guidelines using machine learning","display_name":"Recognizing lines of code violating company-specific coding guidelines using machine learning","publication_year":2019,"publication_date":"2019-11-14","ids":{"openalex":"https://openalex.org/W2986478207","doi":"https://doi.org/10.1007/s10664-019-09769-8","mag":"2986478207"},"language":"en","primary_location":{"id":"doi:10.1007/s10664-019-09769-8","is_oa":true,"landing_page_url":"https://doi.org/10.1007/s10664-019-09769-8","pdf_url":"https://link.springer.com/content/pdf/10.1007/s10664-019-09769-8.pdf","source":{"id":"https://openalex.org/S109852484","display_name":"Empirical Software Engineering","issn_l":"1382-3256","issn":["1382-3256","1573-7616"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Empirical Software Engineering","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://link.springer.com/content/pdf/10.1007/s10664-019-09769-8.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5063577085","display_name":"Miros\u0142aw Ochodek","orcid":"https://orcid.org/0000-0002-9103-717X"},"institutions":[{"id":"https://openalex.org/I46597724","display_name":"Pozna\u0144 University of Technology","ror":"https://ror.org/00p7p3302","country_code":"PL","type":"education","lineage":["https://openalex.org/I46597724"]},{"id":"https://openalex.org/I881427289","display_name":"University of Gothenburg","ror":"https://ror.org/01tm6cn81","country_code":"SE","type":"education","lineage":["https://openalex.org/I881427289"]}],"countries":["PL","SE"],"is_corresponding":true,"raw_author_name":"Miroslaw Ochodek","raw_affiliation_strings":["Poznan University of Technology, Poznan, Poland","University of Gothenburg, Gothenburg, Sweden"],"raw_orcid":"https://orcid.org/0000-0002-9103-717X","affiliations":[{"raw_affiliation_string":"Poznan University of Technology, Poznan, Poland","institution_ids":["https://openalex.org/I46597724"]},{"raw_affiliation_string":"University of Gothenburg, Gothenburg, Sweden","institution_ids":["https://openalex.org/I881427289"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5017449010","display_name":"Regina Hebig","orcid":"https://orcid.org/0000-0002-1459-2081"},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]},{"id":"https://openalex.org/I881427289","display_name":"University of Gothenburg","ror":"https://ror.org/01tm6cn81","country_code":"SE","type":"education","lineage":["https://openalex.org/I881427289"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Regina Hebig","raw_affiliation_strings":["Computer Science and Engineering Department, Chalmers | University of Gothenburg, Gothenburg, Sweden"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Computer Science and Engineering Department, Chalmers | University of Gothenburg, Gothenburg, Sweden","institution_ids":["https://openalex.org/I66862912","https://openalex.org/I881427289"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018084803","display_name":"Wilhelm Meding","orcid":"https://orcid.org/0000-0002-2860-7512"},"institutions":[{"id":"https://openalex.org/I1306339040","display_name":"Ericsson (Sweden)","ror":"https://ror.org/05a7rhx54","country_code":"SE","type":"company","lineage":["https://openalex.org/I1306339040"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Wilhelm Meding","raw_affiliation_strings":["Ericsson AB, Gothenburg, Sweden"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Ericsson AB, Gothenburg, Sweden","institution_ids":["https://openalex.org/I1306339040"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5028431377","display_name":"Gert Frost","orcid":null},"institutions":[{"id":"https://openalex.org/I4210161280","display_name":"Grundfos (Denmark)","ror":"https://ror.org/05rdv5n40","country_code":"DK","type":"company","lineage":["https://openalex.org/I4210161280","https://openalex.org/I4392738325"]}],"countries":["DK"],"is_corresponding":false,"raw_author_name":"Gert Frost","raw_affiliation_strings":["Grundfos, Bjerringbro, Denmark"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Grundfos, Bjerringbro, Denmark","institution_ids":["https://openalex.org/I4210161280"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5074020697","display_name":"Miroslaw Staron","orcid":"https://orcid.org/0000-0002-9052-0864"},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]},{"id":"https://openalex.org/I881427289","display_name":"University of Gothenburg","ror":"https://ror.org/01tm6cn81","country_code":"SE","type":"education","lineage":["https://openalex.org/I881427289"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Miroslaw Staron","raw_affiliation_strings":["Computer Science and Engineering Department, Chalmers | University of Gothenburg, Gothenburg, Sweden"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Computer Science and Engineering Department, Chalmers | University of Gothenburg, Gothenburg, Sweden","institution_ids":["https://openalex.org/I66862912","https://openalex.org/I881427289"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5063577085"],"corresponding_institution_ids":["https://openalex.org/I46597724","https://openalex.org/I881427289"],"apc_list":{"value":2290,"currency":"EUR","value_usd":2890},"apc_paid":{"value":2290,"currency":"EUR","value_usd":2890},"fwci":3.526,"has_fulltext":true,"cited_by_count":21,"citation_normalized_percentile":{"value":0.93919194,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":"25","issue":"1","first_page":"220","last_page":"265"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"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.9998999834060669,"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/T12423","display_name":"Software Reliability and Analysis Research","score":0.9933000206947327,"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.9764999747276306,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/codebase","display_name":"Codebase","score":0.9347634315490723},{"id":"https://openalex.org/keywords/code-review","display_name":"Code review","score":0.8261711597442627},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7572337985038757},{"id":"https://openalex.org/keywords/source-lines-of-code","display_name":"Source lines of code","score":0.7049511671066284},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.6404891610145569},{"id":"https://openalex.org/keywords/static-program-analysis","display_name":"Static program analysis","score":0.6116610765457153},{"id":"https://openalex.org/keywords/coding","display_name":"Coding (social sciences)","score":0.532682478427887},{"id":"https://openalex.org/keywords/kpi-driven-code-analysis","display_name":"KPI-driven code analysis","score":0.5078569054603577},{"id":"https://openalex.org/keywords/software-quality","display_name":"Software quality","score":0.4808276891708374},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4552752375602722},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.4377695322036743},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.4357036352157593},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.3993300199508667},{"id":"https://openalex.org/keywords/software-development","display_name":"Software development","score":0.36781495809555054},{"id":"https://openalex.org/keywords/machine-learning","display_name":"Machine learning","score":0.3649119436740875},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.2784157991409302}],"concepts":[{"id":"https://openalex.org/C51929080","wikidata":"https://www.wikidata.org/wiki/Q2425187","display_name":"Codebase","level":3,"score":0.9347634315490723},{"id":"https://openalex.org/C150292731","wikidata":"https://www.wikidata.org/wiki/Q1342704","display_name":"Code review","level":5,"score":0.8261711597442627},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7572337985038757},{"id":"https://openalex.org/C199519371","wikidata":"https://www.wikidata.org/wiki/Q942695","display_name":"Source lines of code","level":3,"score":0.7049511671066284},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.6404891610145569},{"id":"https://openalex.org/C137287247","wikidata":"https://www.wikidata.org/wiki/Q1329550","display_name":"Static program analysis","level":4,"score":0.6116610765457153},{"id":"https://openalex.org/C179518139","wikidata":"https://www.wikidata.org/wiki/Q5140297","display_name":"Coding (social sciences)","level":2,"score":0.532682478427887},{"id":"https://openalex.org/C121957198","wikidata":"https://www.wikidata.org/wiki/Q14365593","display_name":"KPI-driven code analysis","level":5,"score":0.5078569054603577},{"id":"https://openalex.org/C117447612","wikidata":"https://www.wikidata.org/wiki/Q1412670","display_name":"Software quality","level":4,"score":0.4808276891708374},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4552752375602722},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.4377695322036743},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.4357036352157593},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.3993300199508667},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.36781495809555054},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.3649119436740875},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.2784157991409302},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1007/s10664-019-09769-8","is_oa":true,"landing_page_url":"https://doi.org/10.1007/s10664-019-09769-8","pdf_url":"https://link.springer.com/content/pdf/10.1007/s10664-019-09769-8.pdf","source":{"id":"https://openalex.org/S109852484","display_name":"Empirical Software Engineering","issn_l":"1382-3256","issn":["1382-3256","1573-7616"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Empirical Software Engineering","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1007/s10664-019-09769-8","is_oa":true,"landing_page_url":"https://doi.org/10.1007/s10664-019-09769-8","pdf_url":"https://link.springer.com/content/pdf/10.1007/s10664-019-09769-8.pdf","source":{"id":"https://openalex.org/S109852484","display_name":"Empirical Software Engineering","issn_l":"1382-3256","issn":["1382-3256","1573-7616"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Empirical Software Engineering","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320323421","display_name":"G\u00f6teborgs Universitet","ror":"https://ror.org/01tm6cn81"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2986478207.pdf","grobid_xml":"https://content.openalex.org/works/W2986478207.grobid-xml"},"referenced_works_count":35,"referenced_works":["https://openalex.org/W649920412","https://openalex.org/W1549059914","https://openalex.org/W1553262910","https://openalex.org/W1570251336","https://openalex.org/W1890662982","https://openalex.org/W1989479444","https://openalex.org/W1991172342","https://openalex.org/W1992602600","https://openalex.org/W2019746085","https://openalex.org/W2021732807","https://openalex.org/W2026905436","https://openalex.org/W2036498929","https://openalex.org/W2040739365","https://openalex.org/W2108769867","https://openalex.org/W2115224143","https://openalex.org/W2140609933","https://openalex.org/W2143812381","https://openalex.org/W2151295763","https://openalex.org/W2163575675","https://openalex.org/W2171491028","https://openalex.org/W2230910126","https://openalex.org/W2590040183","https://openalex.org/W2598645805","https://openalex.org/W2601606535","https://openalex.org/W2769453414","https://openalex.org/W2783444782","https://openalex.org/W2789660410","https://openalex.org/W2793876926","https://openalex.org/W2796404405","https://openalex.org/W2830760308","https://openalex.org/W4229772528","https://openalex.org/W4232691406","https://openalex.org/W4240661623","https://openalex.org/W4254306780","https://openalex.org/W4320009379"],"related_works":["https://openalex.org/W3153702491","https://openalex.org/W2969257295","https://openalex.org/W3008981372","https://openalex.org/W2904997879","https://openalex.org/W2986478207","https://openalex.org/W167779242","https://openalex.org/W4312706861","https://openalex.org/W2034209539","https://openalex.org/W656101134","https://openalex.org/W2148190602"],"abstract_inverted_index":{"Abstract":[0],"Software":[1],"developers":[2,103],"in":[3,16,54,83,106,137,177,187,350],"big":[4,107],"and":[5,42,52,63,104,108,173,197,223,337],"medium-size":[6],"companies":[7,110,320],"are":[8,59],"working":[9],"with":[10,321],"millions":[11],"of":[12,14,22,34,50,68,116,127,145,152,157,171,180,208,220,227,248,263,286,291,301,334,342,357],"lines":[13,119,126,144,237,262,294],"code":[15,24,36,40,43,57,74,80,99,118,179,253,264,287],"their":[17,138],"codebases.":[18],"Assuring":[19],"the":[20,48,155,165,178,191,200,206,210,217,224,240,251,272,278,289,299,322,340,346,354,358],"quality":[21,356],"this":[23,55,69,255,313],"has":[25],"shifted":[26],"from":[27],"simple":[28],"defect":[29],"management":[30],"to":[31,72,124,129,133,141,168,204,215,260,281,297,324,327,331,353],"proactive":[32],"assurance":[33],"internal":[35],"quality.":[37],"Although":[38],"static":[39],"analysis":[41,100],"reviews":[44,58,75,343],"have":[45],"been":[46],"at":[47],"forefront":[49],"research":[51,70,91,149],"practice":[53],"area,":[56],"still":[60],"an":[61,329],"effort-intensive":[62],"interpretation-prone":[64],"activity.":[65],"The":[66],"aim":[67],"is":[71],"support":[73],"by":[76],"automatically":[77],"recognizing":[78],"company-specific":[79],"guidelines":[81,122,336],"violations":[82,136,170,333],"large-scale,":[84],"industrial":[85,195,252],"source":[86,117,184,231],"code.":[87],"In":[88],"our":[89],"action":[90,148],"project,":[92],"we":[93,270,309],"constructed":[94],"a":[95,113,244,266,283,292],"machine-learning-based":[96,166],"tool":[97,167,192,273],"for":[98,229,238,250,277],"where":[101],"software":[102,160,318],"architects":[105],"medium-sized":[109],"can":[111,315],"use":[112,325],"few":[114,293],"examples":[115,326],"violating":[120],"code/design":[121,335],"(up":[123,140],"700":[125,261],"code)":[128],"train":[130],"decision-tree":[131],"classifiers":[132],"find":[134],"similar":[135,245],"codebases":[139],"3":[142],"million":[143],"code).":[146],"Our":[147],"project":[150],"consisted":[151],"(i)":[153],"understanding":[154],"challenges":[156],"two":[158],"large":[159,182],"development":[161,319],"companies,":[162],"(ii)":[163],"applying":[164],"detect":[169],"Sun\u2019s":[172],"Google\u2019s":[174],"coding":[175],"conventions":[176],"three":[181],"open":[183,230],"projects":[185,232],"implemented":[186],"Java,":[188],"(iii)":[189],"evaluating":[190],"on":[193,306],"evolving":[194],"codebase,":[196],"(iv)":[198],"finding":[199],"best":[201],"learning":[202],"strategies":[203],"reduce":[205],"cost":[207],"training":[209,239,267],"classifiers.":[211],"We":[212,242],"were":[213],"able":[214],"achieve":[216],"average":[218,225,246],"accuracy":[219],"over":[221],"99%":[222],"F-score":[226,247,300],"0.80":[228],"when":[233],"using":[234,257],"ca.":[235],"40K":[236],"tool.":[241],"obtained":[243],"0.78":[249],"but":[254],"time":[256],"only":[258],"up":[259],"as":[265],"dataset.":[268],"Finally,":[269],"observed":[271],"performed":[274],"visibly":[275],"better":[276],"rules":[279],"requiring":[280],"understand":[282],"single":[284],"line":[285],"or":[288,303],"context":[290],"(often":[295],"allowing":[296],"reach":[298],"0.90":[302],"higher).":[304],"Based":[305],"these":[307],"results,":[308],"could":[310],"observe":[311],"that":[312],"approach":[314],"provide":[316],"modern":[317],"ability":[323],"teach":[328],"algorithm":[330],"recognize":[332],"thus":[338],"increase":[339],"number":[341],"conducted":[344],"before":[345],"product":[347],"release.":[348],"This,":[349],"turn,":[351],"leads":[352],"increased":[355],"final":[359],"software.":[360]},"counts_by_year":[{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":8},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":4},{"year":2020,"cited_by_count":2}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
