{"id":"https://openalex.org/W1994514428","doi":"https://doi.org/10.1049/iet-sen:20080010","title":"Reducing the use of nullable types through non-null by default and monotonic non-null","display_name":"Reducing the use of nullable types through non-null by default and monotonic non-null","publication_year":2008,"publication_date":"2008-12-12","ids":{"openalex":"https://openalex.org/W1994514428","doi":"https://doi.org/10.1049/iet-sen:20080010","mag":"1994514428"},"language":"en","primary_location":{"id":"doi:10.1049/iet-sen:20080010","is_oa":false,"landing_page_url":"https://doi.org/10.1049/iet-sen:20080010","pdf_url":null,"source":{"id":"https://openalex.org/S164201770","display_name":"IET Software","issn_l":"1751-8806","issn":["1751-8806","1751-8814"],"is_oa":false,"is_in_doaj":true,"is_core":true,"host_organization":"https://openalex.org/P4310311714","host_organization_name":"Institution of Engineering and Technology","host_organization_lineage":["https://openalex.org/P4310311714"],"host_organization_lineage_names":["Institution of Engineering and Technology"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IET Software","raw_type":"journal-article"},"type":"article","indexed_in":["crossref","doaj"],"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/A5026825556","display_name":"Patrice Chalin","orcid":"https://orcid.org/0000-0002-9399-3528"},"institutions":[{"id":"https://openalex.org/I60158472","display_name":"Concordia University","ror":"https://ror.org/0420zvk78","country_code":"CA","type":"education","lineage":["https://openalex.org/I60158472"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"P. Chalin","raw_affiliation_strings":["Dependable Software Research Group, Department of Computer Science and Software Engineering, Concordia University, Montre\u0301al, Que\u0301bec, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Dependable Software Research Group, Department of Computer Science and Software Engineering, Concordia University, Montre\u0301al, Que\u0301bec, Canada","institution_ids":["https://openalex.org/I60158472"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110197432","display_name":"P.R. James","orcid":null},"institutions":[{"id":"https://openalex.org/I60158472","display_name":"Concordia University","ror":"https://ror.org/0420zvk78","country_code":"CA","type":"education","lineage":["https://openalex.org/I60158472"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"P.R. James","raw_affiliation_strings":["Dependable Software Research Group, Department of Computer Science and Software Engineering, Concordia University, Montre\u0301al, Que\u0301bec, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Dependable Software Research Group, Department of Computer Science and Software Engineering, Concordia University, Montre\u0301al, Que\u0301bec, Canada","institution_ids":["https://openalex.org/I60158472"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5027577450","display_name":"Fr\u00e9d\u00e9ric Rioux","orcid":null},"institutions":[{"id":"https://openalex.org/I60158472","display_name":"Concordia University","ror":"https://ror.org/0420zvk78","country_code":"CA","type":"education","lineage":["https://openalex.org/I60158472"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"F. Rioux","raw_affiliation_strings":["Dependable Software Research Group, Department of Computer Science and Software Engineering, Concordia University, Montre\u0301al, Que\u0301bec, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Dependable Software Research Group, Department of Computer Science and Software Engineering, Concordia University, Montre\u0301al, Que\u0301bec, Canada","institution_ids":["https://openalex.org/I60158472"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I60158472"],"apc_list":{"value":2200,"currency":"USD","value_usd":2200},"apc_paid":null,"fwci":6.652,"has_fulltext":false,"cited_by_count":10,"citation_normalized_percentile":{"value":0.9655468,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":"2","issue":"6","first_page":"515","last_page":"531"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9990000128746033,"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.9990000128746033,"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.9983999729156494,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9962999820709229,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7360073924064636},{"id":"https://openalex.org/keywords/null","display_name":"Null (SQL)","score":0.7322073578834534},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.7315605878829956},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7311339378356934},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.4604303240776062},{"id":"https://openalex.org/keywords/java-modeling-language","display_name":"Java Modeling Language","score":0.43055906891822815},{"id":"https://openalex.org/keywords/empirical-research","display_name":"Empirical research","score":0.42846834659576416},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.42223963141441345},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.23871096968650818},{"id":"https://openalex.org/keywords/database","display_name":"Database","score":0.20277738571166992},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.10707423090934753},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.08933603763580322}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7360073924064636},{"id":"https://openalex.org/C203763787","wikidata":"https://www.wikidata.org/wiki/Q371029","display_name":"Null (SQL)","level":2,"score":0.7322073578834534},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.7315605878829956},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7311339378356934},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.4604303240776062},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.43055906891822815},{"id":"https://openalex.org/C120936955","wikidata":"https://www.wikidata.org/wiki/Q2155640","display_name":"Empirical research","level":2,"score":0.42846834659576416},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.42223963141441345},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.23871096968650818},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.20277738571166992},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.10707423090934753},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.08933603763580322},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1049/iet-sen:20080010","is_oa":false,"landing_page_url":"https://doi.org/10.1049/iet-sen:20080010","pdf_url":null,"source":{"id":"https://openalex.org/S164201770","display_name":"IET Software","issn_l":"1751-8806","issn":["1751-8806","1751-8814"],"is_oa":false,"is_in_doaj":true,"is_core":true,"host_organization":"https://openalex.org/P4310311714","host_organization_name":"Institution of Engineering and Technology","host_organization_lineage":["https://openalex.org/P4310311714"],"host_organization_lineage_names":["Institution of Engineering and Technology"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IET Software","raw_type":"journal-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.165.8888","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.165.8888","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://users.encs.concordia.ca/%7Echalin/papers/ChalinJamesRioux08-IET-Sw-Nonnull-preprint.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Decent work and economic growth","id":"https://metadata.un.org/sdg/8","score":0.6700000166893005}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":57,"referenced_works":["https://openalex.org/W14568393","https://openalex.org/W31754778","https://openalex.org/W1480402155","https://openalex.org/W1484366641","https://openalex.org/W1498946538","https://openalex.org/W1512046983","https://openalex.org/W1549891226","https://openalex.org/W1564594068","https://openalex.org/W1572758480","https://openalex.org/W1580328473","https://openalex.org/W1583095677","https://openalex.org/W1587738184","https://openalex.org/W1606152849","https://openalex.org/W1644882639","https://openalex.org/W1649645444","https://openalex.org/W1825457006","https://openalex.org/W1829220688","https://openalex.org/W1874950958","https://openalex.org/W1959256509","https://openalex.org/W1964830323","https://openalex.org/W1966945773","https://openalex.org/W1967918489","https://openalex.org/W1980131623","https://openalex.org/W1980547413","https://openalex.org/W1981981414","https://openalex.org/W1986453394","https://openalex.org/W1998421080","https://openalex.org/W1999351657","https://openalex.org/W1999454969","https://openalex.org/W2007181618","https://openalex.org/W2066980498","https://openalex.org/W2067901725","https://openalex.org/W2088675571","https://openalex.org/W2106348655","https://openalex.org/W2107995193","https://openalex.org/W2108827856","https://openalex.org/W2109879514","https://openalex.org/W2118300983","https://openalex.org/W2125044336","https://openalex.org/W2143331802","https://openalex.org/W2146455667","https://openalex.org/W2153887189","https://openalex.org/W2159078835","https://openalex.org/W2588106347","https://openalex.org/W2895146318","https://openalex.org/W4285719527","https://openalex.org/W6601304066","https://openalex.org/W6602922042","https://openalex.org/W6619285713","https://openalex.org/W6628829883","https://openalex.org/W6632894348","https://openalex.org/W6633777234","https://openalex.org/W6636988782","https://openalex.org/W6676053513","https://openalex.org/W6676292639","https://openalex.org/W6683106902","https://openalex.org/W7057982713"],"related_works":["https://openalex.org/W1580328473","https://openalex.org/W2076663662","https://openalex.org/W2997436116","https://openalex.org/W1974508891","https://openalex.org/W4236689566","https://openalex.org/W4249758317","https://openalex.org/W2585085197","https://openalex.org/W616469428","https://openalex.org/W2062582068","https://openalex.org/W2365754790"],"abstract_inverted_index":{"With":[0],"Java":[1,131,135],"5":[2],"annotations,":[3],"the":[4,39,42,49,66,100,103,129,142,146,150,157,170,173,176,186,200,203,211],"authors":[5,67,101,126,174,201],"note":[6],"a":[7,139,166],"marked":[8],"increase":[9],"in":[10,38,156],"tools":[11,23],"that":[12,25,182],"can":[13],"statically":[14],"detect":[15],"potential":[16],"null":[17,179],"dereferences.":[18],"To":[19],"be":[20,92],"effective,":[21],"such":[22],"require":[24],"developers":[26],"annotate":[27],"declarations":[28,88],"with":[29],"nullity":[30],"modifiers":[31],"and":[32,122,180,209],"have":[33],"annotated":[34],"API":[35,152],"libraries.":[36],"Unfortunately,":[37],"experience":[40],"of":[41,51,72,86,105,113,160,169,178,185,198,205,213],"authors,":[43],"specifying":[44],"moderately":[45],"large":[46],"code":[47],"bases,":[48],"use":[50],"non-null":[52,193,207],"annotations":[53],"is":[54],"more":[55],"labour":[56],"intensive":[57],"than":[58],"it":[59],"should":[60],"be.":[61],"Motivated":[62],"by":[63,94,97],"this":[64,196],"experience,":[65],"conducted":[68],"an":[69],"empirical":[70,171],"study":[71],"five":[73],"open":[74],"source":[75],"projects":[76],"totalling":[77],"700K":[78],"lines-of-code,":[79],"which":[80],"confirms":[81],"that,":[82],"on":[83],"average,":[84],"75%":[85],"reference":[87],"are":[89,163,190],"meant":[90],"to":[91,148],"non-null,":[93],"design.":[95],"Guided":[96],"these":[98],"results,":[99],"propose":[102],"adoption":[104],"non-null-by-default":[106],"semantics.":[107],"This":[108],"new":[109,143],"default":[110],"has":[111],"advantages":[112],"better":[114],"matching":[115],"general":[116],"practice,":[117],"lightening":[118],"developer":[119],"annotation":[120],"burden":[121],"being":[123],"safer.":[124],"The":[125],"also":[127],"describe":[128],"Eclipse":[130],"Modelling":[132],"Language":[133],"(JML)":[134],"Development":[136],"Tooling":[137],"(JDT),":[138],"tool":[140],"supporting":[141],"semantics,":[144],"including":[145],"ability":[147],"read":[149],"extensive":[151],"library":[153],"specifications":[154],"written":[155],"JML.":[158],"Issues":[159],"backwards":[161],"compatibility":[162],"addressed.":[164],"In":[165],"second":[167],"phase":[168],"study,":[172],"analysed":[175],"uses":[177],"noted":[181],"over":[183],"half":[184],"nullable":[187],"field":[188],"references":[189],"only":[191],"assigned":[192],"values.":[194],"For":[195],"category":[197],"reference,":[199],"introduce":[202],"concept":[204],"monotonic":[206],"type":[208],"illustrate":[210],"benefits":[212],"its":[214],"use.":[215]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2017,"cited_by_count":1},{"year":2014,"cited_by_count":2}],"updated_date":"2026-07-23T08:03:31.855105","created_date":"2025-10-10T00:00:00"}
