進階搜尋


   電子論文尚未授權公開,紙本請查館藏目錄
(※如查詢不到或館藏狀況顯示「閉架不公開」,表示該本論文不在書庫,無法取用。)
系統識別號 U0026-1008201220085100
論文名稱(中文) 一個透過 CRC 卡片以幫助開放原始碼社群中程式協同開發的連結方法
論文名稱(英文) A Linking Approach to Facilitate Collective Ownership in Open Source Community with CRC Cards
校院名稱 成功大學
系所名稱(中) 電腦與通信工程研究所
系所名稱(英) Institute of Computer & Communication
學年度 100
學期 2
出版年 101
研究生(中文) 吳政原
研究生(英文) Cheng-Yuan Wu
學號 q36994061
學位類別 碩士
語文別 英文
論文頁數 42頁
口試委員 指導教授-焦惠津
口試委員-斯國峰
口試委員-留忠賢
口試委員-林志敏
口試委員-蔡尚榮
中文關鍵字 連結  程式協同開發  開放原始碼  開放原始碼社群  程式理解 
英文關鍵字 link  linking  traceability  collective ownership  open source  open source community  CRC cards  program comprehension 
學科別分類
中文摘要 程式協同開發在開放原始碼社群中是很重要的一項活動。然而,現今開放原始碼專案大多沒有保留開發文件,這使得新加入社群的成員難以了解專案,也使得程式協同開發難以進行。這篇論文建議在開放原始碼社群中使用CRC Cards來當作開發文件,並提出一個連結方法來透過 CRC Cards 幫助原始碼社群中的程式協同開發。為了衡量這個方法的效果,共有一百位受試者參與了一個實驗。實驗的結果以及受試者的反應顯示這個方法能有效地幫助獲得專案的知識以及確認對於專案的知識是否正確。
英文摘要 Collective ownership is an important practice in open source community. However, most current open source projects do not keep documentation. This makes new participants hard to understand the project and burdens collective ownership in the community. In this thesis, CRC cards are suggested being used in open source community as documentation. In order to help CRC cards fit in the open source context, an approach using linking technique is presented, which improves collective ownership on CRC cards and source code. An experiment is conducted with 100 subjects to evaluate the effects of the approach. The results and the responses from the subjects show that the approach provides great help on recovering knowledge and confirming understanding and misunderstanding.
論文目次 1 Introduction (p.1)
2 Related Works (p.5)
2.1 CRC cards (p.5)
2.2 Program comprehension (p.6)
2.3 Traceability links (p.7)
3 The Linking Approach (p.9)
3.1 Use CRC cards as documentation (p.10)
3.2 The overview of the linking approach (p.11)
3.3 Knowledge recovery and understanding checking during linking (p.13)
3.4 Knowledge recovery and understanding checking during consistency checking and through
modification suggestions (p.14)
3.5 Fast building and refinement of CRC cards and source code (p.15)
3.6 Enhance the adaptation of CRC cards in open source community (p.16)
3.7 Apply the linking approach in open source community (p.17)
3.7.1 A project with existing source code (p.17)
3.7.2 A project with existing CRC cards (p.18)
3.7.3 A project with existing CRC cards and source code (p.18)
4 Experiment (p.20)
4.1 Experiment context: subjects (p.21)
4.2 Experiment process (p.21)
4.3 Experiment context: objects (p.22)
4.3.1 The tasks (p.22)
4.3.2 The implementation of the approach (p.22)
4.3.3 Questionnaire (p.24)
4.3.4 The procedure of source code improvement (p.24)
5 Results and Findings (p.26)
5.1 The improvement of the source code (p.27)
5.2 The responses on the effect of the linking approach (p.28)
5.3 Threats to Validity (p.29)
5.3.1 Internal Validity (p.29)
5.3.2 External Validity (p.29)
6 Conclusion and Future Works (p.31)
References (p.34)
Vita (p.42)
參考文獻 [1] E. Capra, C. Francalanci, and F. Merlo, “An empirical study on the relationship between software design quality, development effort and governance in open source projects,” IEEE Transactions on Software Engineering, vol. 34, pp. 765–782, Nov.-Dec. 2008.
[2] F.-R. Wang, D. He, and J. Chen, “Motivations of individuals and firms participating in open source community,” in Proceedings of 2005 International Conference on Machine Learning and Cybernetics, vol. 1, pp. 309–314, Aug. 2005.
[3] U. Raja and M. Tretter, “Defining and evaluating a measure of open source project survivability,” IEEE Transactions on Software Engineering, vol. 38, pp. 163–174, Jan.-Feb. 2012.
[4] ”The Google Open Source Programs Office, http://code.google.com/intl/en/opensource/”.
[5] ”Android open source project, http://source.android.com/”.
[6] ”Facebook Developers, https://developers.facebook.com/”.
[7] K. Beck, “Embracing change with extreme programming,” IEEE Computer, vol. 32, pp. 70–77, Oct. 1999.
[8] K. Beck, Extreme Programming Explained: Embrace Change. Addison-Wesley Professional, 1999.
[9] M. E. Nordberg III, “Managing code ownership,” IEEE Software, vol. 20, pp. 26–33, Mar./Apr. 2003.
[10] S. K. Shah, “Motivation, governance, and the viability of hybrid forms in open source software development,” Management Science, vol. 52, no. 7, pp. 1000–1014, 2006.
[11] G. von Krogh, S. Spaeth, and K. R. Lakhani, “Community, joining, and specialization in open source software innovation: a case study,” Research Policy, vol. 32, pp. 1217–1241, July 2003.
[12] A. Ko, R. DeLine, and G. Venolia, “Information needs in collocated software development teams,” in Proceedings of the 29th International Conference on Software Engineering (ICSE), pp. 344–353, May 2007.
[13] P. Laplante, A. Gold, and T. Costello, “Open source software: Is it worth converting?,” IT Professional, vol. 9, pp. 28–33, July-Aug. 2007.
[14] M. Hertzum, “The importance of trust in software engineers’ assessment and choice of information sources,” Inf. Organ., vol. 12, pp. 1–18, 2002.
[15] T. D. Latoza, “Maintaining mental models: A study of developer work habits,” in Proceedings of the 28th International Conference on Software Engineering (ICSE), pp. 492–501, 2006.
[16] K. Beck and W. Cunningham, “A laboratory for teaching object oriented thinking,” in Conference proceedings on Object-oriented programming systems, languages and applications (OOPSLA'89), pp. 1–6, 1989.
[17] R. Biddle, J. Noble, and E. Tempero, “Reflections on crc cards and oo design,” in Proceedings of the 40th International Conference on Tools Pacific: Objects for internet, mobile and embedded applications (CRPIT'02), pp. 201–205, 2002.
[18] C. Schulte, J. Magenheim, J. Niere, and W. Schafer, “Thinking in objects and their collaboration: Introducing object-oriented technology,” Computer Science Education, vol. 13, no. 4, pp. 269–288, 2003.
[19] K. A. Gray, M. Guzdial, and S. Rugaber, “Extending crc cards into a complete design process,” Proceedings of the 8th annual conference on Innovation and technology in computer science education (ITiCSE'03 ), vol. 35, no. 3, pp. 226–226, 2003.
[20] J. B¨orstler, “Improving crc-card role-play with role-play diagrams,” in Conference proceedings on Object-oriented programming systems, languages and applications (OOPSLA'05).
[21] R. Wirfs-Brock and A. Mckean, Object Design-Roles, Responsibilities and Collaborations. Addison-Wesley Professional, 2003.
[22] P. Selfridge and G. Heineman, “Graphical support for code-level software understanding,” in Proceedings of the 9th Joint Conference On Knowledge-Based Software Engineering, pp. 117–124, Sep. 1994.
[23] N. Walkinshaw, M. Roper, and M. Wood, “Understanding object-oriented source code from the behavioural perspective,” in Proceedings of the 13th International Workshop on Program Comprehension (IWPC), pp. 215–224, May 2005.
[24] W. Zhao, L. Zhang, Y. Liu, J. Luo, and J. Sun, “Understanding how the requirements are implemented in source code,” in Proceedings of the 10th Asia-Pacific Software Engineering Conference (APSEC), pp. 68–77, Dec. 2003.
[25] Z. Han, L. Wang, L. Yu, X. Chen, J. Zhao, and X. Li, “Design pattern directed clustering for understanding open source code,” in IEEE 17th International Conference on Program Comprehension (ICPC'09), pp. 295–296, May 2009.
[26] N. F. M. Sani, A. M. Zin, and S. Idris, “Object-oriented codes representation of program understanding system,” in International Symposium on Information Technology (ITSim), vol. 1, pp. 1–5, Aug. 2008.
[27] B. Cornelissen, A. Zaidman, and A. van Deursen, “A controlled experiment for program comprehension through trace visualization,” IEEE Transactions on Software Engineering, vol. 37, pp. 341–355, May-June 2011.
[28] M. Pinzger, K. Grafenhain, P. Knab, and H. Gall, “A tool for visual understanding of source code dependencies,” in Proceedings of the 16th IEEE International Conference on Program Comprehension (ICPC'08), pp. 254–259, June 2008.
[29] M. Lanza, S. Ducasse, H. Gall, and M. Pinzger, “Codecrawler - an information visualization
tool for program comprehension,” in Proceedings of the 27th International Conference on Software Engineering (ICSE), pp. 672–673, May 2005.
[30] H. Muller and K. Klashinsky, “Rigi: a system for programming-in-the-large,” in Proceedings of the 10th International Conference on Software Engineering (ICSE), pp. 80–86, Apr. 1988.
[31] J. Pu, Z. Zhang, J. Kang, Y. Xu, and H. Yang, “Using aspect orientation in understanding legacy cobol code,” in Proceedings of the 31st Annual International Computer Software and Applications Conference (COMPSAC), vol. 2, pp. 385–390, July 2007.
[32] J. Maletic and A. Marcus, “Using latent semantic analysis to identify similarities in source code to support program understanding,” in Proceedings of the 12th IEEE International Conference on Tools with Artificial Intelligence (ICTAI), pp. 46–53, 2000.
[33] A. Seibel, “From software traceability to global model management and back again,” in Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR), pp. 381–384, Mar. 2011.
[34] B. Burgstaller and A. Egyed, “Understanding where requirements are implemented,” in Proceedings of 26th IEEE International Conference on Software Maintenance (ICSM), pp. 1–5, Sep. 2010.
[35] A. De Lucia, M. Di Penta, R. Oliveto, and F. Zurolo, “Improving comprehensibility of source code via traceability information: a controlled experiment,” in Proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC'06), pp. 317–326, 2006.
[36] J. Dick, “Design traceability,” IEEE Software, vol. 22, pp. 14–16, Nov.-Dec. 2005.
[37] A. De Lucia, F. Fasano, R. Oliveto, and G. Tortora, “Enhancing an artefact management system with traceability recovery features,” in Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM), pp. 306–315, Sep. 2004.
[38] J. Richardson and J. Green, “Automating traceability for generated software artifacts,” in Proceedings of the 19th International Conference on Automated Software Engineering, pp. 24–33, Sep. 2004.
[39] H. Kagdi, J. Maletic, and B. Sharif, “Mining software repositories for traceability links,” in Proceedings of the 15th IEEE International Conference on Program Comprehension (ICPC'07), pp. 145–154, June 2007.
[40] I. Omoronyia, G. Sindre, M. Roper, J. Ferguson, and M. Wood, “Use case to source code traceability: The developer navigation view point,” in Proceedings of the 17th IEEE International Requirements Engineering Conference (RE'09), pp. 237–242, Aug. 31 - Sep. 4 2009.
[41] J. Hayes, A. Dekhtyar, and J. Osborne, “Improving requirements tracing via information retrieval,” in Proceedings of the 11th IEEE International Requirements Engineering Conference, pp. 138–147, Sep. 2003.
[42] G. Antoniol, G. Canfora, G. Casazza, A. De Lucia, and E. Merlo, “Recovering traceability links between code and documentation,” IEEE Transactions on Software Engineering, vol. 28, pp. 970–983, Oct. 2002.
[43] H.-Y. Jiang, T. Nguyen, C. Chang, and F. Dong, “Traceability link evolution management with incremental latent semantic indexing,” in Proceedings of the 31st An-nual International Computer Software and Applications Conference (COMPSAC), vol. 1, pp. 309–316, July 2007.
[44] A. Marcus and J. Maletic, “Recovering documentation-to-source-code traceability links using latent semantic indexing,” in Proceedings of the 25th International Conference on Software Engineering (ICSE), pp. 125–135, May 2003.
[45] A. Qusef, R. Oliveto, and A. De Lucia, “Recovering traceability links between unit tests and classes under test: An improved method,” in Proceedings of 26th IEEE International Conference on Software Maintenance (ICSM), pp. 1–10, Sep. 2010.
[46] G. Antoniol, G. Canfora, G. Casazza, and A. De Lucia, “Identifying the starting impact set of a maintenance request: a case study,” in Proceedings of the Fourth European Software Maintenance and Reengineering, pp. 227–230, Feb. 2000.
[47] N. Ali, Y.-G. Gueheneuc, and G. Antoniol, “Trust-based requirements traceability,” in Proceedings of the 19th IEEE International Conference on Program Comprehension (ICPC'11), pp. 111–120, June 2011.
[48] X. Chen and J. Grundy, “Improving automated documentation to code traceability by combining retrieval techniques,” in Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 223–232, Nov. 2011.
[49] S. Ratanotayanon, S. Sim, and R. Gallardo-Valencia, “Supporting program comprehension in agile with links to user stories,” in Proceedings of the Agile Conference, pp. 26–32, Aug. 2009.
[50] B. Fluri, M.Wursch, and H. Gall, “Do code and comments co-evolve? on the relation between source code and comment changes,” in Proceedings of the 14th Working Conference on Reverse Engineering (WCRE), pp. 70–79, Oct. 2007.
[51] M. Robillard, W. Coelho, and G. Murphy, “How effective developers investigate source code: an exploratory study,” IEEE Transactions on Software Engineering, vol. 30, pp. 889–903, Dec. 2004.
[52] B. Nuseibeh, S. Easterbrook, and A. Russo, “Leveraging inconsistency in software development,” IEEE Computer, vol. 33, pp. 24–29, Apr. 2000.
論文全文使用權限
  • 同意授權校內瀏覽/列印電子全文服務,於2017-08-30起公開。


  • 如您有疑問,請聯絡圖書館
    聯絡電話:(06)2757575#65773
    聯絡E-mail:etds@email.ncku.edu.tw