CSCI 5828

Foundations of Software Engineering

Course Location
   1B 28

Course Time
   Tuesday and Thursday
   11:00 AM - 12:15 PM

   What's New (Home)
   Class Schedule
   Student Comments
   Contact Information
   Evaluation Criteria
   Status Reports

What's New Archives
   January, 1999
   February, 1999
   March, 1999


In regard to the number of communication channels given the number of people working on a software project, I would like to offer the following observations.

Assuming 200 people on the team, it is unlikely that 19,900 communication channels will develop. This high number would indicate that each person must communicate with the other 199 in order to participate. Conventional social theory has indicated this does not happen, though the actual number of communication channels may still be quite large. The point is that citing the formula for the number of edges in a fully-connected graph is misleading (but not entirely inaccurate, either).

Structures like the surgical team are simply a method of formally defining the roles and communication channels identified as necessary and/or productive. Notice that the structure of the surgical team is hierarchical in nature. Referring to graph theory in this case, the number of edges is linear with respect to the number of nodes (as it is with any tree).

But this carries with it an important analogy. Specifically, defining a team according to the surgical team (or a similar structure) is analogous to the high cohesion/low coupling that is desired in the software project itself. Members of the team are given well-defined roles (high cohesion), and the communication channels are limited to what is necessary for proper interaction (low coupling). This indicates that cohesion and coupling (on all levels) are more important factors in successful software projects than previously identified.

In fact, one can further extend the analogy by defining conceptual integrity in terms of high cohesion and low coupling. For example, high cohesion is implied by conceptual integrity, though this may be seen from a different perspective, so that high cohesion helps define conceptual integrity (which currently has something of an amorphous definition).

Nathan D Ryan

© Ken Anderson, 1999.
Last Updated: 8/16/00; 2:46:06 PM