{"id":{"repo_id":"umkc","oai_identifier":"oai:mospace.umsystem.edu:10355/45660"},"canonical_url":"https://search.dev.ndltd.org/etd/umkc/oai:mospace.umsystem.edu:10355/45660","repository":{"repo_id":"umkc","name":"University of Missouri - Kansas City","base_url":"https://mospace.umsystem.edu/oai/request"},"display":{"title":"A Semantic Approach for Automatic Recovery of Software Architecture","abstract":"Open source projects have been continuously growing in popularity. As a result, a number of open source projects begin to play an important role in current software development. In practice, limited assistance has been provided on searching and reusing open source software systems. The limitation is primarily due to the lack of an automatic approach to recovering architecture models from source code. In particular, the increasing size of most open source systems makes it a challenge to manually recover the architecture from source code. Thus, there is a strong demand for an automatic approach for model building. The recovered model can subsequently offer users the ability to search through large amounts of source code. This thesis presents a semantic approach to automatically recovering the architecture from a source code repository. It leverages the information such as functional similarity between code entities (e.g. classes) and applies a machine learning technique to cluster source code into architecture components – an essential activity in architecture recovery. Specifically, the approach includes three steps: feature extraction, component clustering, and architecture refinement. 1) Feature extraction analyzes source code, identifies functional specification (i.e. features) from the metadata (e.g. names) of code entities, and creates a model that captures the significance (e.g. frequency) of each feature in a specific code entity. 2) Component clustering examines the generated model of feature extraction, and applies K-Means clustering, a machine learning technique to group similar code entities into architecture components. The similarity is calculated based on the features that the code entities are related to. 3) Architecture refinement further modifies the recovered architecture based on the degree to which the extracted components interact. During this step, components merge or split may occur. The overall goal of the approach is to reduce cost and increase accuracy of recovering software architecture in software development. We applied the approach to recover the architecture of the Hadoop Distributed File System as a case study.","abstract_html":"Open source projects have been continuously growing in popularity. As a result, a number of open source projects begin to play an important role in current software development. In practice, limited assistance has been provided on searching and reusing open source software systems. The limitation is primarily due to the lack of an automatic approach to recovering architecture models from source code. In particular, the increasing size of most open source systems makes it a challenge to manually recover the architecture from source code. Thus, there is a strong demand for an automatic approach for model building. The recovered model can subsequently offer users the ability to search through large amounts of source code. This thesis presents a semantic approach to automatically recovering the architecture from a source code repository. It leverages the information such as functional similarity between code entities (e.g. classes) and applies a machine learning technique to cluster source code into architecture components – an essential activity in architecture recovery. Specifically, the approach includes three steps: feature extraction, component clustering, and architecture refinement. 1) Feature extraction analyzes source code, identifies functional specification (i.e. features) from the metadata (e.g. names) of code entities, and creates a model that captures the significance (e.g. frequency) of each feature in a specific code entity. 2) Component clustering examines the generated model of feature extraction, and applies K-Means clustering, a machine learning technique to group similar code entities into architecture components. The similarity is calculated based on the features that the code entities are related to. 3) Architecture refinement further modifies the recovered architecture based on the degree to which the extracted components interact. During this step, components merge or split may occur. The overall goal of the approach is to reduce cost and increase accuracy of recovering software architecture in software development. We applied the approach to recover the architecture of the Hadoop Distributed File System as a case study.","abstract_has_math":false,"creators":["Sharma, Megha"],"institution":"University of Missouri--Kansas City","degree_name":"M.S.","degree_level":"Masters","degree_discipline":"Computer Science (UMKC)","degree_department":null,"school":null,"contributors":[],"advisors":["Zheng, Yongjie","Lee, Yugyung, 1960-"],"committee_chairs":[],"committee_members":[],"year":2014,"date_issued":"2014","date_published":"2014","updated_at":"2026-07-24T05:17:53Z","subjects":[],"languages":["eng"],"rights":[],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/10355/45660","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Zheng, Yongjie","Lee, Yugyung, 1960-"]},{"key":"dc:creator","label":"Author","values":["Sharma, Megha"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2015-05-28T19:16:03Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2015-05-28T19:16:03Z"]},{"key":"dc:date.issued","label":"Date","values":["2014"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science (UMKC)"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Masters"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Missouri--Kansas City"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["eng"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://hdl.handle.net/10355/45660"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Title from PDF of title page, viewed on June 25, 2015","Thesis advisor: Yugyung Lee","Thesis advisor: Yongjie Zheng","Vita","Includes bibliographic references (pages 69-70)","Thesis (M.S.)--School of Computing and Engineering, University of Missouri--Kansas City, 2014"]},{"key":"dc:description.abstract","label":"Abstract","values":["Open source projects have been continuously growing in popularity. As a result, a number of open source projects begin to play an important role in current software development. In practice, limited assistance has been provided on searching and reusing open source software systems. The limitation is primarily due to the lack of an automatic approach to recovering architecture models from source code. In particular, the increasing size of most open source systems makes it a challenge to manually recover the architecture from source code. Thus, there is a strong demand for an automatic approach for model building. The recovered model can subsequently offer users the ability to search through large amounts of source code. This thesis presents a semantic approach to automatically recovering the architecture from a source code repository. It leverages the information such as functional similarity between code entities (e.g. classes) and applies a machine learning technique to cluster source code into architecture components – an essential activity in architecture recovery. Specifically, the approach includes three steps: feature extraction, component clustering, and architecture refinement. 1) Feature extraction analyzes source code, identifies functional specification (i.e. features) from the metadata (e.g. names) of code entities, and creates a model that captures the significance (e.g. frequency) of each feature in a specific code entity. 2) Component clustering examines the generated model of feature extraction, and applies K-Means clustering, a machine learning technique to group similar code entities into architecture components. The similarity is calculated based on the features that the code entities are related to. 3) Architecture refinement further modifies the recovered architecture based on the degree to which the extracted components interact. During this step, components merge or split may occur. The overall goal of the approach is to reduce cost and increase accuracy of recovering software architecture in software development. We applied the approach to recover the architecture of the Hadoop Distributed File System as a case study."]},{"key":"dc:title","label":"Title","values":["A Semantic Approach for Automatic Recovery of Software Architecture"]}]}],"canonical_facts":{"dc:contributor.advisor":["Zheng, Yongjie","Lee, Yugyung, 1960-"],"dc:creator":["Sharma, Megha"],"dc:date.accessioned":["2015-05-28T19:16:03Z"],"dc:date.available":["2015-05-28T19:16:03Z"],"dc:date.issued":["2014"],"dc:description":["Title from PDF of title page, viewed on June 25, 2015","Thesis advisor: Yugyung Lee","Thesis advisor: Yongjie Zheng","Vita","Includes bibliographic references (pages 69-70)","Thesis (M.S.)--School of Computing and Engineering, University of Missouri--Kansas City, 2014"],"dc:description.abstract":["Open source projects have been continuously growing in popularity. As a result, a number of open source projects begin to play an important role in current software development. In practice, limited assistance has been provided on searching and reusing open source software systems. The limitation is primarily due to the lack of an automatic approach to recovering architecture models from source code. In particular, the increasing size of most open source systems makes it a challenge to manually recover the architecture from source code. Thus, there is a strong demand for an automatic approach for model building. The recovered model can subsequently offer users the ability to search through large amounts of source code. This thesis presents a semantic approach to automatically recovering the architecture from a source code repository. It leverages the information such as functional similarity between code entities (e.g. classes) and applies a machine learning technique to cluster source code into architecture components – an essential activity in architecture recovery. Specifically, the approach includes three steps: feature extraction, component clustering, and architecture refinement. 1) Feature extraction analyzes source code, identifies functional specification (i.e. features) from the metadata (e.g. names) of code entities, and creates a model that captures the significance (e.g. frequency) of each feature in a specific code entity. 2) Component clustering examines the generated model of feature extraction, and applies K-Means clustering, a machine learning technique to group similar code entities into architecture components. The similarity is calculated based on the features that the code entities are related to. 3) Architecture refinement further modifies the recovered architecture based on the degree to which the extracted components interact. During this step, components merge or split may occur. The overall goal of the approach is to reduce cost and increase accuracy of recovering software architecture in software development. We applied the approach to recover the architecture of the Hadoop Distributed File System as a case study."],"dc:identifier.uri":["https://hdl.handle.net/10355/45660"],"dc:language.iso":["eng"],"dc:title":["A Semantic Approach for Automatic Recovery of Software Architecture"],"dc:type":["Thesis"],"thesis:degree_discipline":["Computer Science (UMKC)"],"thesis:degree_level":["Masters"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Missouri--Kansas City"]},"updated_at":"2026-07-24T05:17:53Z"}