{"id":"https://openalex.org/W2886979205","doi":"https://doi.org/10.1145/3178298.3178307","title":"Detecting Design Patterns from Source Code using Static Analysis Techniques","display_name":"Detecting Design Patterns from Source Code using Static Analysis Techniques","publication_year":2017,"publication_date":"2017-12-12","ids":{"openalex":"https://openalex.org/W2886979205","doi":"https://doi.org/10.1145/3178298.3178307","mag":"2886979205"},"language":"en","primary_location":{"id":"doi:10.1145/3178298.3178307","doi":"https://doi.org/10.1145/3178298.3178307","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3178298.3178307","pdf_url":null,"source":{"id":"https://openalex.org/S7407120358","display_name":"Africa and Middle East Conference on Software Engineering (AMECSE)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 3rd Africa and Middle East Conference on Software Engineering","raw_type":"proceedings-article"},"parent_works":[],"lineage":["https://openalex.org/W2886979205"],"child_works_count":0,"type":"conference-paper","is_traditional":true,"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/A5002469189","display_name":"Khaled Mohamed","orcid":"https://orcid.org/0000-0002-5718-3122","observed_orcids":["https://orcid.org/0000-0002-5718-3122"]},"institutions":[{"id":"https://openalex.org/I145487455","display_name":"Cairo University","ror":"https://ror.org/03q21mh05","country_code":"EG","type":"education","lineage":["https://openalex.org/I145487455"]}],"countries":["EG"],"is_corresponding":false,"raw_author_name":"Khaled Abdelsalam Mohamed","raw_affiliation_strings":["Cairo University, Egypt"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Cairo University, Egypt","institution_ids":["https://openalex.org/I145487455"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5109513304","display_name":"Amr A. Kamel","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I145487455","display_name":"Cairo University","ror":"https://ror.org/03q21mh05","country_code":"EG","type":"education","lineage":["https://openalex.org/I145487455"]}],"countries":["EG"],"is_corresponding":false,"raw_author_name":"Amr Kamel","raw_affiliation_strings":["Cairo University, Egypt"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Cairo University, Egypt","institution_ids":["https://openalex.org/I145487455"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I145487455"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.0,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"8","issue":null,"first_page":"49","last_page":"50"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9980000257492065,"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.9980000257492065,"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/T12490","display_name":"Software Engineering and Design Patterns","score":0.0006000000284984708,"subfield":{"id":"https://openalex.org/subfields/3303","display_name":"Development"},"field":{"id":"https://openalex.org/fields/33","display_name":"Social Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}},{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.00039999998989515007,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/design-pattern-detection","display_name":"design pattern detection","score":0.9950000047683716},{"id":"https://openalex.org/keywords/static-analysis","display_name":"static analysis","score":0.6679999828338623},{"id":"https://openalex.org/keywords/code-property-graph","display_name":"code property graph","score":0.8650000095367432},{"id":"https://openalex.org/keywords/graph-matching","display_name":"graph matching","score":0.9110000133514404},{"id":"https://openalex.org/keywords/neo4j","display_name":"Neo4j","score":0.8119999766349792},{"id":"https://openalex.org/keywords/gremlin","display_name":"Gremlin","score":0.9900000095367432},{"id":"https://openalex.org/keywords/graph-databases","display_name":"graph databases","score":0.6779999732971191},{"id":"https://openalex.org/keywords/source-code-analysis","display_name":"source code analysis","score":0.6549999713897705}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.810638427734375},{"id":"https://openalex.org/C176225458","wikidata":"https://www.wikidata.org/wiki/Q595971","display_name":"Graph database","level":3,"score":0.6547024250030518},{"id":"https://openalex.org/C96333769","wikidata":"https://www.wikidata.org/wiki/Q907955","display_name":"Graph traversal","level":3,"score":0.6484119892120361},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.5645615458488464},{"id":"https://openalex.org/C102379954","wikidata":"https://www.wikidata.org/wiki/Q2589940","display_name":"Call graph","level":2,"score":0.5391680598258972},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.5374525189399719},{"id":"https://openalex.org/C140745168","wikidata":"https://www.wikidata.org/wiki/Q1210082","display_name":"Tree traversal","level":2,"score":0.4969659149646759},{"id":"https://openalex.org/C2779599972","wikidata":"https://www.wikidata.org/wiki/Q82231","display_name":"NoSQL","level":3,"score":0.4738997519016266},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.4396221339702606},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.433268278837204},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.37567228078842163},{"id":"https://openalex.org/C124101348","wikidata":"https://www.wikidata.org/wiki/Q172491","display_name":"Data mining","level":1,"score":0.2795412540435791},{"id":"https://openalex.org/C75684735","wikidata":"https://www.wikidata.org/wiki/Q858810","display_name":"Big data","level":2,"score":0.1828305423259735}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3178298.3178307","doi":"https://doi.org/10.1145/3178298.3178307","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3178298.3178307","pdf_url":null,"source":{"id":"https://openalex.org/S7407120358","display_name":"Africa and Middle East Conference on Software Engineering (AMECSE)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 3rd Africa and Middle East Conference on Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":8,"referenced_works":["https://openalex.org/W1893177189","https://openalex.org/W1988303872","https://openalex.org/W1992114977","https://openalex.org/W1992259680","https://openalex.org/W2017971446","https://openalex.org/W2121690461","https://openalex.org/W2188069782","https://openalex.org/W3001317749"],"related_works":["https://openalex.org/W2787568281","https://openalex.org/W7099149255","https://openalex.org/W151121406","https://openalex.org/W7097649789","https://openalex.org/W2078275667","https://openalex.org/W7148328761","https://openalex.org/W2621290938","https://openalex.org/W3213255635","https://openalex.org/W4235030835","https://openalex.org/W4294659439"],"abstract_inverted_index":{"This":[0,44],"paper":[1],"presents":[2],"an":[3],"approach":[4,45],"to":[5,33,36,70],"detect":[6],"design":[7,67],"patterns":[8],"from":[9],"source":[10],"code":[11],"using":[12],"static":[13],"analysis":[14],"techniques.":[15],"It":[16],"depends":[17],"on":[18,87],"the":[19,38,64],"concept":[20],"of":[21,40,66,81],"Code":[22],"Property":[23],"Graph":[24],"and":[25,30,51,84],"enriching":[26],"graph":[27,48,53,59,72,82,88],"with":[28],"relationships":[29],"properties":[31],"specific":[32],"Design":[34,41,77],"Patterns,":[35],"simplify":[37],"process":[39],"Pattern":[42],"detection.":[43],"used":[46],"NoSQL":[47],"database":[49],"(Neo4j)":[50],"uses":[52],"traversal":[54],"language":[55],"(Gremlin)":[56],"for":[57],"doing":[58],"matching.":[60],"Our":[61],"approach,":[62],"converts":[63],"tasks":[65],"pattern":[68],"detection":[69],"a":[71],"matching":[73],"task":[74],"by":[75],"representing":[76],"Patterns":[78],"in":[79],"form":[80],"queries":[83],"running":[85],"it":[86],"database.":[89]},"counts_by_year":[],"updated_date":"2026-10-28T10:33:24.094632","created_date":"2018-08-22T00:00:00"}
