{"id":"https://openalex.org/W2954977039","doi":"https://doi.org/10.1109/icse.2019.00050","title":"How C++ Developers Use Immutability Declarations: An Empirical Study","display_name":"How C++ Developers Use Immutability Declarations: An Empirical Study","publication_year":2019,"publication_date":"2019-05-01","ids":{"openalex":"https://openalex.org/W2954977039","doi":"https://doi.org/10.1109/icse.2019.00050","mag":"2954977039"},"language":"en","primary_location":{"is_oa":false,"landing_page_url":"https://doi.org/10.1109/icse.2019.00050","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false},"type":"article","type_crossref":"proceedings-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/A5046400830","display_name":"Jonathan Eyolfson","orcid":null},"institutions":[{"id":"https://openalex.org/I161318765","display_name":"University of California, Los Angeles","ror":"https://ror.org/046rm7j60","country_code":"US","type":"education","lineage":["https://openalex.org/I161318765"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jonathan Eyolfson","raw_affiliation_strings":["University of California, Los Angeles Los Angeles, CA, USA"],"affiliations":[{"raw_affiliation_string":"University of California, Los Angeles Los Angeles, CA, USA","institution_ids":["https://openalex.org/I161318765"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5016375266","display_name":"Patrick Lam","orcid":"https://orcid.org/0000-0001-8278-5400"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Patrick Lam","raw_affiliation_strings":["University of Waterloo, Waterloo, ON, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I151746483"]}]}],"institution_assertions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.351,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.580349,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":74,"max":77},"biblio":{"volume":"eptcs","issue":null,"first_page":"362","last_page":"372"},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9988,"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.9988,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9958,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9938,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/immutability","display_name":"Immutability","score":0.99938035},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.6711856},{"id":"https://openalex.org/keywords/empirical-research","display_name":"Empirical Research","score":0.4803899}],"concepts":[{"id":"https://openalex.org/C2776126399","wikidata":"https://www.wikidata.org/wiki/Q3942906","display_name":"Immutability","level":3,"score":0.99938035},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.75821877},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.6711856},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5020685},{"id":"https://openalex.org/C120936955","wikidata":"https://www.wikidata.org/wiki/Q2155640","display_name":"Empirical research","level":2,"score":0.4803899},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.37710196},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.14580563},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.077940345},{"id":"https://openalex.org/C2779687700","wikidata":"https://www.wikidata.org/wiki/Q20514253","display_name":"Blockchain","level":2,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"is_oa":false,"landing_page_url":"https://doi.org/10.1109/icse.2019.00050","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false}],"best_oa_location":null,"sustainable_development_goals":[],"grants":[],"datasets":[],"versions":[],"referenced_works_count":19,"referenced_works":["https://openalex.org/W121994753","https://openalex.org/W1500987966","https://openalex.org/W1601193885","https://openalex.org/W1777693579","https://openalex.org/W1963569294","https://openalex.org/W2008512073","https://openalex.org/W2013999503","https://openalex.org/W2099963114","https://openalex.org/W2118004641","https://openalex.org/W2138527110","https://openalex.org/W2145708265","https://openalex.org/W2153185479","https://openalex.org/W2368741442","https://openalex.org/W2541904841","https://openalex.org/W2616871725","https://openalex.org/W2763777702","https://openalex.org/W3152234666","https://openalex.org/W4230520268","https://openalex.org/W4246166885"],"related_works":["https://openalex.org/W4386576376","https://openalex.org/W3212423087","https://openalex.org/W3182748079","https://openalex.org/W2802479602","https://openalex.org/W2510867554","https://openalex.org/W2053237223","https://openalex.org/W2019522068","https://openalex.org/W1971699141","https://openalex.org/W1570380538","https://openalex.org/W1517747134"],"abstract_inverted_index":{"Best":[0],"practices":[1],"for":[2],"developers,":[3,121],"as":[4],"encoded":[5],"in":[6,44],"recent":[7],"programming":[8],"language":[9],"designs,":[10],"recommend":[11],"the":[12,27,37,59,67,72,131,161,213],"use":[13,52,57,210],"of":[14,23,29,39,58,114,133,153,164,176,185,199,215],"immutability":[15,40,53,61,168,193],"whenever":[16],"practical.":[17],"However,":[18],"there":[19],"is":[20,34],"a":[21,134],"lack":[22],"empirical":[24,115],"evidence":[25],"about":[26,76],"uptake":[28],"this":[30],"advice.":[31],"Our":[32],"goal":[33],"to":[35,125],"understand":[36],"usage":[38],"by":[41,54,65,120],"C++":[42,50,60],"developers":[43,51,81,96,173,191,209],"practice.":[45],"This":[46],"work":[47],"investigates":[48],"how":[49,208],"analyzing":[55,66],"their":[56,98],"qualifier,":[62],"const,":[63],"and":[64,91,101,110,129,178,212],"code":[68],"itself.":[69],"We":[70,103,149,159,202],"answer":[71],"following":[73],"broad":[74],"questions":[75],"const":[77,118,211],"usage:":[78],"1)":[79,117],"do":[80,95,166],"actually":[82],"write":[83,126],"non-trivial":[84,154],"(more":[85],"than":[86],"3":[87],"methods)":[88],"immutable":[89,92,99,127],"classes":[90,100,155,165],"methods?":[93,102],"2)":[94,130],"label":[97],"analyzed":[104],"7":[105],"medium-to-large":[106],"open":[107],"source":[108],"projects":[109],"collected":[111],"two":[112],"sources":[113],"data:":[116],"annotations":[119],"indicating":[122],"an":[123,204],"intent":[124],"code;":[128],"results":[132,214],"simple":[135],"static":[136],"analysis":[137],"which":[138],"identified":[139],"easily":[140],"const-able":[141],"methods---those":[142],"that":[143,151,181],"clearly":[144],"did":[145],"not":[146],"mutate":[147],"state.":[148],"estimate":[150,180],"5%":[152],"(median)":[156],"are":[157],"immutable.":[158],"found":[160],"vast":[162],"majority":[163],"carry":[167],"labels":[169,194],"on":[170,195,207],"methods:":[171],"surprisingly,":[172],"const-annotate":[174],"46%":[175],"methods,":[177],"we":[179],"at":[182,196],"least":[183,197],"51%":[184],"methods":[186],"could":[187],"be":[188],"const-annotated.":[189],"Furthermore,":[190],"missed":[192],"6%":[198],"unannotated":[200],"methods.":[201],"provide":[203],"in-depth":[205],"discussion":[206],"our":[216],"analyses.":[217]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W2954977039","counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1}],"updated_date":"2025-01-22T04:39:47.196122","created_date":"2019-07-12"}