請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/99199完整後設資料紀錄
| DC 欄位 | 值 | 語言 |
|---|---|---|
| dc.contributor.advisor | 李允中 | zh_TW |
| dc.contributor.advisor | Jonathan Lee | en |
| dc.contributor.author | 陳詠君 | zh_TW |
| dc.contributor.author | Yung-Chun Chen | en |
| dc.date.accessioned | 2025-08-21T16:46:52Z | - |
| dc.date.available | 2025-08-22 | - |
| dc.date.copyright | 2025-08-21 | - |
| dc.date.issued | 2025 | - |
| dc.date.submitted | 2025-08-04 | - |
| dc.identifier.citation | [1] Enrique A Miranda, Mario Berón, Germán Montejano, and Daniel Riesco. Using reverse engineering techniques to infer a system use case model. Journal of Software: Evolution and Process, 31(2):e2121, 2019.
[2] Gerardo Canfora and Massimiliano Di Penta. New frontiers of reverse engineering. In Future of Software Engineering (FOSE’07), pages 326–341. IEEE, 2007. [3] Ravi Khadka, Amir Saeidi, Slinger Jansen, and Jurriaan Hage. A structured legacy to soa migration process and its evaluation in practice. In 2013 IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems, pages 2–11. IEEE, 2013. [4] Ravi Khadka, Amir Saeidi, Slinger Jansen, Jurriaan Hage, and Geer P Haas. Migrating a large scale legacy application to soa: Challenges and lessons learned. In 2013 20th working conference on reverse engineering (WCRE), pages 425–432. IEEE, 2013. [5] Elliot J. Chikofsky and James H Cross. Reverse engineering and design recovery: A taxonomy. IEEE software, 7(1):13–17, 2002. [6] Angularjs. https://angularjs.org/. [7] Angular. https://angular.dev/. [8] parse5. https://www.npmjs.com/package/parse5. [9] @babel/parser. https://babeljs.io/docs/babel-parser. [10] @typescript-eslint/parser. https://www.npmjs.com/package/@typescript-eslint/parser. [11] Babel. https://babeljs.io/. [12] Eslint. https://eslint.org/. [13] Y.-Y. Chung. Auto-transform use case specifications to task models using machine learning model. Master’s thesis, National Taiwan University, 2024. [14] Matthew Honnibal. spacy 2: Natural language understanding with bloom embeddings, convolutional neural networks and incremental parsing. (No Title), 2017. | - |
| dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/99199 | - |
| dc.description.abstract | 現代的 Angular 專案普遍採用元件化設計,導致程式碼量龐大且結構複雜,使得僅透過人工閱讀程式碼來理解系統功能與使用者需求變得極具挑戰性。
為了解決此問題,我們提出一套逆向工程方法,旨在從前端程式碼中自動化建構使用案例模型。此方法透過將 Angular 程式碼解析為抽象語法樹,進一步分析元件之間的相依性與互動邏輯,以挖掘出潛藏於程式碼中的系統行為與使用情境。 最終所產生的使用案例模型可協助開發人員、測試人員、分析師或專案使用者更有效率地掌握系統意圖,並促進系統維護、需求追蹤與功能擴充。此方法不僅提升了理解系統的效率,也為大型前端系統的分析提供了一種新方向。 | zh_TW |
| dc.description.abstract | Modern Angular projects typically adopt a component-based architecture, resulting in large and complex codebases. This makes it highly challenging to understand system functionality and user requirements merely by reading the source code.
To address this issue, we propose a reverse engineering approach that automatically constructs use case models from frontend code. By parsing Angular code into an Abstract Syntax Tree and analyzing component dependencies and interaction logic, our method uncovers the embedded system behaviors and usage scenarios hidden in the code. The resulting use case models help developers, testers, analysts, or project users efficiently grasp the system’s intended behavior, while also facilitating system maintenance, requirement tracking, and functional expansion. This approach not only improves the efficiency of understanding the system but also offers a new direction for the analysis of large-scale frontend systems. | en |
| dc.description.provenance | Submitted by admin ntu (admin@lib.ntu.edu.tw) on 2025-08-21T16:46:52Z No. of bitstreams: 0 | en |
| dc.description.provenance | Made available in DSpace on 2025-08-21T16:46:52Z (GMT). No. of bitstreams: 0 | en |
| dc.description.tableofcontents | Verification Letter from the Oral Examination Committee i
Acknowledgements ii 摘要 iii Abstract iv Contents vi List of Figures ix List of Tables xi Chapter 1 Introduction 1 Chapter 2 Related Work 3 2.1 Recovering Use Case Models from Source Code 3 2.2 Reverse Engineering 3 2.3 AngularJS and Angular 5 2.3.1 AngularJS 5 2.3.2 Angular 7 2.4 Parser 9 2.4.1 parse5 10 2.4.2 @babel/parser 10 2.4.3 @typescript-eslint/parser 11 Chapter 3 Overall System Architecture 13 Chapter 4 Frontend Languages Relationship 16 4.1 Relationship between HTML and Javascript 16 4.2 Relationship between HTML and Typescript 17 4.3 Relationship between Javascript and Typescript 18 4.4 Modeling Use Case Model 19 Chapter 5 Extraction of AST Nodes 20 5.1 Entity-Relationship Diagram Design for TypeScript 20 5.2 Entity-Relationship Diagram Design for JavaScript 27 5.3 Entity-Relationship Diagram Design for HTML 35 5.4 Class Diagram Design for AST Node Extraction 38 Chapter 6 Automatic Construction of Use Case Models Based on Frontend Dependencies 40 6.1 Algorithm 41 6.2 Find HTTP Request Pipe 45 6.3 Find Controller Pipe 47 6.4 Find HTML Handlers 48 6.5 HTML Trigger Handlers 51 6.6 AngularJS Routing Handlers 54 6.7 Angular Routing Pipes 56 6.8 Find Routing Trigger Point Pipe 59 6.9 Build Use Case Model Pipe 60 6.9.1 Use Case Template 60 6.9.2 Steps for Building Use Case Model 62 6.9.3 Pipes, Dependencies and Use Case Mapping 63 6.9.4 Build Use Case Model Example 64 Chapter 7 Conclusion 69 Chapter 8 Future Work 70 References 72 | - |
| dc.language.iso | en | - |
| dc.subject | 逆向工程 | zh_TW |
| dc.subject | Angular | zh_TW |
| dc.subject | 前端分析 | zh_TW |
| dc.subject | 抽象語法樹 | zh_TW |
| dc.subject | 使用案例模型 | zh_TW |
| dc.subject | Use Case Model | en |
| dc.subject | Abstract Syntax Tree | en |
| dc.subject | Frontend Analysis | en |
| dc.subject | Reverse Engineering | en |
| dc.subject | Angular | en |
| dc.title | 基於逆向工程技術之前端 Angular 程式碼至使用案例模型建構 | zh_TW |
| dc.title | Reverse Engineering Frontend Angular Code to Create a Use Case Model | en |
| dc.type | Thesis | - |
| dc.date.schoolyear | 113-2 | - |
| dc.description.degree | 碩士 | - |
| dc.contributor.oralexamcommittee | 劉立頌;馬尚彬;李文廷;陳錫民 | zh_TW |
| dc.contributor.oralexamcommittee | Alan Liu;Shang-Pin Ma;Wen-Tin Lee;Hsi-Min Chen | en |
| dc.subject.keyword | Angular,逆向工程,使用案例模型,抽象語法樹,前端分析, | zh_TW |
| dc.subject.keyword | Angular,Reverse Engineering,Use Case Model,Abstract Syntax Tree,Frontend Analysis, | en |
| dc.relation.page | 73 | - |
| dc.identifier.doi | 10.6342/NTU202503567 | - |
| dc.rights.note | 同意授權(全球公開) | - |
| dc.date.accepted | 2025-08-07 | - |
| dc.contributor.author-college | 電機資訊學院 | - |
| dc.contributor.author-dept | 資訊網路與多媒體研究所 | - |
| dc.date.embargo-lift | 2025-08-22 | - |
| 顯示於系所單位: | 資訊網路與多媒體研究所 | |
文件中的檔案:
| 檔案 | 大小 | 格式 | |
|---|---|---|---|
| ntu-113-2.pdf | 6.35 MB | Adobe PDF | 檢視/開啟 |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。
