Page 150 -
P. 150
CHAPTER 5 SOFTWARE PROJECT PLANNING 121
FIGURE 5.2
Project
resources
People
Reusable software
components
Hardware/software tools
ment of availability, time when the resource will be required; duration of time that
resource will be applied. The last two characteristics can be viewed as a time win-
dow. Availability of the resource for a specified window must be established at the
earliest practical time.
5.4.1 Human Resources
XRef
The roles software The planner begins by evaluating scope and selecting the skills required to complete
people play and the development. Both organizational position (e.g., manager, senior software engineer)
team organizations
that they populate are and specialty (e.g., telecommunications, database, client/server) are specified. For
discussed in Chapter 3. relatively small projects (one person-year or less), a single individual may perform
all software engineering tasks, consulting with specialists as required.
The number of people required for a software project can be determined only after
an estimate of development effort (e.g., person-months) is made. Techniques for esti-
mating effort are discussed later in this chapter.
5.4.2 Reusable Software Resources
5
Component-based software engineering (CBSE) emphasizes reusability—that is, the
creation and reuse of software building blocks [HOO91]. Such building blocks, often
To be reused
effectively, software called components, must be cataloged for easy reference, standardized for easy appli-
components must be cation, and validated for easy integration.
cataloged, Bennatan [BEN92] suggests four software resource categories that should be con-
standardized, and sidered as planning proceeds:
validated.
Off-the-shelf components. Existing software that can be acquired from a
third party or that has been developed internally for a past project. COTS
(commercial off-the-shelf) components are purchased from a third party, are
ready for use on the current project, and have been fully validated.
Full-experience components. Existing specifications, designs, code, or
test data developed for past projects that are similar to the software to be
5 Component-based software engineering is considered in detail in Chapter 27.