Page 151 -
P. 151
122 PART TWO MANAGING SOFTWARE PROJECTS
built for the current project. Members of the current software team have had
full experience in the application area represented by these components.
Therefore, modifications required for full-experience components will be rel-
atively low-risk.
Partial-experience components. Existing specifications, designs, code, or
test data developed for past projects that are related to the software to be
built for the current project but will require substantial modification. Mem-
bers of the current software team have only limited experience in the appli-
cation area represented by these components. Therefore, modifications
required for partial-experience components have a fair degree of risk.
New components. Software components that must be built by the soft-
ware team specifically for the needs of the current project.
The following guidelines should be considered by the software planner when
reusable components are specified as a resource:
? What issues 1. If off-the-shelf components meet project requirements, acquire them. The
should we
cost for acquisition and integration of off-the-shelf components will almost
consider when we always be less than the cost to develop equivalent software. In addition, risk
6
plan to reuse
existing software is relatively low.
components? 2. If full-experience components are available, the risks associated with modifi-
cation and integration are generally acceptable. The project plan should
reflect the use of these components.
3. If partial-experience components are available, their use for the current proj-
ect must be analyzed. If extensive modification is required before the compo-
nents can be properly integrated with other elements of the software,
proceed carefully—risk is high. The cost to modify partial-experience compo-
nents can sometimes be greater than the cost to develop new components.
Ironically, reusable software components are often neglected during planning, only
to become a paramount concern during the development phase of the software
process. It is better to specify software resource requirements early. In this way tech-
nical evaluation of the alternatives can be conducted and timely acquisition can occur.
5.4.3 Environmental Resources
The environment that supports the software project, often called the software engi-
neering environment (SEE), incorporates hardware and software. Hardware provides
a platform that supports the tools (software) required to produce the work products
7
that are an outcome of good software engineering practice. Because most software
6 When existing software components are used during a project, the overall cost reduction can be
dramatic. In fact, industry data indicate that cost, time to market, and the number of defects
delivered to the field all are reduced.
7 Other hardware—the target environment—is the computer on which the software will execute
when it has been released to the end-user.