博碩士論文 106423049 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:11 、訪客IP:3.143.23.153
姓名 鍾幸軒(Chong Sin Sian)  查詢紙本館藏   畢業系所 資訊管理學系
論文名稱 在軟體反向工程中以本體論為基礎建立一套設計品質評核之方法-以內聚力為例
(Design and Implementation of Ontology-based Evaluation System for Design Quality in Software Reverse Engineering : Focusing on Cohesion)
相關論文
★ 專案管理的溝通關鍵路徑探討─以某企業軟體專案為例★ 運用並探討會議流如何促進敏捷發展過程中團隊溝通與文件化:以T銀行系統開發為例
★ 專案化資訊服務中人力連續派遣決策模式之研究─以高鐵行控資訊設備維護為例★ 以組織正義觀點介入案件指派決策之研究
★ 應用協調理論建立系統軟體測試中問題改善之協作流程★ 應用案例式推理於問題管理系統之研究 -以筆記型電腦產品為例
★ 運用限制理論於多專案開發模式的人力資源配置之探討★ 應用會議流方法於軟體專案開發之個案研究:以翰昇科技公司為例
★ 多重專案、多期再規劃的軟體開發接案決策模式:以南亞科技資訊部門為例★ 會議導向敏捷軟體開發及系統設計:以大學畢業專題為例
★ 一種基於物件、屬性導向之變更影響分析方法於差異化產品設計★ 會議流方法對大學畢業專題的團隊合作品質影響之實驗研究
★ 實施敏捷式發展法於大學部畢業專題之 行動研究 – 以中央大學資管系為例★ 建立一個用來評核自然語言需求品質的線上資訊系統
★ 結合本體論與模糊分析網路程序法於軟體測試之風險與風險關聯辨識★ 在軟體反向工程中針對UML結構模型圖之線上品質評核系統
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   至系統瀏覽論文 (2024-6-30以後開放)
摘要(中) 隨著現今資訊科技的快速發展,軟體業者為了在軟體市場下生存,軟體開發人員常需要因應客戶與市場的需求變化做出調整,並在短時間內完成軟體的開發,以提高自身在業內的競爭力。因受時程的壓力常會導致軟體開發人員未遵循傳統的軟體開發流程,在缺乏系統分析文件情況下,直接開始撰寫軟體的程式碼,而這可能對要交付的軟體品質與系統設計內容造成影響。為了解決此問題,常用的做法是先讓開發人員完成系統後,再運用軟體反向工程工具產生該系統的UML文件。但是如果系統本身的品質不佳,將會影響到UML文件的品質。
因此,本研究針對軟體設計的品質進行探討,以內聚力的靜態分析與動態分析作為品質評核的標準,並根據評核結果提出重構的建議。此外本研究結合了本體論方法來建立品質評核的知識庫,這除了有利於領域知識能分享重用外,還能隨著時間與地點的不同進行修正。結合以上所述,本研究在軟體反向工程的情境下,實作了一套 Web-based的軟體設計品質評核系統,並透過一個專案來展示與驗證該系統的功能與效益。
摘要(英) With the rapid development of today′s information technology, software developers often need to adapt to accommodate the changing customer and market demand, and complete software development in a shorter period of time to improve their competitiveness. Due to the pressure of time, software developers often fail to follow the traditional software development process. In the absence of system analysis document, the code of system is directly written, which may affect the software quality and the associated system design contents to be delivered. In order to solve this problem, one of the common ways is to let the developers complete the system first and then use the software reverse engineering tool to generate the UML diagram of the system. However, if the quality of the system is not good enough, it will consequently affect the quality of the UML diagram.
Therefore, this study explores the quality of software design by focusing on static and dynamic analysis of cohesion as the criteria for quality evaluation, and proposes refactoring based on the evaluation results. In addition, this study applies ontology to build a knowledge base for the quality assessment. This is in addition to facilitating the sharing of domain knowledge and revising it over time and case. Furthermore, this study has implemented the proposed methodology into a Web-based software design quality assessment system. This study demonstrated and verified the function and benefits of the system through a project.
關鍵字(中) ★ 軟體反向工程
★ UML 結構模型圖
★ 軟體品質
★ 本體論
★ 重構
關鍵字(英) ★ Software Reverse Engineering
★ Structural UML Diagram
★ Software Quality
★ Ontology
★ Refactoring
論文目次 摘要 II
Abstract VII
第一章 緒論 1
1-1 研究背景 1
1-2 研究問題與動機 2
1-3 研究目的 3
1-4 研究範圍與假設 4
1-5研究架構 5
第二章 文獻探討 7
2-1 軟體反向工程 7
2-1-1 UML反向工程研究與工具 7
2-1-2 UML反向工程之品質 8
2-2 軟體系統內聚力 9
2-2-1 靜態內聚力 10
2-2-2 動態內聚力 12
2-3 重構 13
2-4 本體論 14
第三章 系統設計 18
3-1 系統架構 18
3-2 資料擷取 19
3-2-1 靜態資料 20
3-2-2 動態資料 21
3-3 本體建置 21
3-3-1 建立規則 27
3-4 品質度量與結果展示 28
3-4-1 靜態內聚度量 29
3-4-2 動態內聚度量 31
3-4-3 軟體重構方法 34
3-4-4 釋例與說明 38
第四章 系統實作與展示 45
4-1 系統與開發環境 45
4-2 系統展示 48
第五章 系統成果與討論 56
5-1 系統驗證 56
5-2 靜態內聚力驗證 57
5-3 動態內聚力驗證 60
5-4 重構建議驗證 66
5-5 驗證效度說明 69
第六章 結論 71
6-1 研究貢獻 71
6-2 研究限制與未來發展 72
參考文獻 73
參考文獻 楊芝瑩(民106)。在軟體反向工程中針對UML結構模型圖之線上品質評核系統(未出版之碩士論文)。國立中央大學,桃園市。
徐子涵(民107)。在軟體反向工程中以本體論為基礎建立一套UML品質評核之方法 – 以耦合度為例(未出版之碩士論文)。國立中央大學,桃園市。
Al Dallal, J., & Briand, L. C. (2010). An object-oriented high-level design-based class cohesion metric. Information and software technology, 52(12), 1346-1361.
Al Dallal, J., & Briand, L. C. (2012). A precise method-method interaction-based cohesion metric for object-oriented classes. ACM Transactions on Software Engineering and Methodology (TOSEM), 21(2), 8.
Al Dallal, J. (2017). Predicting move method refactoring opportunities in object-oriented code. Information and Software Technology, 92, 105-120.
Arisholm, E., Briand, L. C., & Foyen, A. (2004). Dynamic coupling measurement for object-oriented software. IEEE Transactions on software engineering, 30(8), 491-506.
Badri, L., & Badri, M. (2004). A Proposal of a new class cohesion criterion: an empirical study. Journal of Object Technology, 3(4), 145-159.
Bajnaid, N. O., Benlamri, R., Pakstas, A., & Salekzamankhani, S. (2016). An Ontological Approach to Model Software Quality Assurance Knowledge Domain. Lecture Notes on Software Engineering, 4(3), 193.
Bansiya, J., & Davis, C. G. (2002). A hierarchical model for object-oriented design quality assessment. IEEE Transactions on software engineering, 28(1), 4-17.
Baorto, D., Li, L., & Cimino, J. J. (2009). Practical experience with the maintenance and auditing of a large medical ontology. Journal of biomedical informatics, 42(3), 494-503.
Basili, V. R., & Caldiera, G. (1995). Improve software quality by reusing knowledge and experience. MIT Sloan Management Review, 37(1), 55.
Baskerville, R., & Dulipovici, A. (2006). The theoretical foundations of knowledge management. Knowledge Management Research & Practice, 4(2), 83-105.
Berardi, D., Calvanese, D., & De Giacomo, G. (2005). Reasoning on UML class diagrams. Artificial intelligence, 168(1-2), 70-118.
Bieman, J. M., & Kang, B. K. (1995). Cohesion and reuse in an object-oriented system. ACM SIGSOFT Software Engineering Notes, 20(SI), 259-262.
Bieman, J. M., & Ott, L. M. (1994). Measuring functional cohesion. IEEE transactions on Software Engineering, 20(8), 644-657.
Bonja, C., & Kidanmariam, E. (2006). Metrics for class cohesion and similarity between methods. In Proceedings of the 44th annual Southeast regional conference (pp. 91-95). ACM.
Borst, W. N., & Borst, W. (1997). Construction of engineering ontologies for knowledge sharing and reuse.
Briand, L. C., Bunse, C., & Daly, J. W. (2001). A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs. IEEE Transactions on Software Engineering, 27(6), 513-530.
Briand, L. C., Daly, J., Porter, V., & Wust, J. (1998). A comprehensive empirical validation of design measures for object-oriented systems. In Software Metrics Symposium, 1998. Metrics 1998. Proceedings. Fifth International (pp. 246-257). IEEE.
Briand, L. C., Daly, J. W., & Wüst, J. (1998). A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering, 3(1), 65-117.
Briand, L. C., Wüst, J., Daly, J. W., & Porter, D. V. (2000). Exploring the relationships between design measures and software quality in object-oriented systems. Journal of systems and software, 51(3), 245-273.
Bruneliere, H., Cabot, J., Dupé, G., & Madiot, F. (2014). Modisco: A model driven reverse engineering framework. Information and Software Technology, 56(8), 1012-1032.
Carrozza, G., Pietrantuono, R., & Russo, S. (2018). A Software Quality Framework for Large-Scale Mission-Critical Systems Engineering. Information and Software Technology.
Canfora, G., Di Penta, M., & Cerulo, L. (2011). Achievements and challenges in software reverse engineering. Communications of the ACM, 54(4), 142-151.
Chen, J. C., & Huang, S. J. (2009). An empirical analysis of the impact of software development problem factors on software maintainability. Journal of Systems and Software, 82(6), 981-992.
Chen, R. C., Huang, Y. H., Bau, C. T., & Chen, S. M. (2012). A recommendation system based on domain ontology and SWRL for anti-diabetic drugs selection. Expert Systems with Applications, 39(4), 3995-4006.
Chen, Z., Zhou, Y., Xu, B., Zhao, J., & Yang, H. (2002). A novel approach to measuring class cohesion based on dependence analysis. In Software Maintenance, 2002. Proceedings. International Conference on (pp. 377-384). IEEE.
Chi, Y. L. (2009). Ontology-based curriculum content sequencing system with semantic rules. Expert Systems with Applications, 36(4), 7838-7847.
Chidamber, S. R., & Kemerer, C. F. (1991). Towards a metrics suite for object oriented design (Vol. 26, No. 11, pp. 197-211). ACM.
Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on software engineering, 20(6), 476-493.
Chikofsky, E. J., & Cross, J. H. (1990). Reverse engineering and design recovery: A taxonomy. IEEE software, 7(1), 13-17.
Curtis, B., Krasner, H., & Iscoe, N. (1988). A field study of the software design process for large systems. Communications of the ACM, 31(11), 1268-1287.
Czibula, I. G., & Serban, G. (2006). Improving systems design using a clustering approach. IJCSNS International Journal of Computer Science and Network Security, 6(12), 40-49.
Dhama, H. (1995). Quantitative models of cohesion and coupling in software. Journal of Systems and Software, 29(1), 65-74.
De Lucia, A., Oliveto, R., & Vorraro, L. (2008). Using structural and semantic metrics to improve class cohesion. In Software Maintenance, 2008. ICSM 2008. IEEE International Conference on (pp. 27-36). IEEE.
Di Lucca, G. A., Fasolino, A. R., & Tramontana, P. (2004). Reverse engineering Web applications: the WARE approach. Journal of Software maintenance and evolution: Research and practice, 16(1‐2), 71-101.
Du Bois, B., Demeyer, S., & Verelst, J. (2004). Refactoring-improving coupling and cohesion of existing code. indicators, 2, 1.
e Abreu, F. B., & Goulão, M. (2001). Coupling and cohesion as modularization drivers: Are we being over-persuaded?. In Software Maintenance and Reengineering, 2001. Fifth European Conference on (pp. 47-57). IEEE.
El-Emam, K. (2002). Object-oriented metrics: A review of theory and practice. In Advances in software engineering (pp. 23-50). Springer, New York, NY.
Etzkorn, L. H., & Davis, C. G. (1997). Automatically identifying reusable OO legacy code. Computer, 30(10), 66-71.
Fenton, N., & Bieman, J. (2014). Software metrics: a rigorous and practical approach. CRC press.
Fernández, L., & Peña, R. (2006). A sensitive metric of class cohesion.
Fernández-Sáez, A. M., Genero, M., Chaudron, M. R., Caivano, D., & Ramos, I. (2015). Are Forward Designed or Reverse-Engineered UML diagrams more helpful for code maintenance?: A family of experiments. Information and Software Technology, 57, 644-663.
Fokaefs, M., Tsantalis, N., & Chatzigeorgiou, A. (2007, October). Jdeodorant: Identification and removal of feature envy bad smells. In Software Maintenance, 2007. ICSM 2007. IEEE International Conference on (pp. 519-520). IEEE.
Fowler, M., & Beck, K. (1999). Refactoring: improving the design of existing code: Addison-Wesley Professional.
Gahalaut, A. K., & Khandnor, P. (2010). Reverse engineering: an essence for software re-engineering and program analysis. International Journal of Engineering Science and Technology, 2(06), 2296-2303.
Gazel, S., Sezer, E. A., & Tarhan, A. (2012). An ontology based infrastructure to support CMMI-based software process assessment. Gazi University Journal of Science, 25(1), 155-164.
Ghezzi, C., Jazayeri, M., & Mandrioli, D. (2002). Fundamentals of software engineering. Prentice Hall PTR.
Glass, R. L. (2002). Facts and fallacies of software engineering: Addison-Wesley Professional.
Gupta, V., & Chhabra, J. K. (2011). Dynamic cohesion measures for object-oriented software. Journal of Systems Architecture, 57(4), 452-462.
Gruber, T. R. (1993). A translation approach to portable ontology specifications. Knowledge acquisition, 5(2), 199-220.
Han, A. R., & Bae, D. H. (2013). Dynamic profiling-based approach to identifying cost-effective refactorings. Information and Software Technology, 55(6), 966-985.
Han, A. R., Bae, D. H., & Cha, S. (2015). An efficient approach to identify multiple and independent Move Method refactoring candidates. Information and Software Technology, 59, 53-66.
Happel, H. J., & Seedorf, S. (2006). Applications of ontologies in software engineering. In Proc. of Workshop on Sematic Web Enabled Software Engineering"(SWESE) on the ISWC (pp. 5-9).
Henderson-Sellers, B. (1995). Object-oriented metrics: measures of complexity. Prentice-Hall, Inc..
Hitz, M., & Montazeri, B. (1995). Measuring coupling and cohesion in object-oriented systems.
Iyidogan, S. (2014). Exploring the diffusion of software quality standards: Evidence from the case of Turkey. Procedia-Social and Behavioral Sciences, 122, 362-366.
Kan, S. H. (2002). Metrics and models in software quality engineering. Addison-Wesley Longman Publishing Co., Inc..
Kanmani, S., Uthariaraj, V. R., Sankaranarayanan, V., & Thambidurai, P. (2007). Object-oriented software fault prediction using neural networks. Information and software technology, 49(5), 483-492.
Kayed, A., Hirzalla, N., Samhan, A. A., & Alfayoumi, M. (2009). Towards an ontology for software product quality attributes. In 2009 Fourth International Conference on Internet and Web Applications and Services (pp. 200-204). IEEE.
Keller, R. K., Schauer, R., Robitaille, S., & Pagé, P. (1999). Pattern-based reverse-engineering of design components. In Proceedings of the 21st international conference on Software engineering (pp. 226-235). ACM.
Keschenau, M. (2004). Reverse engineering of UML specifications from Java programs. In Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (pp. 326-327). ACM.
Kim, S. K., & David, C. (1999). Formalizing the UML class diagram using Object-Z. In International Conference on the Unified Modeling Language (pp. 83-98). Springer, Berlin, Heidelberg.
Kollmann, R., Selonen, P., Stroulia, E., Systa, T., & Zundorf, A. (2002). A study on the current state of the art in tool-supported UML-based static reverse engineering. In Ninth Working Conference on Reverse Engineering, 2002. Proceedings. (pp. 22-32). IEEE.
Korshunova, E., Petkovic, M., Van Den Brand, M. G. J., & Mousavi, M. R. (2006). CPP2XMI: Reverse engineering of UML class, sequence, and activity diagrams from C++ source code. In 2006 13th Working Conference on Reverse Engineering (pp. 297-298). IEEE.
Kraut, R. E., & Streeter, L. A. (1995). Coordination in software development. Communications of the ACM, 38(3), 69-82.
Lange, C. F., Chaudron, M. R., & Muskens, J. (2006). In practice: UML software architecture and design description. IEEE software, 23(2), 40-46.
Laradji, I. H., Alshayeb, M., & Ghouti, L. (2015). Software defect prediction using ensemble learning on selected features. Information and Software Technology, 58, 388-402.
Lee, I. J. (2009). A Study on Medical Adverse Events Classification Using Neural Network and Probability Model. Department of Information Management of Chaoyang University of Technology.
Li, W., & Henry, S. (1993, May). Maintenance metrics for the object oriented paradigm. In [1993] Proceedings First International Software Metrics Symposium (pp. 52-60). IEEE.
Maletic, J. I., & Marcus, A. (2001). Supporting program comprehension using semantic and structural information. In Proceedings of the 23rd International Conference on Software Engineering (pp. 103-112). IEEE Computer Society.
Marcus, A., Poshyvanyk, D., & Ferenc, R. (2008). Using the conceptual cohesion of classes for fault prediction in object-oriented systems. IEEE Transactions on Software Engineering, 34(2), 287-300.
McGuinness, D. L., & Van Harmelen, F. (2004). OWL web ontology language overview. W3C recommendation, 10(10), 2004.
Mens, T., & Tourwé, T. (2004). A survey of software refactoring. IEEE Transactions on software engineering, 30(2), 126-139.
Mitchell, A., & Power, J. F. (2004). Run-time cohesion metrics: An empirical investigation.
Mockus, A., & Weiss, D. M. (2000). Predicting risk of software changes. Bell Labs Technical Journal, 5(2), 169-180.
Motogna, S., Ciuciu, I., Serban, C., & Vescan, A. (2015). Improving software quality using an ontology-based approach. In OTM Confederated International Conferences" On the Move to Meaningful Internet Systems" (pp. 456-465). Springer, Cham.
Noy, N. F., & McGuinness, D. L. (2001). Ontology development 101: A guide to creating your first ontology.
O′Keeffe, M., & Cinnéide, M. Ó. (2006). Search-based software maintenance. In Conference on Software Maintenance and Reengineering (CSMR′06) (pp. 10-pp). IEEE.
Osman, H., & Chaudron, M. R. (2018). Correctness and Completeness of CASE Tools in Reverse EngineeringSource Code into UML Model. GSTF Journal on Computing (JoC), 2(1).
Ott, L., Bieman, J. M., Kang, B. K., & Mehra, B. (1995). Developing measures of class cohesion for object-oriented software. In Proc. Annual Oregon Workshop on Software Merics (AOWSM′95) (Vol. 11).
Ott, L. M., & Bieman, J. M. (1998). Program slices as an abstraction for cohesion measurement. Information and Software Technology, 40(11-12), 691-699.
Piveta, E. K. (2009). Improving the search for refactoring opportunities on object-oriented and aspect-oriented software.
Poshyvanyk, D., Marcus, A., Ferenc, R., & Gyimóthy, T. (2009). Using information retrieval based coupling measures for impact analysis. Empirical software engineering, 14(1), 5-32.
Pressman, R. S. (2005). Software engineering: a practitioner′s approach. Palgrave Macmillan.
Qu, Y., Guan, X., Zheng, Q., Liu, T., Wang, L., Hou, Y., & Yang, Z. (2015). Exploring community structure of software call graph and its applications in class cohesion measurement. Journal of Systems and Software, 108, 193-210.
Sales, V., Terra, R., Miranda, L. F., & Valente, M. T. (2013). Recommending move method refactorings using dependency sets. In Reverse Engineering (WCRE), 2013 20th Working Conference on (pp. 232-241). IEEE.
Sarkar, M. K., Chatterjee, T., & Mukherjee, D. (2013). Reverse engineering: An analysis of static behaviors of object oriented programs by extracting UML class diagram. International Journal of Advanced Computer Research, 3(3), 135.
Snae, C., & Brueckner, M. (2008). Personal health assistance service expert system (PHASES). International Journal of Biological and Medical Sciences, 1(2), 109-112.
Systa, T., Yu, P., & Muller, H. (2000). Analyzing Java software by combining metrics and program visualization. In Proceedings of the Fourth European Conference on Software Maintenance and Reengineering (pp. 199-208). IEEE.
Thwin, M. M. T., & Quah, T. S. (2005). Application of neural networks for software quality prediction using object-oriented metrics. Journal of systems and software, 76(2), 147-156.
Tokuda, L., & Batory, D. (2001). Evolving object-oriented designs with refactorings. Automated Software Engineering, 8(1), 89-120.
Tonella, P. (2005, May). Reverse engineering of object oriented code. In Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on (pp. 724-725). IEEE.
Tryggeseth, E. (1997). Report from an experiment: Impact of documentation on maintenance. Empirical Software Engineering, 2(2), 201-207.
Tsantalis, N., & Chatzigeorgiou, A. (2009). Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering, 35(3), 347-367.
Wang, J., Zhou, Y., Wen, L., Chen, Y., Lu, H., & Xu, B. (2005). DMC: a more precise cohesion measure for classes. Information and Software Technology, 47(3), 167-180.
Wongthongtham, P., Chang, E., Dillon, T., & Sommerville, I. (2009). Development of a software engineering ontology for multisite software development. IEEE Transactions on Knowledge and Data Engineering, 21(8), 1205-1217.
Yuan, X., Khoshgoftaar, T. M., Allen, E. B., & Ganesan, K. (2000). An application of fuzzy clustering to software quality prediction. In Proceedings 3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology (pp. 85-90). IEEE.
Zhao, L., & Hayes, J. (2006). Predicting classes in need of refactoring: an application of static metrics. In 2nd International PROMISE Workshop, Philadelphia, Pennsylvania USA.
指導教授 陳仲儼 審核日期 2019-7-1
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明