Basic Search / Detailed Display

Author: 陳皆成
Jie-Cherng Chen
Thesis Title: 影響軟體可維護性之軟體發展問題因素與專案屬性之研究
A study of software development problem factors and project attributes affecting software maintainability
Advisor: 黃世禎
Sun-Jen Huang
Committee: 李國光
Gwo-Guang Lee
Yuan-Cheng Lai
Wen-Kui Chang
Degree: 博士
Department: 管理學院 - 資訊管理系
Department of Information Management
Thesis Publication Year: 2009
Graduation Academic Year: 97
Language: 英文
Pages: 72
Keywords (in Chinese): 軟體委外軟體流程改善軟體可維護性軟體發展問題因素多重角色衝突
Keywords (in other languages): Outsourcing, Software Process Improvement, Software Maintainability, Software Development Problem Factors, Inter-Role Conflict
Reference times: Clicks: 495Downloads: 23
School Collection Retrieve National Library Collection Retrieve Error Report


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.