{"id":"https://openalex.org/W2073379710","doi":"https://doi.org/10.1145/1411732.1411753","title":"A trait based re-engineering technique for Java hierarchies","display_name":"A trait based re-engineering technique for Java hierarchies","publication_year":2008,"publication_date":"2008-09-09","ids":{"openalex":"https://openalex.org/W2073379710","doi":"https://doi.org/10.1145/1411732.1411753","mag":"2073379710"},"language":"en","primary_location":{"id":"doi:10.1145/1411732.1411753","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411732.1411753","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 6th international symposium on Principles and practice of programming in Java","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://hdl.handle.net/2318/34229","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5083629281","display_name":"Lorenzo Bettini","orcid":"https://orcid.org/0000-0002-4481-8096"},"institutions":[{"id":"https://openalex.org/I55143463","display_name":"University of Turin","ror":"https://ror.org/048tbm396","country_code":"IT","type":"education","lineage":["https://openalex.org/I55143463"]}],"countries":["IT"],"is_corresponding":true,"raw_author_name":"Lorenzo Bettini","raw_affiliation_strings":["Universit\u00e0 di Torino"],"affiliations":[{"raw_affiliation_string":"Universit\u00e0 di Torino","institution_ids":["https://openalex.org/I55143463"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5075230989","display_name":"Viviana Bono","orcid":"https://orcid.org/0000-0002-2533-0511"},"institutions":[{"id":"https://openalex.org/I55143463","display_name":"University of Turin","ror":"https://ror.org/048tbm396","country_code":"IT","type":"education","lineage":["https://openalex.org/I55143463"]}],"countries":["IT"],"is_corresponding":false,"raw_author_name":"Viviana Bono","raw_affiliation_strings":["Universit\u00e0 di Torino"],"affiliations":[{"raw_affiliation_string":"Universit\u00e0 di Torino","institution_ids":["https://openalex.org/I55143463"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5051277289","display_name":"Marco Naddeo","orcid":null},"institutions":[{"id":"https://openalex.org/I55143463","display_name":"University of Turin","ror":"https://ror.org/048tbm396","country_code":"IT","type":"education","lineage":["https://openalex.org/I55143463"]}],"countries":["IT"],"is_corresponding":false,"raw_author_name":"Marco Naddeo","raw_affiliation_strings":["Universit\u00e0 di Torino"],"affiliations":[{"raw_affiliation_string":"Universit\u00e0 di Torino","institution_ids":["https://openalex.org/I55143463"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5083629281"],"corresponding_institution_ids":["https://openalex.org/I55143463"],"apc_list":null,"apc_paid":null,"fwci":4.3739,"has_fulltext":true,"cited_by_count":10,"citation_normalized_percentile":{"value":0.94592705,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"149","last_page":"158"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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.9994999766349792,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9987999796867371,"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/T10126","display_name":"Logic, programming, and type systems","score":0.968500018119812,"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/computer-science","display_name":"Computer science","score":0.8379263877868652},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.8072569370269775},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.7521501779556274},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.6821346879005432},{"id":"https://openalex.org/keywords/inheritance","display_name":"Inheritance (genetic algorithm)","score":0.676918625831604},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6617715358734131},{"id":"https://openalex.org/keywords/generics-in-java","display_name":"Generics in Java","score":0.649455726146698},{"id":"https://openalex.org/keywords/smalltalk","display_name":"Smalltalk","score":0.5839616656303406},{"id":"https://openalex.org/keywords/java-modeling-language","display_name":"Java Modeling Language","score":0.5780671834945679},{"id":"https://openalex.org/keywords/reuse","display_name":"Reuse","score":0.5512939691543579},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.5491766929626465},{"id":"https://openalex.org/keywords/java-concurrency","display_name":"Java concurrency","score":0.5231049060821533},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.47623565793037415},{"id":"https://openalex.org/keywords/code-reuse","display_name":"Code reuse","score":0.4685215651988983},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.40494078397750854},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.27165549993515015},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.17037436366081238},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.15409210324287415}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8379263877868652},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.8072569370269775},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.7521501779556274},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.6821346879005432},{"id":"https://openalex.org/C2780902518","wikidata":"https://www.wikidata.org/wiki/Q6033780","display_name":"Inheritance (genetic algorithm)","level":3,"score":0.676918625831604},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6617715358734131},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.649455726146698},{"id":"https://openalex.org/C2777293101","wikidata":"https://www.wikidata.org/wiki/Q235086","display_name":"Smalltalk","level":3,"score":0.5839616656303406},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.5780671834945679},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.5512939691543579},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.5491766929626465},{"id":"https://openalex.org/C181907185","wikidata":"https://www.wikidata.org/wiki/Q1100098","display_name":"Java concurrency","level":4,"score":0.5231049060821533},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.47623565793037415},{"id":"https://openalex.org/C2778583558","wikidata":"https://www.wikidata.org/wiki/Q771245","display_name":"Code reuse","level":3,"score":0.4685215651988983},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.40494078397750854},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.27165549993515015},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.17037436366081238},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.15409210324287415},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/1411732.1411753","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411732.1411753","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 6th international symposium on Principles and practice of programming in Java","raw_type":"proceedings-article"},{"id":"pmh:oai:iris.unito.it:2318/34229","is_oa":true,"landing_page_url":"http://hdl.handle.net/2318/34229","pdf_url":"http://hdl.handle.net/2318/34229","source":{"id":"https://openalex.org/S4306400637","display_name":"Institutional Research Information System University of Turin (University of Turin)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I55143463","host_organization_name":"University of Turin","host_organization_lineage":["https://openalex.org/I55143463"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/conferenceObject"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.541.4559","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.541.4559","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.di.unito.it/~bono/papers/pppj2008b.pdf","raw_type":"text"},{"id":"pmh:oai:flore.unifi.it:2158/1074607","is_oa":false,"landing_page_url":"http://dl.acm.org/citation.cfm?id=1411753","pdf_url":null,"source":{"id":"https://openalex.org/S4306402033","display_name":"Florence Research (University of Florence)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I45084792","host_organization_name":"University of Florence","host_organization_lineage":["https://openalex.org/I45084792"],"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":"info:eu-repo/semantics/conferenceObject"}],"best_oa_location":{"id":"pmh:oai:iris.unito.it:2318/34229","is_oa":true,"landing_page_url":"http://hdl.handle.net/2318/34229","pdf_url":"http://hdl.handle.net/2318/34229","source":{"id":"https://openalex.org/S4306400637","display_name":"Institutional Research Information System University of Turin (University of Turin)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I55143463","host_organization_name":"University of Turin","host_organization_lineage":["https://openalex.org/I55143463"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/conferenceObject"},"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320321873","display_name":"Ministero dell\u2019Istruzione, dell\u2019Universit\u00e0 e della Ricerca","ror":"https://ror.org/0166hxq48"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2073379710.pdf","grobid_xml":"https://content.openalex.org/works/W2073379710.grobid-xml"},"referenced_works_count":31,"referenced_works":["https://openalex.org/W143490393","https://openalex.org/W1492136318","https://openalex.org/W1503729935","https://openalex.org/W1550017767","https://openalex.org/W1555946950","https://openalex.org/W1559822977","https://openalex.org/W1588959535","https://openalex.org/W1969502877","https://openalex.org/W1993029567","https://openalex.org/W2004874671","https://openalex.org/W2006755756","https://openalex.org/W2034356735","https://openalex.org/W2080648611","https://openalex.org/W2098139020","https://openalex.org/W2104301310","https://openalex.org/W2106815057","https://openalex.org/W2111898165","https://openalex.org/W2114980545","https://openalex.org/W2115680394","https://openalex.org/W2136449473","https://openalex.org/W2166155731","https://openalex.org/W2172147300","https://openalex.org/W2244800645","https://openalex.org/W2611004271","https://openalex.org/W2987803397","https://openalex.org/W2999050649","https://openalex.org/W4236858872","https://openalex.org/W4252511830","https://openalex.org/W6633003554","https://openalex.org/W6680376027","https://openalex.org/W6769869828"],"related_works":["https://openalex.org/W2541866089","https://openalex.org/W2035709547","https://openalex.org/W2547095320","https://openalex.org/W2181544444","https://openalex.org/W3172992491","https://openalex.org/W4231981509","https://openalex.org/W1572758480","https://openalex.org/W1519944186","https://openalex.org/W1678486327","https://openalex.org/W2155640360"],"abstract_inverted_index":{"Traits":[0],"are":[1],"pure":[2],"behavior":[3],"components":[4],"introduced":[5],"in":[6,10,105,134,137],"the":[7,14,34,45,79,85,111,132,135,142],"Smalltalk":[8,70],"community":[9],"order":[11,106],"to":[12,56,84,107],"integrate":[13],"traditional":[15],"class":[16,23],"inheritance":[17],"with":[18,125],"a":[19,22,49,57,60,69,123],"composition":[20],"mechanism:":[21],"is":[24],"composed":[25],"by":[26,54,63,81],"traits":[27,126],"and":[28,66],"inherits":[29],"from":[30],"superclasses.":[31],"This":[32],"offers":[33],"advantage":[35],"of":[36,47,110,113,131],"promoting":[37],"code":[38],"reuse.":[39],"In":[40],"this":[41,138],"paper,":[42],"we":[43,96,118],"tackle":[44],"problem":[46],"re-engineering":[48],"Java":[50,58,86,114,124],"hierarchy":[51],"into":[52],"traits,":[53],"adapting":[55],"setting":[59],"methodology":[61],"developed":[62],"Lienhard,":[64],"Ducasse,":[65],"Ar\u00e9valo":[67],"for":[68],"setting,":[71],"based":[72],"on":[73],"Formal":[74],"Concept":[75],"Analysis.":[76],"We":[77,90],"illustrate":[78],"approach":[80],"applying":[82],"it":[83],"input":[87],"stream":[88],"library.":[89],"also":[91],"obtain":[92],"two":[93],"by-products:":[94],"(i)":[95],"identify":[97],"clearly":[98],"some":[99,109,121],"workarounds":[100],"that":[101],"programmers":[102],"must":[103],"exploit":[104],"overcome":[108],"limitations":[112],"single":[115,119],"inheritance;":[116],"(ii)":[117],"out":[120],"features":[122],"might":[127],"include,":[128],"as":[129],"none":[130],"proposals":[133],"literature":[136],"sense":[139],"has":[140],"taken":[141],"lead":[143],"yet.":[144]},"counts_by_year":[{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
