Modeling Coordination in Software Construction: An Analytical Approach

Software development projects are typically team efforts, wherein groups of specialists work toward the common goal of building a software system. The individual efforts of team members need to be coordinated to ensure product quality and effectiveness of the team. In this paper we model the process of coordination in the construction phase of incrementally developed, modular software systems. The analytical model proposed here supports macro-level decisions regarding the development team size and the coordination policy, based upon micro-level interactions between the modules in a system. The objective in this model is to minimize the effort spent on coordination activities subject to the requirement that the system must be completed within a specified period. Results from the model are used to examine coordination related trade-offs. We show that: 1 more complex systems need a higher level of coordination than simpler ones, 2 if the time available for construction reduces, it is optimal to reduce the level of coordination, and 3 marginal productive output is a diminishing function of team size. The sensitivity of the analytical model with respect to its assumptions is studied by constructing a set of simulation experiments where these assumptions are relaxed. The results of these experiments provide support in establishing the robustness of the analytical model.

[1]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[2]  Thomas W. Malone,et al.  Modeling Coordination in Organizations and Markets , 1987 .

[3]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[4]  Cynthia Mathis Beath,et al.  Departmentalization in software development and maintenance , 1990, CACM.

[5]  Michael G. Walker Managing Software Reliability: The Paradigmatic Approach , 1981 .

[6]  Inderpal S. Bhandari,et al.  A Case Study of Software Process Improvement During Development , 1993, IEEE Trans. Software Eng..

[7]  Steven P. Reiss,et al.  Support for Maintaining Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

[8]  Randy H. Katz,et al.  Toward a unified framework for version modeling in engineering databases , 1990, CSUR.

[9]  Stephen S. Yau,et al.  Design Stability Measures for Software Maintenance , 1985, IEEE Transactions on Software Engineering.

[10]  F. T. Baker,et al.  Chief Programmer Team Management of Production Programming , 1972, IBM Syst. J..

[11]  M. J. Safoutin,et al.  A communications-based technique for interdisciplinary design team management , 1993 .

[12]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[13]  Soumitra Sarkar,et al.  Providing Customized Assistance for Software Lifecycle Approaches , 1988, IEEE Trans. Software Eng..

[14]  Atul Prakash,et al.  Programming in the large , 1986, IEEE Transactions on Software Engineering.

[15]  John H. Rowland,et al.  An Empirical Study of Testing and Integration Strategies Using Artificial Software Systems , 1993, IEEE Trans. Software Eng..

[16]  James J. Solberg,et al.  Operations Research: Principles and Practice. , 1977 .

[17]  Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[18]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[19]  Keith H. Bennett,et al.  Approaches to program comprehension , 1991, J. Syst. Softw..

[20]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1980, IEEE Trans. Software Eng..

[21]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[22]  T. Tamai Experiment on coordination within software development teams , 1992, Inf. Softw. Technol..

[23]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[24]  Jr. Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[25]  Alan J. Mayne,et al.  Introduction to Simulation and SLAM , 1979 .

[26]  Yair Wand,et al.  An Automated Approach to Information Systems Decomposition , 1992, IEEE Trans. Software Eng..

[27]  Boris Beizer,et al.  Software System Testing and Quality Assurance , 1984 .

[28]  Randy H. Katz,et al.  Database Support for Versions and Alternatives of Large Design Files , 1984, IEEE Transactions on Software Engineering.

[29]  Roger King,et al.  The Cactis Project: Database Support for Software Environment , 1988, IEEE Trans. Software Eng..

[30]  Klaus R. Dittrich,et al.  Version Support for Engineering Database Systems , 1988, IEEE Trans. Software Eng..

[31]  Milton Abramowitz,et al.  Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables , 1964 .

[32]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[33]  Norman F. Schneidewind,et al.  The State of Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[34]  Michael Hammer,et al.  Reengineering Work: Don’t Automate, Obliterate , 1990 .