O'Reilly logo

Essentials of Software Engineering, 3rd Edition by Barbara Bernal, Orlando Karam, Frank Tsui

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The nodes in this figure represent the people, and the lines represent the communica-
tion paths. The number of possible communications paths more than doubled when the
number of team members increased from four to six.
In general, the number of communication paths for
n people is SUM(n–1), where SUM is
the arithmetic sum function of
1, 2, . . . , n. Thus a modest increase from a 4-person team
to a 12-person team would increase the potential number of communication paths from
6 to 66. A tripling of a small team would increase the potential communication paths by
more than ten times!
Associated with this increase in the sheer number of communication paths is the
chance of an error in communications. Consider, for example, that the chance of com-
municating correctly a particular message between any two people is 2/3. The prob-
ability that we will communicate properly from one person to another and then from
that second person to a third person would be (2/3 3 2/3) = 4/9. In general, for n people
where n is 2 or more, the probability of correctly communicating this message would be
(2/3)
n21
. Thus for this message, there is only a 16/81 chance of correctly passing it from
the first person to the fifth person in the team. Suddenly, we have reduced a 2/3 chance
of correctly communicating a message to less than 1/4. Such a low probability of correct
communication among team members may be a serious problem, especially if the mes-
sage is critical. Organizational structures of people need to be put in place to reduce the
complexity and increase the chance of correct communications.
2.2 Building a Hypothetical System
In this section we will use a hypothetical payroll system to illustrate some of the prob-
lems introduced in Section 2.1. The discussion here will cover the major tasks of develop-
ing such a system and of supporting the system once it is released to users. The intent
of this section is to provide only a glimpse of the different problems and concerns that
arise in building our system but not to delve into all the details of constructing and sup-
porting this system.
2.2.1 Requirements of the Payroll System
Everyone has some idea of what a payroll system is. Take a moment to think about what
you would consider as the major functional and the nonfunctional requirements of a
Figure 2.4 Maximizing communication paths.
1 path 6 paths 15 paths
30 Chapter 2 Building a System
91998_CH02_Tsui.indd 30 1/5/13 6:57:59 AM

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required