Get quick answers to your questions about the article from our AI researcher chatbot
{'id': 'https://openalex.org/W2060726935', 'doi': 'https://doi.org/10.1002/smr.235', 'title': 'Inference of object‐oriented design patterns', 'display_name': 'Inference of object‐oriented design patterns', 'publication_year': 2001, 'publication_date': '2001-09-01', 'ids': {'openalex': 'https://openalex.org/W2060726935', 'doi': 'https://doi.org/10.1002/smr.235', 'mag': '2060726935'}, 'language': 'en', 'primary_location': {'is_oa': False, 'landing_page_url': 'https://doi.org/10.1002/smr.235', 'pdf_url': None, 'source': {'id': 'https://openalex.org/S62796702', 'display_name': 'Journal of Software Maintenance and Evolution Research and Practice', 'issn_l': '1532-060X', 'issn': ['1532-060X', '1532-0618'], 'is_oa': False, 'is_in_doaj': False, 'is_core': True, 'host_organization': 'https://openalex.org/P4310320595', 'host_organization_name': 'Wiley', 'host_organization_lineage': ['https://openalex.org/P4310320595'], 'host_organization_lineage_names': ['Wiley'], 'type': 'journal'}, 'license': None, 'license_id': None, 'version': None, 'is_accepted': False, 'is_published': False}, 'type': 'article', 'type_crossref': 'journal-article', 'indexed_in': ['crossref'], 'open_access': {'is_oa': False, 'oa_status': 'closed', 'oa_url': None, 'any_repository_has_fulltext': False}, 'authorships': [{'author_position': 'first', 'author': {'id': 'https://openalex.org/A5025438762', 'display_name': 'Paolo Tonella', 'orcid': 'https://orcid.org/0000-0003-3088-0339'}, 'institutions': [{'id': 'https://openalex.org/I4210097842', 'display_name': 'Istituto Centrale per la Ricerca Scientifica e Tecnologica Applicata al Mare', 'ror': 'https://ror.org/014cycx13', 'country_code': 'IT', 'type': 'facility', 'lineage': ['https://openalex.org/I4210097842']}], 'countries': ['IT'], 'is_corresponding': False, 'raw_author_name': 'Paolo Tonella', 'raw_affiliation_strings': ['ITC‐Irst Istituto per la Ricerca Scientifica e Tecnologica, I‐38050 Povo (Trento), Italy'], 'affiliations': [{'raw_affiliation_string': 'ITC‐Irst Istituto per la Ricerca Scientifica e Tecnologica, I‐38050 Povo (Trento), Italy', 'institution_ids': ['https://openalex.org/I4210097842']}]}, {'author_position': 'last', 'author': {'id': 'https://openalex.org/A5025741374', 'display_name': 'G. Antoniol', 'orcid': None}, 'institutions': [{'id': 'https://openalex.org/I16337185', 'display_name': 'University of Sannio', 'ror': 'https://ror.org/04vc81p87', 'country_code': 'IT', 'type': 'education', 'lineage': ['https://openalex.org/I16337185']}], 'countries': ['IT'], 'is_corresponding': False, 'raw_author_name': 'Giulio Antoniol', 'raw_affiliation_strings': ['University of Sannio, Faculty of Engineering, Piazza Roma, I-82100 Benevento, Italy'], 'affiliations': [{'raw_affiliation_string': 'University of Sannio, Faculty of Engineering, Piazza Roma, I-82100 Benevento, Italy', 'institution_ids': ['https://openalex.org/I16337185']}]}], 'countries_distinct_count': 1, 'institutions_distinct_count': 2, 'corresponding_author_ids': [], 'corresponding_institution_ids': [], 'apc_list': None, 'apc_paid': None, 'fwci': 8.047, 'has_fulltext': True, 'fulltext_origin': 'ngrams', 'cited_by_count': 32, 'citation_normalized_percentile': {'value': 0.966244, 'is_in_top_1_percent': False, 'is_in_top_10_percent': True}, 'cited_by_percentile_year': {'min': 89, 'max': 90}, 'biblio': {'volume': '13', 'issue': '5', 'first_page': '309', 'last_page': '330'}, 'is_retracted': False, 'is_paratext': False, 'primary_topic': {'id': 'https://openalex.org/T10260', 'display_name': 'Empirical Studies in Software Engineering', 'score': 1.0, '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': 'Empirical Studies in Software Engineering', 'score': 1.0, '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': 'Autonomic Computing and Self-Adaptive Systems', 'score': 0.9991, '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/T12127', 'display_name': 'Log Analysis and System Performance Diagnosis', 'score': 0.9955, 'subfield': {'id': 'https://openalex.org/subfields/1705', 'display_name': 'Computer Networks and Communications'}, '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/software-design-pattern', 'display_name': 'Software design pattern', 'score': 0.662081}, {'id': 'https://openalex.org/keywords/source-code-analysis', 'display_name': 'Source Code Analysis', 'score': 0.526158}, {'id': 'https://openalex.org/keywords/api-usage-patterns', 'display_name': 'API Usage Patterns', 'score': 0.52589}, {'id': 'https://openalex.org/keywords/code-clone-detection', 'display_name': 'Code Clone Detection', 'score': 0.519482}, {'id': 'https://openalex.org/keywords/software-architecture', 'display_name': 'Software Architecture', 'score': 0.512876}, {'id': 'https://openalex.org/keywords/aspect-oriented-programming', 'display_name': 'Aspect-Oriented Programming', 'score': 0.510622}, {'id': 'https://openalex.org/keywords/code', 'display_name': 'Code (set theory)', 'score': 0.49424818}, {'id': 'https://openalex.org/keywords/object-oriented-design', 'display_name': 'Object-oriented design', 'score': 0.49097994}, {'id': 'https://openalex.org/keywords/code-reuse', 'display_name': 'Code reuse', 'score': 0.4678225}, {'id': 'https://openalex.org/keywords/structural-pattern', 'display_name': 'Structural pattern', 'score': 0.43144733}, {'id': 'https://openalex.org/keywords/design-pattern', 'display_name': 'Design pattern', 'score': 0.41829938}], 'concepts': [{'id': 'https://openalex.org/C41008148', 'wikidata': 'https://www.wikidata.org/wiki/Q21198', 'display_name': 'Computer science', 'level': 0, 'score': 0.75301605}, {'id': 'https://openalex.org/C2776214188', 'wikidata': 'https://www.wikidata.org/wiki/Q408386', 'display_name': 'Inference', 'level': 2, 'score': 0.73653126}, {'id': 'https://openalex.org/C2777212361', 'wikidata': 'https://www.wikidata.org/wiki/Q5127848', 'display_name': 'Class (philosophy)', 'level': 2, 'score': 0.7095082}, {'id': 'https://openalex.org/C206588197', 'wikidata': 'https://www.wikidata.org/wiki/Q846574', 'display_name': 'Reuse', 'level': 2, 'score': 0.69468147}, {'id': 'https://openalex.org/C146054899', 'wikidata': 'https://www.wikidata.org/wiki/Q181156', 'display_name': 'Software design pattern', 'level': 3, 'score': 0.662081}, {'id': 'https://openalex.org/C177264268', 'wikidata': 'https://www.wikidata.org/wiki/Q1514741', 'display_name': 'Set (abstract data type)', 'level': 2, 'score': 0.61810124}, {'id': 'https://openalex.org/C2781238097', 'wikidata': 'https://www.wikidata.org/wiki/Q175026', 'display_name': 'Object (grammar)', 'level': 2, 'score': 0.52727586}, {'id': 'https://openalex.org/C2776760102', 'wikidata': 'https://www.wikidata.org/wiki/Q5139990', 'display_name': 'Code (set theory)', 'level': 3, 'score': 0.49424818}, {'id': 'https://openalex.org/C53073257', 'wikidata': 'https://www.wikidata.org/wiki/Q7075021', 'display_name': 'Object-oriented design', 'level': 3, 'score': 0.49097994}, {'id': 'https://openalex.org/C115903868', 'wikidata': 'https://www.wikidata.org/wiki/Q80993', 'display_name': 'Software engineering', 'level': 1, 'score': 0.48560327}, {'id': 'https://openalex.org/C2778583558', 'wikidata': 'https://www.wikidata.org/wiki/Q771245', 'display_name': 'Code reuse', 'level': 3, 'score': 0.4678225}, {'id': 'https://openalex.org/C73752529', 'wikidata': 'https://www.wikidata.org/wiki/Q79872', 'display_name': 'Object-oriented programming', 'level': 2, 'score': 0.43680316}, {'id': 'https://openalex.org/C164202143', 'wikidata': 'https://www.wikidata.org/wiki/Q635280', 'display_name': 'Structural pattern', 'level': 5, 'score': 0.43144733}, {'id': 'https://openalex.org/C14501506', 'wikidata': 'https://www.wikidata.org/wiki/Q5253831', 'display_name': 'Design pattern', 'level': 2, 'score': 0.41829938}, {'id': 'https://openalex.org/C2777904410', 'wikidata': 'https://www.wikidata.org/wiki/Q7397', 'display_name': 'Software', 'level': 2, 'score': 0.38273653}, {'id': 'https://openalex.org/C199360897', 'wikidata': 'https://www.wikidata.org/wiki/Q9143', 'display_name': 'Programming language', 'level': 1, 'score': 0.38127133}, {'id': 'https://openalex.org/C124101348', 'wikidata': 'https://www.wikidata.org/wiki/Q172491', 'display_name': 'Data mining', 'level': 1, 'score': 0.36521015}, {'id': 'https://openalex.org/C154945302', 'wikidata': 'https://www.wikidata.org/wiki/Q11660', 'display_name': 'Artificial intelligence', 'level': 1, 'score': 0.34039593}, {'id': 'https://openalex.org/C52913732', 'wikidata': 'https://www.wikidata.org/wiki/Q857102', 'display_name': 'Software design', 'level': 4, 'score': 0.32752484}, {'id': 'https://openalex.org/C529173508', 'wikidata': 'https://www.wikidata.org/wiki/Q638608', 'display_name': 'Software development', 'level': 3, 'score': 0.31383425}, {'id': 'https://openalex.org/C127413603', 'wikidata': 'https://www.wikidata.org/wiki/Q11023', 'display_name': 'Engineering', 'level': 0, 'score': 0.10819107}, {'id': 'https://openalex.org/C548081761', 'wikidata': 'https://www.wikidata.org/wiki/Q180388', 'display_name': 'Waste management', 'level': 1, 'score': 0.0}], 'mesh': [], 'locations_count': 1, 'locations': [{'is_oa': False, 'landing_page_url': 'https://doi.org/10.1002/smr.235', 'pdf_url': None, 'source': {'id': 'https://openalex.org/S62796702', 'display_name': 'Journal of Software Maintenance and Evolution Research and Practice', 'issn_l': '1532-060X', 'issn': ['1532-060X', '1532-0618'], 'is_oa': False, 'is_in_doaj': False, 'is_core': True, 'host_organization': 'https://openalex.org/P4310320595', 'host_organization_name': 'Wiley', 'host_organization_lineage': ['https://openalex.org/P4310320595'], 'host_organization_lineage_names': ['Wiley'], 'type': 'journal'}, 'license': None, 'license_id': None, 'version': None, 'is_accepted': False, 'is_published': False}], 'best_oa_location': None, 'sustainable_development_goals': [], 'grants': [], 'datasets': [], 'versions': [], 'referenced_works_count': 24, 'referenced_works': ['https://openalex.org/W1480339387', 'https://openalex.org/W1491932429', 'https://openalex.org/W1535654799', 'https://openalex.org/W1556041074', 'https://openalex.org/W1640156467', 'https://openalex.org/W1649645444', 'https://openalex.org/W1698439592', 'https://openalex.org/W1906031742', 'https://openalex.org/W1934235886', 'https://openalex.org/W1954896785', 'https://openalex.org/W1980748308', 'https://openalex.org/W2069942764', 'https://openalex.org/W2080421718', 'https://openalex.org/W2112879740', 'https://openalex.org/W2119977814', 'https://openalex.org/W2124961838', 'https://openalex.org/W2129200997', 'https://openalex.org/W2153356178', 'https://openalex.org/W2156619646', 'https://openalex.org/W2157532207', 'https://openalex.org/W4230079112', 'https://openalex.org/W4240437596', 'https://openalex.org/W4299512882', 'https://openalex.org/W4300560521'], 'related_works': ['https://openalex.org/W4385303825', 'https://openalex.org/W4231940311', 'https://openalex.org/W3040588613', 'https://openalex.org/W2350603686', 'https://openalex.org/W2183981186', 'https://openalex.org/W2088322083', 'https://openalex.org/W2075566062', 'https://openalex.org/W2037721767', 'https://openalex.org/W1554217755', 'https://openalex.org/W1531468785'], 'abstract_inverted_index': {'Abstract': [0], 'When': [1], 'designing': [2], 'a': [3, 57, 109, 155], 'new': [4], 'application,': [5], 'experienced': [6], 'software': [7], 'engineers': [8], 'usually': [9], 'adopt': [10], 'solutions': [11], 'that': [12], 'have': [13, 188], 'proven': [14], 'successful': [15], 'in': [16, 38, 191], 'previous': [17], 'projects.': [18], 'Such': [19], 'reuse': [20], 'of': [21, 70, 87, 104, 119, 126, 154, 157], 'code': [22, 77], 'organizations': [23, 181], 'is': [24, 60, 78, 82], 'seldom': [25], 'made': [26, 83], 'explicit.': [27], 'Nevertheless,': [28], 'it': [29, 52], 'represents': [30], 'important': [31], 'information,': [32], 'which': [33, 107, 144, 160, 187], 'can': [34, 53], 'be': [35, 54, 162, 177], 'extremely': [36], 'valuable': [37], 'the': [39, 44, 48, 68, 76, 85, 92, 102, 124, 145, 152, 192], 'maintenance': [40], 'phase': [41], 'by': [42], 'documenting': [43], 'design': [45, 72, 128, 158], 'choices': [46], 'underlying': [47], 'implementation.': [49], 'In': [50, 62, 113], 'addition': [51], 'reused': [55], 'whenever': [56], 'similar': [58], 'problem': [59], 'encountered.': [61], 'this': [63, 97], 'paper': [64], 'an': [65], 'approach': [66, 136], 'for': [67, 96, 143], 'inference': [69], 'recurrent': [71], 'patterns': [73, 175], 'directly': [74], 'from': [75], 'proposed.': [79], 'No': [80], 'assumption': [81], 'on': [84], 'availability': [86], 'any': [88], 'pattern': [89], 'library,': [90], 'and': [91, 170], 'concept': [93, 115], 'analysis': [94, 116], 'algorithm—adapted': [95], 'purpose—is': [98], 'able': [99], 'to': [100, 139, 151], 'infer': [101], 'presence': [103], 'class': [105, 130, 168], 'groups': [106], 'instantiate': [108], 'common,': [110], 'repeated': [111], 'pattern.': [112], 'fact,': [114], 'provides': [117], 'sets': [118], 'objects': [120], 'sharing': [121], 'attributes,': [122], 'which—in': [123], 'case': [125], 'object‐oriented': [127], 'patterns—become': [129], 'members': [131, 169], 'or': [132], 'inter‐class': [133], 'relations.': [134], 'The': [135, 173], 'was': [137], 'applied': [138], 'three': [140], 'C++': [141], 'applications': [142, 193], 'structural': [146], 'relations': [147], 'among': [148], 'classes': [149], 'led': [150], 'extraction': [153], 'set': [156], 'patterns,': [159], 'could': [161, 176], 'enriched': [163], 'with': [164], 'non‐structural': [165], 'information': [166], 'about': [167], 'method': [171], 'invocations.': [172], 'resulting': [174], 'interpreted': [178], 'as': [179], 'meaningful': [180], 'aimed': [182], 'at': [183], 'solving': [184], 'general': [185], 'problems': [186], 'several': [189], 'instances': [190], 'analyzed.': [194], 'Copyright': [195], '©': [196], '2001': [197], 'John': [198], 'Wiley': [199], '&': [200], 'Sons,': [201], 'Ltd.': [202]}, 'cited_by_api_url': 'https://api.openalex.org/works?filter=cites:W2060726935', 'counts_by_year': [{'year': 2024, 'cited_by_count': 1}, {'year': 2023, 'cited_by_count': 2}, {'year': 2021, 'cited_by_count': 1}, {'year': 2015, 'cited_by_count': 2}, {'year': 2013, 'cited_by_count': 2}, {'year': 2012, 'cited_by_count': 1}], 'updated_date': '2024-08-15T07:35:29.201208', 'created_date': '2016-06-24'}