簡易檢索 / 詳目顯示

研究生: 陳皆成
Jie-Cherng Chen
論文名稱: 影響軟體可維護性之軟體發展問題因素與專案屬性之研究
A study of software development problem factors and project attributes affecting software maintainability
指導教授: 黃世禎
Sun-Jen Huang
口試委員: 李國光
Gwo-Guang Lee
賴源正
Yuan-Cheng Lai
張文貴
Wen-Kui Chang
陳振楠
none
朱慧德
none
學位類別: 博士
Doctor
系所名稱: 管理學院 - 資訊管理系
Department of Information Management
論文出版年: 2009
畢業學年度: 97
語文別: 英文
論文頁數: 72
中文關鍵詞: 軟體委外軟體流程改善軟體可維護性軟體發展問題因素多重角色衝突
外文關鍵詞: Outsourcing, Software Process Improvement, Software Maintainability, Software Development Problem Factors, Inter-Role Conflict
相關次數: 點閱:471下載:23
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報

在整個軟體發展生命週期裡,主要包含了兩個重要的階段:「軟體發展階段」與「軟體維護階段」,而軟體維護階段被公認是在整個軟體生命週期中最耗費成本的階段。然而,有許多問題因素是發生在軟體發展階段,它們最終會影響軟體的可維護性,並造成軟體難以維護。因此,瞭解影響軟體可維護性之軟體發展問題因素與專案屬性,不僅有助於降低軟體專案的失敗率,而且有助於確保軟體的可維護性。
本研究主要是在探討哪些軟體發展問題因素可能會影響軟體可維護性,造成軟體難以維護,並探討「軟體流程改善」、「軟體委外型式」與「多重角色衝突」三項專案屬性,是否會影響軟體發展問題因素及軟體可維護性。本研究藉由文獻探討,找出25個軟體發展問題因素,區分為五個問題構面,並設計問卷與進行問卷調查,總共蒐集了137個專案的歷史資料。本研究運用k-means分群技術,將這137個專案,依據其軟體可維護性,區分為相對性的低、中、高三群,並探討這三群專案的重要特徵。本研究同時運用迴歸分析及ANOVA分析技術,探討三項專案屬性與「軟體發展問題因素」及「軟體可維護性」之間的相互影響關係。
研究結果發現:(1)當專案問題因素的嚴重程度較高時,對於軟體可維護性的影響便愈趨明顯;(2)軟體流程改善可以有效降低「文件品質問題」及「流程管理問題」的嚴重程度,並可以有效提昇軟體可維護性至中級程度;(3)軟體委外專案相較於軟體內製專案,前者在「流程管理問題」構面的嚴重程度顯著偏高;(4)「多重角色衝突」會藉由「文件品質問題」及「程式品質問題」構面,間接的影響軟體可維護性。最後,本研究條列出在軟體專案開發過程中,所面臨嚴重程度最高的前十項軟體發展問題因素,並討論前述研究結果的管理意涵。


There are two major phases in the software life cycle: the software development phase and the software maintenance phase. Software maintenance has been recognized as the most costly and difficult phase in the software life cycle. Many problem factors in the software development phase may affect the maintainability of the delivered software systems. Therefore, understanding software development problem factors and project attributes can help in not only reducing the incidence of project failure but can also ensure software maintainability.
This study focuses on those software development problem factors which may possibly affect software maintainability. The influence of three project attributes (i.e., software process improvement (SPI), sourcing type, and inter-role conflict) on software development problems and the associated software maintainability was also examined. Twenty-five problem factors were classified into five dimensions; a questionnaire was designed and 137 software projects were surveyed. A k-means cluster analysis was performed to classify the projects into three groups of low, medium and high maintainability projects. Regression and ANOVA analyses were conducted to examine the relationships among project attributes, software development problems and the associated software maintainability.
The results reveal the facts that (1) for projects which have a higher level of severity of problem factors, the influence on software maintainability becomes more obvious; (2) SPI can help reduce the level of severity of the documentation quality and process management problems, and is only likely to enhance software maintainability to a medium level; (3) the outsourced projects have significantly higher levels of severity on the process management problems than the insourced projects; and (4) the inter-role conflict can indirectly affect software maintainability via documentation quality and programming quality problems. Finally, the top 10 list of higher-severity software development problem factors was identified, and the management implications were also discussed in this study.

摘 要 I Abstract III Acknowledgement V Table of Contents VII List of Figures IX List of Tables X 1. Introduction 1 1.1 Background and Motivation 1 1.2 Research Scope 2 1.3 Outline of the Dissertation 3 2. Survey on Related Work 5 2.1 Software Product Quality 5 2.1.1 Software Maintainability 5 2.2 Software Development Problems 5 2.2.1 Documentation Quality Problems 6 2.2.2 Programming Quality Problems 7 2.2.3 System Requirements Problems 7 2.2.4 Personnel Resources Problems 8 2.2.5 Process Management Problems 8 2.3 Project Attributes 11 2.3.1 Software Process Improvement 11 2.3.2 Sourcing Type 11 2.3.3 Inter-Role Conflict 12 3. Questionnaire Development and Data Collection 13 3.1 Content Validity 13 3.2 Pilot Test 14 3.3 Data Collection 14 4. Analyses of Software Development Problems and Software Maintainability 20 4.1 Research Questions 20 4.2 Patterns in Problem Dimensions across Different Levels of Software Maintainability 21 4.3 A List of the Top 10 Higher-Severity Problem Factors 28 4.4 Comparing the Problem Factors between Two Phases 28 4.5 Discussion and Implications 29 5. Analyses of Project Attributes and Software Maintainability 31 5.1 Research Questions 31 5.2 The Relationship between Project Demographics and Software Maintainability 32 5.3 Impact of SPI on Problem Dimensions 35 5.4 Impact of Sourcing Type on Problem Dimensions 36 5.5 The Relationship between Project Size and Inter-Role Conflict 37 5.6 The Relationship between Inter-Role Conflict and Software Maintainability 39 5.7 Discussion and Implications 44 6. Conclusions and Future Work 47 6.1 Summary 47 6.2 Limitations 49 6.3 Future Work 50 Bibliography 52 Appendix A. Questionnaire for Content Validity 58 Appendix B. Questionnaire for Pilot Test 60 Appendix C. Questionnaire for Data Collection 64 Curriculum Vitae 70 Publication List 71

Aldenderfer, M.S., & Blashfield, R.K. (1984). Cluster Analysis - Quantitative Applications in the Social Sciences. London: Sage Publications.
Apfelbaum, L., & Doyle, J. (1997). Model Based Testing. In: 10th International Software Quality Week Conference. San Francisco.
Armstrong, J., & Overton, T. (1997). Estimating non-response bias in mail survey. Journal of Marketing Research, 15, 396–402.
Arthur, J.D., & Stevens, K.T. (1989). Assessing the Adequacy of Documentation Through Document Quality Indicators. In: Proceedings of the Conference on Software Maintenance. IEEE CS Press, 40–49.
Arunachalam, V., & Sasso, W. (1996). Cognitive processes in program comprehension: An empirical analysis in the Context of software reengineering. Journal of Systems and Software, 34(3), 177–189.
Ashrafi, N. (2003). The impact of software process improvement on quality: in theory and practice. Information & Management, 40(7), 677–690.
Balci, O. (2003). Verification, validation and certification of modeling and simulation applications. In: Proceedings of the 2003 Simulation Conference, Volume: 1, 150–158.
Bendifallah, S., & Scacchi, W. (1987). Understanding Software Maintenance Work. IEEE Transactions on Software Engineering, 13(3), 311–323.
Berczuk, S.P., & Appleton, B. (2003). Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley Professional.
Biddle, B.J. (1979). Role theory: Expectations, identities and behaviors. San Francisco: Academic Press.
Chrissis, M.B., Konrad, M., & Shrum, S. (2006). CMMI: Guidelines for Process Integration and Product Improvement; 2nd Edition. Addison-Wesley Professional.
CMMI Product Team (2002). Capability Maturity Model Integration, Version1.1, CMMI–SW/SE/IPPD/SS, Continuous Representation. Software Engineering Institute Technical Report, CMU/SEI-2002-TR-012.
Dekleva, S. (1992). Delphi study of software maintenance problems. In: Proceedings of the 1992 Conference on Software Maintenance. IEEE Computer Society, 10–17.
Dethomas, & Anthony (1987). Technology requirements of integrated, critical digital flight systems. In: AIAA Guidance, Navigation and Control Conference, Monterey, CA, Technical Papers, Volume 2. New York: American Institute of Aeronautics and Astronautics, 1579–1583.
Diaz, M., & Sligo, J. (1997). How software process improvement helped Motorola. IEEE Software, 14(5), 75–81.
Earl, M.J. (1996). The risks of outsourcing IT. Sloan Management Review, 37(3), 26–32.
Etzkorn, L.H., Huges, Jr. W.E., & Davis, C.G. (2001). Automated Reusability Quality Analysis of OO Legacy Software. Information and Software Technology, 43(5), 295–308.
Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional.
Fried, Y., Ben-David, H.A., Tiegs, R.B., Avital, N., & Yeverechyahu, U., (1998). The interactive effect of role conflict and role ambiguity on job performance. Journal of occupational and organizational psychology, 71(1), 19–27.
Galin D. (2003). Software Quality Assurance: From Theory to Implementation. Addison Wesley.
Gellerich, W., & Plodereder, E. (2001). Parameter-induced aliasing in Ada. Springer Berlin / Heidelberg.
Ghods, M., & Nelson, K.M. (1998). Contributors to quality during software maintenance. Decision Support Systems, 23, 361–369.
Gill, G.K., & Kemerer, C.F. (1991). Cyclomatic complexity density and software maintenance productivity. IEEE Transactions on Software Engineering, 17(12), 1284–1288.
Girden, E.R. (1992). ANOVA: Repeated Measures - Quantitative applications in the social sciences. Sage Publications.
Haley, T.J. (1996). Software process improvement at Raytheon. IEEE Software, 13(6), 33–41.
Han,W.M., & Huang S.J. (2007). An empirical analysis of risk components and performance on software projects. The Journal of Systems and Software, 80(1), 42–50.
Harold, K. (2004). Advanced Project Management: Best Practices on Implementation; 2nd edition. Wiley.
Hartigan, J.A. (1975). Clustering Algorithms. New York: John Wiley & Sons.
Hartigan, J.A., & Wong, M.A. (1979). A K-Means Clustering Algorithm. Applied Statistics, 28 (1), 100–108.
Hayes, J.H., Dekhtyar, A., Sundaram, S.K., Holbrook, E.A., Vadlamudi, S., & April, A. (2007). REquirements TRacing On target (RETRO): improving software maintenance through traceability recovery. Innovations in Systems and Software Engineering, 3(3), 193–202.
Hetzel, B. (1993). The Complete Guide to Software Testing; 2nd edition. Wiley.
Hofmann, H.F., & Lehner, F. (2001). Requirements Engineering as a Success Factor in Software Projects. IEEE Software, 18(4), 58–66.
Holcombe, M. (2008). Running an Agile Software Development Project. Wiley.
House, R.J., & Rizzo, J.R. (1972). Role conflict and ambiguity as critical variables in a model of organizational behavior. Organizational Behavior and Human Performance, 7, 467-505.
Hoyle, D. (2005). ISO 9000 Quality Systems Handbook; Fifth Edition. Butterworth-Heinemann.
Huang, S.J., & Han, W.M. (2006). Selection priority of process areas based on CMMI continuous representation. Information & Management, 43(3), 297–307.
Humphrey, W.S. (1992). Introduction to Software Process Improvement. Software Engineering Institute Technical Report CMU/SEI-92-TR-7.
ISO 9001 (2000). Quality management systems–Requirements. International Standard Organization.
ISO/IEC 9126-1 (2001). Software Engineering - Product Quality - Part 1: Quality Model. International Standard Organization.
Jiang, J.J., & Klein, G. (1999). Risks to different aspects of system success. Information & Management, 36(5), 263–272.
Jiang, J.J., & Klein, G. (2000). Software development risks to project effectiveness. The Journal of Systems and Software, 52(1), 3–10.
Jiang, J.J., Klein, G., & Balloun, J. (1998). Perceptions of system development failures. Information and Software Technology, 39(14-15), 933–937.
Jiang, J.J., Klein, G., & Means, T. (2000). Project risk impact on software development team performance. Project Management Journal, 31(4), 19–26.
Jones, C. (2004). Software Project Management Practices: Failure Versus Success. CrossTalk: The Journal of Defense Software Engineering, October 2004, 5–9.
Juristo, N., Moreno, A., & Silva, A. (2002). Is the European Industry Moving toward Solving Requirements Engineering Problems? IEEE Software, 19(6), 70–77.
Kahn, R.L., Wolfe, D.M., Quinn, R.P., Snoek, J.D., & Rosenthal, R.A. (1964). Organizational stress: Studies in role conflict and ambiguity. NY: Wiley.
Kernighan, B.W., & Plauger, P.J. (1982). The Elements of Programming Style; 2nd edition. New York: McGraw-Hill.
Kramer, D. (1999). API documentation from source code comments: a case study of Javadoc. In: Proceedings of the 17th annual international conference on Computer documentation. SIGDOC: ACM Special Interest Group for Design of Communications, 147–153.
Krishnan, M.S. (1998). The role of team factors in software cost and quality: An empirical analysis. Information Technology & People, 11(1), 20–35.
Kuilboer, J. P., & Ashrafi, N. (2000). Software process and product improvement: an empirical assessment. Information and Software Technology, 42(1), 27–34.
Leblang, D.B., & McLean, D.G. (1985). Configuration Management for Large-Scale Software Development Efforts. In: GTE Workshop on Software Engineering Environments for Programming in the Large, 122–127.
Lee, M.L. (1998). Change impact analysis of object-oriented software. Doctoral Dissertation, George Mason University, Fairfax, Virginia, USA.
Lethbridge, T.C., Singer, J., & Forward, A. (2003). How software engineers use documentation: the state of the practice. IEEE Software, 20(6), 35–39.
Lientz, B.P., & Swanson, E.B. (1981). Problems in Application Software Maintenance. Communications of the ACM, 24(11), 31–37.
Martin, J., & McClure, C. (1983). Software Maintenance: The problem and its solutions. Prentice-Hall.
McDonough, E.F. (2000). Investigation of Factors Contributing to the Success of Cross-Functional Teams. Journal of Product Innovation Management, 17(3), 221–235.
McGarry, F., Pajerski, R., Page, G., Waligora, S., Basili, V., & Zelkowitz, M. (1994). Software Process Improvement in the NASA Software Engineering Laboratory. Software Engineering Institute Technical Report CMU/SEI-94-TR-22.
Mogyorodi, G. (2001). Requirements-Based Testing: An Overview. In: 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39), 286–286.
Monkevich, O. (1999). SDL-based Specification and Testing Strategy for Communication Network Protocols. In: Proc. 9th SDL Forum, Montreal, Canada.
Netter, J., Wasserman, W., & Kutner, M.H. (1989). Applied Regression Models. Richard D. Irwin, Homewood, IL.
Nidumolu, S.R. (1996). Standardization, requirements uncertainty and software project performance. Information & Management, 31, 135–150.
Nosek, J.T., & Palvia. P. (1990). Software maintenance management: Changes in the last decade. Journal of Software Maintenance: Research and Practice, 2(3), 157–174.
Nunnally, J.C. (1978). Psychometric Theory. New York: McGraw-Hill.
Park, C.H., & Kim, Y.G. (2003). Identifying key factors affecting consumer purchase behavior in an online shopping context. International Journal of Retail & Distribution Management, 31(1), 16–29.
Park, J.Y., & Kim, J.S. (2005). The impact of IS sourcing type on service quality and maintenance efforts. Information & Management, 42(2), 261–274.
Paulish, D.J., & Carleton, A.D. (1994). Case studies of software-process-improvement measurement. Computer, 27(9), 50–57.
Pigoski, T.M. (1996). Practical Software Maintenance: Best Practices for Managing Your Software Investment. Wiley.
Pressman, R. (2004). Software Engineering: A Practitioner's Approach; 6th edition. McGraw-Hill Science.
Rai, A., & Al-Hindi, H. (2000). The effects of development process modeling and task uncertainty on development quality performance. Information & Management, 37(6), 335–346.
Raiffa, H., & Schlaifer, R. (2000). Applied Statistical Decision Theory. Wiley-Interscience.
Schneidewind, N.F. (1987). The State of Software Maintenance. IEEE Transactions on Software Engineering, 13(3), 303–310.
Schneidewind, N.F. (2002). Body of Knowledge for Software Quality Measurement. Computer, 35(2), 77–83.
Schulmeyer, G.G. (2007). Handbook of Software Quality Assurance; 4th edition. Artech House Publishers.
Schwalbe, K. (2005). Information Technology Project Management; 4th edition. Course Technology.
Sousa, M.J. (1998). A Survey on the Software Maintenance Process. In: 14th IEEE International Conference on Software Maintenance (ICSM'98), 265–265.
SPSS Inc. (2004). SPSS 13.0 Base Users Guide. Prentice Hall.
Sumner, M. (1999). Critical success factors in enterprise wide information management systems projects. In: Proceedings of the 1999 ACM SIGCPR conference on Computer personnel research. SIGCPR: ACM Special Interest Group on Computer Personnel Research, 297–303.
Swanson, E.B., & Beath, C.M. (1992). Maintaining Information Systems in Organizations. John Wiley and Sons Ltd.
Tan, W.G., & Gable, G.G. (1998). Attitudes of maintenance personnel towards maintenance work: A comparative analysis. Journal of Software Maintenance: Research and Practice, 10(4), 59–74.
Tonella, P. (2001). Concept Analysis for Module Restructuring. IEEE Transactions on Software Engineering, 27(4), 351-363.
Tubre, T.C., & Collins, J.M. (2000). Jackson and Schuler (1985) Revisited: A Meta-Analysis of the Relationships Between Role Ambiguity, Role Conflict, and Job Performance. Journal of Management, 26(1), 155–169.
Visconti, M., & Cook, C. (1993). Software system documentation process maturity model. In: Proceedings of the 1993 ACM conference on Computer science, 352–357.
Wallace, L., Keil, M., & Rai, A. (2004). Understanding software project risk: a cluster analysis. Information & Management, 42(1), 115–125.
Wilson, D.N., & Hall, T. (1998). Perceptions of software quality: a pilot study. Software Quality Journal, 7(1), 67–75.
Woodfield, S.N. , Dunsmore, H.E., & Shen, V.Y. (1981). The effect of modularization and comments on program comprehension. In: Proceedings of the 5th international conference on Software engineering, 215–223.
Yip, S.W.L., & Lam, T. (1994). A software maintenance survey. In: Software Engineering Conference, 1994 Proceedings. First Asia-Pacific, 70–79.
Yip, S.W. (1995). Software maintenance in Hong Kong. In: Proceedings of the 1995 International Conference on Software Maintenance. IEEE Computer Society Press: Los Alamitos CA, 88–95.

QR CODE