系統識別號 | U0002-1806202415253200 |
---|---|
DOI | 10.6846/tku202400251 |
論文名稱(中文) | 以系統文獻綜述探究軟體開發生命週期中的文件 |
論文名稱(英文) | Systematic Literature Review on the Role of Document throughout the Software Development Lifecycle |
第三語言論文名稱 | |
校院名稱 | 淡江大學 |
系所名稱(中文) | 資訊管理學系碩士班 |
系所名稱(英文) | Department of Information Management |
外國學位學校名稱 | |
外國學位學院名稱 | |
外國學位研究所名稱 | |
學年度 | 112 |
學期 | 2 |
出版年 | 113 |
研究生(中文) | 黃詩涵 |
研究生(英文) | SHIH-HAN HUANG |
學號 | 611630376 |
學位類別 | 碩士 |
語言別 | 繁體中文 |
第二語言別 | |
口試日期 | 2024-06-01 |
論文頁數 | 47頁 |
口試委員 |
指導教授
-
游佳萍(cpyu@mail.tku.edu.tw)
口試委員 - 黃莉君 口試委員 - 周清江 口試委員 - 游佳萍(cpyu@mail.tku.edu.tw) |
關鍵字(中) |
軟體文件 軟體開發生命週期 系統文獻綜述 敏捷式開發 |
關鍵字(英) |
Software Document Software Development Life Cycle Agile Systematic Literature Review |
第三語言關鍵字 | |
學科別分類 | |
中文摘要 |
軟體文件在軟體專案中扮演著關鍵的角色。儘管敏捷開發主張文件簡化,但不代表完全不需要。本研究旨在全面探討軟體開發生命週期中不同階段文件類別及屬性間的關聯性以及重視程度。透過系統文獻綜述,探究過去2003年到2023年所發表的學術文獻,並從中篩選出36篇文獻進行研究。 研究結果顯示,軟體開發生命週期的每個階段中,學術界對軟體文件類別與屬性的關注點呈現出不同程度的重要性。(1)在初期階段,軟體需求文件注重品質;(2)在中期階段,軟體架構與設計文件更加注重元素、效益與品質;(3)在後期階段,軟體實作文件則是重視元素與品質。研究學術貢獻在於整合了軟體開發生命週期中文件類別和屬性的全面論述。實務貢獻在於幫助敏捷式軟體開發團隊中的各角色更了解文件的重要性。他們可以根據文件類別和屬性的重要性來改進文件製作,進而促進團隊溝通並提高專案效率。 |
英文摘要 |
Software documentation plays a key role in software projects. Despite advocating for simplification, agile development does not imply complete elimination of documentation. This study aims to comprehensively explore the correlation and significance of different types and attributes of documents throughout the software development lifecycle. Through a systematic literature review, we examined academic publications from 2003 to 2023, selecting 36 articles for analysis. The findings reveal varying degrees of importance placed by the academic community on different types and attributes of software documentation at each stage of the software development lifecycle: (1) In the initial stage, software requirement documents prioritize quality; (2) In the middle stage, software architecture and design documents emphasize elements, benefits, and quality; (3) In the later stage, software implementation documents focus on elements and quality. This study contributes academically by providing a comprehensive discussion of document types and attributes throughout the software development lifecycle. In practice, it aids agile software development teams in understanding the importance of documentation for each role. Teams can improve documentation practices based on the significance of document types and attributes, thereby enhancing communication and project efficiency. |
第三語言摘要 | |
論文目次 |
第一章 緒論 1 1.1 背景 1 1.2 目的 3 第二章 文獻探討 5 2.1 軟體開發生命週期 5 2.2 軟體文件 7 2.3 軟體文件屬性 10 第三章 研究方法 14 3.1 研究規劃 14 3.1.1 研究問題與目標 14 3.1.2 檢索策略 15 3.2 研究執行 20 3.2.1 檢索階段 20 3.3 報告 26 3.3.1 編碼原則 26 3.3.2 信效度評估 29 第四章 研究結果 30 4.1 單軸分析 30 4.2 雙軸分析 34 4.3 綜合整理 36 第五章 結論 40 圖目錄 圖 1 軟體開發生命週期 5 圖 2 系統文獻綜述三步驟 14 圖 3 檢索策略流程 15 圖 4 四次檢索搜尋過程及文獻數量 23 圖 5 選定文獻年份分布圖 26 圖 6 雙軸文獻數量 34 圖 7 雙軸細項文獻數量 36 表目錄 表格 1 文件類型與定義對照表 8 表格 2 文件屬性與定義對照表 10 表格 3 文獻的文件類別與屬性比較表 13 表格 4 選擇的資料庫 18 表格 5 關鍵字檢索組合 19 表格 6 最終選定文獻 24 表格 7 選定文獻的期刊清單 25 表格 8 編碼原則:文件類別 27 表格 9 編碼原則:文件屬性 28 表格 10 文件類別文獻數量 30 表格 11 文件屬性文獻數量 32 |
參考文獻 |
Ahmad, M. O., Markkula, J., & Oivo, M. (2013). Kanban in software development: A systematic literature review. 2013 39th Euromicro Conference on Software Engineering and Advanced Applications, 9–16. https://doi.org/10.1109/SEAA.2013.28 Alhindawi, N., M., O., Malkawi, R., & Alsakran, J. (2016a). A Topic Modeling Based Solution for Confirming Software Documentation Quality. International Journal of Advanced Computer Science and Applications, 7(2). https://doi.org/10.14569/IJACSA.2016.070227 Alhindawi, N., M., O., Malkawi, R., & Alsakran, J. (2016b). A Topic Modeling Based Solution for Confirming Software Documentation Quality. International Journal of Advanced Computer Science and Applications, 7(2). https://doi.org/10.14569/IJACSA.2016.070227 Arisholm, E., Briand, L. C., Hove, S. E., & Labiche, Y. (2006). The impact of UML documentation on software maintenance: An experimental evaluation. IEEE Transactions on Software Engineering, 32(6), 365–381. https://doi.org/10.1109/TSE.2006.59 Balaji, S. (2012). Waterfall vs. V-Model vs. Agile: A Comparative Study on SDLC. International Journal of Information Technology and Business Management, 2(1), 26–30. Bassil, Y. (2012). A Simulation Model for the Waterfall Software Development Life Cycle. International Journal of Engineering, 2(5). Beck, K. (2001). Manifesto for Agile Software Development. Behutiye, W., Rodríguez, P., Oivo, M., Aaramaa, S., Partanen, J., & Abhervé, A. (2022). Towards optimal quality requirement documentation in agile software development: A multiple case study. Journal of Systems and Software, 183, 111112. https://doi.org/10.1016/j.jss.2021.111112 Bendraou, R., Jezequel, J.-M., Gervais, M.-P., & Blanc, X. (2010). A Comparison of Six UML-Based Languages for Software Process Modeling. IEEE Transactions on Software Engineering, 36(5), 662–675. https://doi.org/10.1109/TSE.2009.85 Benington, H. D. (1983). Production of Large Computer Programs. IEEE Annals of the History of Computing, 5(4), 350–361. https://doi.org/10.1109/MAHC.1983.10102 Blas, M. J., Gonnet, S., & Leone, H. (2017). An ontology to document a quality scheme specification of a software product. Expert Systems, 34(5), e12213. https://doi.org/10.1111/exsy.12213 Booth, A. (2016). Searching for qualitative research for inclusion in systematic reviews: A structured methodological review. Systematic Reviews, 5(1), 74. https://doi.org/10.1186/s13643-016-0249-x Briand, L. C., Labiche, Y., Di Penta, M., & Yan-Bondoc, H. (2005). An experimental investigation of formality in UML-based development. IEEE Transactions on Software Engineering, 31(10), 833–849. https://doi.org/10.1109/TSE.2005.105 Briand, L. C., Labiche, Y., & Leduc, J. (2006). Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software. IEEE Transactions on Software Engineering, 32(9), 642–663. https://doi.org/10.1109/TSE.2006.96 Chavez, H. M., Shen, W., France, R. B., Mechling, B. A., & Li, G. (2016). An Approach to Checking Consistency between UML Class Model and Its Java Implementation. IEEE Transactions on Software Engineering, 42(4), 322–344. https://doi.org/10.1109/TSE.2015.2488645 De Graaf, K. A., Liang, P., Tang, A., & Van Vliet, H. (2016). How organisation of architecture documentation affects architectural knowledge retrieval. Science of Computer Programming, 121, 75–99. https://doi.org/10.1016/j.scico.2015.10.014 Ding, W., Liang, P., Tang, A., & Van Vliet, H. (2014). Knowledge-based approaches in software documentation: A systematic literature review. Information and Software Technology, 56(6), 545–567. https://doi.org/10.1016/j.infsof.2014.01.008 Distefano, S., Scarpa, M., & Puliafito, A. (2011). From UML to Petri Nets: The PCM-Based Methodology. IEEE Transactions on Software Engineering, 37(1), 65–79. https://doi.org/10.1109/TSE.2010.10 Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic review. Information and Software Technology, 50(9–10), 833–859. https://doi.org/10.1016/j.infsof.2008.01.006 Dzidek, W. J., Arisholm, E., & Briand, L. C. (2008). A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance. IEEE Transactions on Software Engineering, 34(3), 407–432. https://doi.org/10.1109/TSE.2008.15 Et.al, N. N. K. (2021). Tailoring effective requirement’s specification for ingenuity in Software Development Life Cycle. Turkish Journal of Computer and Mathematics Education (TURCOMAT), 12(3), 3338–3344. https://doi.org/10.17762/turcomat.v12i3.1590 Fernández-Sáez, A. M., Genero, M., & Chaudron, M. R. V. (2013). Empirical studies concerning the maintenance of UML diagrams and their use in the maintenance of code: A systematic mapping study. Information and Software Technology, 55(7), 1119–1142. https://doi.org/10.1016/j.infsof.2012.12.006 Forward, A. (2002). Software documentation: Building and maintaining artefacts of communication. https://api.semanticscholar.org/CorpusID:60697083 France, R. B., Dae-Kyoo Kim, Ghosh, S., & Eunjee Song. (2004). A UML-based pattern specification technique. IEEE Transactions on Software Engineering, 30(3), 193–206. https://doi.org/10.1109/TSE.2004.1271174 Ganpatrao Sabale, R. (2012). Comparative Study of Prototype Model For Software Engineering With System Development Life Cycle. IOSR Journal of Engineering, 02(07), 21–24. https://doi.org/10.9790/3021-02722124 Garousi, G., Garousi-Yusifoğlu, V., Ruhe, G., Zhi, J., Moussavi, M., & Smith, B. (2015). Usage and usefulness of technical software documentation: An industrial case study. Information and Software Technology, 57, 664–682. https://doi.org/10.1016/j.infsof.2014.08.003 Goseva-Popstojanova, K., Hassan, A., Guedem, A., Abdelmoez, W., Nassar, D. E. M., Ammar, H., & Mili, A. (2003). Architectural-level risk analysis using uml. IEEE Transactions on Software Engineering, 29(10), 946–959. https://doi.org/10.1109/TSE.2003.1237174 Habib, B., Romli, R., & Zulkifli, M. (2023). Identifying components existing in Agile software development for achieving “light but sufficient” documentation. Journal of Engineering and Applied Science, 70(1), 75. https://doi.org/10.1186/s44147-023-00245-1 Inc, B. (2003). Systems Development Lifecycle: Objectives and Requirements. New York: Queensbury. Jansen, A., Avgeriou, P., & Van Der Ven, J. S. (2009). Enriching software architecture documentation. Journal of Systems and Software, 82(8), 1232–1248. https://doi.org/10.1016/j.jss.2009.04.052 Jansen, A., Bosch, J., & Avgeriou, P. (2008). Documenting after the fact: Recovering architectural design decisions. Journal of Systems and Software, 81(4), 536–557. https://doi.org/10.1016/j.jss.2007.08.025 Kajko-Mattsson, M. (2005). A Survey of Documentation Practice within Corrective Maintenance. Empirical Software Engineering, 10(1), 31–55. https://doi.org/10.1023/B:LIDA.0000048322.42751.ca Kakar, A. (2023). What more can Software Development Learn from Agile Manufacturing? Some Pointers on the 20th Anniversary of the Agile Manifesto. Journal of the Southern Association for Information Systems, 10(1), 30–40. https://doi.org/10.17705/3JSIS.00031 Khan, I. A., & Kumari, D. D. (2021a). The Role of Analysis Phase of SDLC for Small Scale Business Application- A Review. Khan, I. A., & Kumari, D. D. (2021b). The Role of Analysis Phase of SDLC for Small Scale Business Application- A Review. Kitchenham, B., Charters, S., & others. (2007a). Guidelines for performing systematic literature reviews in software engineering. UK. Kitchenham, B., Charters, S., & others. (2007b). Guidelines for performing systematic literature reviews in software engineering. UK. Kitchenham, B., Pearl Brereton, O., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2009). Systematic literature reviews in software engineering – A systematic literature review. Information and Software Technology, 51(1), 7–15. https://doi.org/10.1016/j.infsof.2008.09.009 Korkala, M., Abrahamsson, P., & Kyllonen, P. (2006). A Case Study on the Impact of Customer Communication on Defects in Agile Software Development. AGILE 2006 (AGILE’06), 76–88. https://doi.org/10.1109/AGILE.2006.1 Kudo, T. N., Bulcão Neto, R. D. F., Vincenzi, A. M. R., & Macedo, A. A. (2019). A revisited systematic literature mapping on the support of requirement patterns for the software development life cycle. Journal of Software Engineering Research and Development, 7, 9. https://doi.org/10.5753/jserd.2019.458 Lallchandani, J. T., & Mall, R. (2011). A Dynamic Slicing Technique for UML Architectural Models. IEEE Transactions on Software Engineering, 37(6), 737–771. https://doi.org/10.1109/TSE.2010.112 Leau, Y. B., Loo, W. K., Tham, W. Y., & Tan, S. F. (2012). Software Development Life Cycle AGILE vs Traditional Approaches. Lethbridge, T. C., Singer, J., & Forward, A. (2003). How software engineers use documentation: The state of the practice. IEEE Software, 20(6), 35–39. https://doi.org/10.1109/MS.2003.1241364 Li, J., Sun, A., & Xing, Z. (2018). Learning to answer programming questions with software documentation through social context embedding. Information Sciences, 448–449, 36–52. https://doi.org/10.1016/j.ins.2018.03.014 Luqi, Zhang, L., Berzins, V., & Qiao, Y. (2004). Documentation driven development for complex real-time systems. IEEE Transactions on Software Engineering, 30(12), 936–952. https://doi.org/10.1109/TSE.2004.100 Lutters, W. G., & Seaman, C. B. (2007). Revealing actual documentation usage in software maintenance through war stories. Information and Software Technology, 49(6), 576–587. https://doi.org/10.1016/j.infsof.2007.02.013 Maalej, W., & Robillard, M. P. (2013). Patterns of Knowledge in API Reference Documentation. IEEE Transactions on Software Engineering, 39(9), 1264–1282. https://doi.org/10.1109/TSE.2013.12 Mäntylä, M. V., & Itkonen, J. (2014). How are software defects found? The role of implicit defect detection, individual responsibility, documents, and knowledge. Information and Software Technology, 56(12), 1597–1612. https://doi.org/10.1016/j.infsof.2013.12.005 Milicev, D. (2007). On the Semantics of Associations and Association Ends in UML. IEEE Transactions on Software Engineering, 33(4), 238–251. https://doi.org/10.1109/TSE.2007.37 Mondal, A. K., Schneider, K. A., Roy, B., & Roy, C. K. (2022). A survey of software architectural change detection and categorization techniques. Journal of Systems and Software, 194, 111505. https://doi.org/10.1016/j.jss.2022.111505 M.Tech Research Scholar, Jharkhand Rai University, Ranchi, Jharkhand, Kumar, M., & Rashid, E. (2018). An Efficient Software Development Life cycle Model for Developing Software Project. International Journal of Education and Management Engineering, 8(6), 59–68. https://doi.org/10.5815/ijeme.2018.06.06 Nanz, S. (Ed.). (2011). The Future of Software Engineering. Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-642-15187-3 Nassif, M., Hernandez, A., Sridharan, A., & Robillard, M. P. (2022). Generating Unit Tests for Documentation. IEEE Transactions on Software Engineering, 48(9), 3268–3279. https://doi.org/10.1109/TSE.2021.3087087 Novianti, E., Susilawati, E. A., Sesunan, M. F., Syamsiyah, N., & Astuty, E. Y. (2019). Development wedding planner using extreme programming method. IOP Conference Series: Materials Science and Engineering, 673(1), 012049. https://doi.org/10.1088/1757-899X/673/1/012049 Ozkaya, M., & Erata, F. (2020). A survey on the practical use of UML for different software architecture viewpoints. Information and Software Technology, 121, 106275. https://doi.org/10.1016/j.infsof.2020.106275 Pan, W., Ming, H., Kim, D.-K., & Yang, Z. (2023). Pride: Prioritizing Documentation Effort Based on a PageRank-Like Algorithm and Simple Filtering Rules. IEEE Transactions on Software Engineering, 49(3), 1118–1151. https://doi.org/10.1109/TSE.2022.3171469 Parnas, D. L. (2011). Precise Documentation: The Key to Better Software. In S. Nanz (Ed.), The Future of Software Engineering (pp. 125–148). Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-642-15187-3_8 Royce, D. W. W. (1970). Managing the Development of Large Software Systems. Ruparelia, N. B. (2010). Software development lifecycle models. ACM SIGSOFT Software Engineering Notes, 35(3), 8–13. https://doi.org/10.1145/1764810.1764814 Saenz-Adan, C., Perez, B., Garcia-Izquierdo, F. J., & Moreau, L. (2022). Integrating Provenance Capture and UML With UML2PROV: Principles and Experience. IEEE Transactions on Software Engineering, 48(1), 53–68. https://doi.org/10.1109/TSE.2020.2977016 Schwaber, K. (1997). SCRUM Development Process. In J. Sutherland, C. Casanave, J. Miller, P. Patel, & G. Hollowell (Eds.), Business Object Design and Implementation (pp. 117–134). Springer London. https://doi.org/10.1007/978-1-4471-0947-1_11 Sharma, S. K., Gupta, P. K., & Malekian, R. (2015). Energy efficient software development life cycle—An approach towards smart computing. 2015 IEEE International Conference on Computer Graphics, Vision and Information Security (CGVIS), 1–5. https://doi.org/10.1109/CGVIS.2015.7449881 Theunissen, T., Van Heesch, U., & Avgeriou, P. (2022). A mapping study on documentation in Continuous Software Development. Information and Software Technology, 142, 106733. https://doi.org/10.1016/j.infsof.2021.106733 Van Heesch, U., Avgeriou, P., & Tang, A. (2013). Does decision documentation help junior designers rationalize their decisions? A comparative multiple-case study. Journal of Systems and Software, 86(6), 1545–1565. https://doi.org/10.1016/j.jss.2013.01.057 Véras, P. C., Villani, E., Ambrosio, A. M., Vieira, M., & Madeira, H. (2015). A benchmarking process to assess software requirements documentation for space applications. Journal of Systems and Software, 100, 103–116. https://doi.org/10.1016/j.jss.2014.10.054 Zhi, J., Garousi-Yusifoğlu, V., Sun, B., Garousi, G., Shahnewaz, S., & Ruhe, G. (2015). Cost, benefits and quality of software development documentation: A systematic mapping. Journal of Systems and Software, 99, 175–198. https://doi.org/10.1016/j.jss.2014.09.042 |
論文全文使用權限 |
如有問題,歡迎洽詢!
圖書館數位資訊組 (02)2621-5656 轉 2487 或 來信