skip to main content
article

Parallel changes in large-scale software development: an observational case study

Published:01 July 2001Publication History
Skip Abstract Section

Abstract

An essential characteristic of large-scale software development is parallel development by teams of developers. How this parallel development is structured and supported has a profound effect on both the quality and timeliness of the product. We conduct an observational case study in which we collect and analyze the change and configuration management history of a legacy system to delineate the boundaries of, and to understand the nature of, the problems encountered in parallel development. The results of our studies are (1) that the degree of parallelism is very highhigher than considered by tool builders; (2) there are multiple levels of parallelism, and the data for some important aspects are uniform and consistent for all levels; (3) the tails of the distributions are long, indicating the tail, rather than the mean, must receive serious attention in providing solutions for these problems; and (4) there is a significant correlation between the degree of parallel work on a given component and the number of quality problems it has. Thus, the results of this study are important both for tool builders and for process and project engineers.

References

  1. BOX,G.E.,HUNTER,W.G.,AND HUNTER, J. S. 1978. Statistics for Experimenters. John Wiley and Sons, Inc., New York, NY.Google ScholarGoogle Scholar
  2. BROOKS, F. P. 1987. No silver bullet: Essence and accidents of software engineering. IEEE Computer 20, 4 (Apr.), 10-19. Google ScholarGoogle Scholar
  3. CHAMBERS,J.M.,CLEVELAND,W.S.,KLEINER, B., AND TUKEY, P. A. 1983. Graphical Methods for Data Analysis. Wadsworth Publ. Co., Belmont, CA.Google ScholarGoogle Scholar
  4. CLEMM,G.AND OSTERWEIL, L. 1990. A mechanism for environment integration. ACM Trans. Program. Lang. Syst. 12, 1 (Jan.), 2-25. Google ScholarGoogle Scholar
  5. CUSUMANO,M.A.AND SELBY, R. W. 1995. Microsoft Secrets. The Free Press, New York, NY.Google ScholarGoogle Scholar
  6. EICK,S.G.,GRAVES,T.L.,KARR,A.F.,MARRON,J.S.,AND MOCKUS, A. 2001. Does code decay? Assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27,1 (Jan.), 1-12. Google ScholarGoogle Scholar
  7. ESTUBLIER, J. 1994. The Adele configuration manager. In Configuration Management,W.F. Tichy, Ed. Trends in Software, vol. 2. John Wiley and Sons, Inc., New York, NY, 99-133. Google ScholarGoogle Scholar
  8. GLASSER,B.G.AND STRAUSS, A. L. 1967. The Discovery of Grounded Theory: Strategies for Qualitative Research. Aldine-Atherton, Chicago, IL.Google ScholarGoogle Scholar
  9. GRAVES,T.L.,KARR,A.F.,MARRON,J.S.,AND SIY, H. P. 2000. Predicting fault incidence using software change history. IEEE Trans. Softw. Eng. 26, 7 (July), 653-661. Google ScholarGoogle Scholar
  10. GRINTER, R. E. 1997. Doing software development: Occasions for automation and formalisation. In Proceedings of the Fifth European Conference on Computer Supported Cooperative Work (ECSCW'97), J. Hughes, Ed. Kluwer Academic, Dordrecht, Netherlands. Google ScholarGoogle Scholar
  11. HORWITZ, S., PRINS, J., AND REPS, T. 1989. Integrating noninterfering versions of programs. ACM Trans. Program. Lang. Syst. 11, 3 (July), 345-387. Google ScholarGoogle Scholar
  12. JUDD,C.M.,SMITH,E.R.,AND KIDDER, L. H. 1991. Research Methods in Social Relations. Harcourt Brace Jovanovich College Publishers.Google ScholarGoogle Scholar
  13. KAISER,G.E.AND PERRY, D. E. 1987. Workspaces and experimental databases: Automated support for software maintenance and evolution. In Proceedings of the 1987 International Conference on Software Maintenance (Austin, TX, Sept.). 108-114.Google ScholarGoogle Scholar
  14. LEBLANG, D. B. 1994. The CM challenge: Configuration management that works. In Configuration Management, W. F. Tichy, Ed. Trends in Software, vol. 2. John Wiley and Sons, Inc., New York, NY, 1-38. Google ScholarGoogle Scholar
  15. LEHMAN,M.M.,PERRY,D.E.,AND RAMIL, J. F. 1998. Implications of evolution metrics on software maintenance. In Proceedings of the International Conference on Software Mainte-nance (Nov.). 208-217. Google ScholarGoogle Scholar
  16. MAHLER, A. 1994. Variants: keeping things together and telling them apart. In Configuration Management, W. F. Tichy, Ed. Trends in Software, vol. 2. John Wiley and Sons, Inc., New York, NY, 73-97. Google ScholarGoogle Scholar
  17. MARTERSTECK,K.AND SPENCER, A. 1985. Introduction to the 5ESS TM switching system. AT&T Tech. J. 64, 6 (July-Aug.), 1305-1314.Google ScholarGoogle Scholar
  18. MOCKUS,A.AND VOTTA, L. 2000. Identifying reasons for software changes using historic databases. In Proceedings of the 2000 International Conference on Software Maintenance (San Jose, CA). Google ScholarGoogle Scholar
  19. PAULK, M., CURTIS, B., CHRISSIS, M., AND WEBER, C. 1993. Capability maturity model for software: Version 1.1. Tech. Rep. CMU/SEI-93-TR-24. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA.Google ScholarGoogle Scholar
  20. PERRY, D. E. 1989. The Inscape environment. In Proceedings of the 11th International Conference on Software Engineering (ICSE '89, May). IEEE Press, Piscataway, NJ, 2-12. Google ScholarGoogle Scholar
  21. PERRY, D. E. 1996. System compositions and shared dependencies. In Proceedings of the 6th Workshop on Software Configuration Management (Berlin, Germany, Mar.). Google ScholarGoogle Scholar
  22. ROCHKIND, M. J. 1975. The source code control system. IEEE Trans. Softw. Eng. SE-1,4 (Dec.), 364-370.Google ScholarGoogle Scholar
  23. STAUDENMAYER, N., GRAVES, T., MARRON,J.S.,MOCKUS, A., PERRY, D., SIY, H., AND VOTTA, L. 1998. Adapting to a new environment: How a legacy software organization copes with volatility and change. In Proceedings of the 5th International Product Development Management Conference (Como, Italy, May).Google ScholarGoogle Scholar
  24. TICHY, W. 1982. Design, implementation and evaluation of a revision control system. In Proceedings of the 6th International Conference on Software Engineering (ICSE '82, Tokyo, Japan, Sept.). IEEE Computer Society Press, Los Alamitos, CA, 58-67. Google ScholarGoogle Scholar
  25. TUSCANY, P. A. 1987. Software development environment for large switching projects. In Proceedings of the Conference on Software Engineering for Telecommunications Switching Systems.Google ScholarGoogle Scholar
  26. YIN, R. K. 1994. Case Study Research: Design and Methods. 2nd ed. Sage Publications, Inc., Thousand Oaks, CA.Google ScholarGoogle Scholar

Index Terms

  1. Parallel changes in large-scale software development: an observational case study

            Recommendations

            Reviews

            Stanley G. Siegel

            Conflict-free modification, correction and integration of changes for extremely large, long-lived, multi-version software systems developed in parallel by large teams poses severe problems with respect to avoiding logical and semantic interference of changes. This paper describes the first phase of the Code Decay Project, a long-range, multidisciplinary and multi-institution project. Based on change and quality history data (from April 1984 to April 1996) from one of the 50 subsystems of Lucent Technologies’ 5ESS, involving 50 to 200 developers, the authors propose and prove several interesting hypotheses about the interference of changes in parallel versions: Up to 60 percent of the system’s modules were affected by changes At certain times some modules existed in 2 to 16 parallel versions Frequently, multiple levels of parallel development are found, involving several change requests and many modules 12.5 percent of changes are performed by different developers (due to different change requests) on the same files There is a significant correlation between files with a high degree of parallel development and the number of defects The distribution of most of the data shows a very wide spread, even for rather small medians The paper is well written, instructive and highly relevant for change teams, software management (especially configuration management), and for developers of configuration and version management tools. It is also a very instructive prototype of quantitative research in software engineering, giving software research a more scientific basis. Online Computing Reviews Service

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader