Page 112 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 112
Principles of Software Engineering
Notes smaller projects, often the required people are assigned together around the start of the project.
This approach can lead to some people being unoccupied at the start and toward the end. This
slack time is often used for supporting project activities like training and documentation.
Given the effort estimate for a phase, we can determine the duration of the phase if we know
the manpower ramp-up. For these three major phases, the percentage of the schedule consumed
in the build phase is smaller than the percentage of the effort consumed because this phase
involves more people. Similarly, the percentage of the schedule consumed in the design and
testing phases exceeds their effort percentages. The exact schedule depends on the planned
manpower ramp-up, and how many resources can be used effectively in a phase on that project.
Generally speaking, design requires about a quarter of the schedule, build consumes about half,
and integration and system testing consume the remaining quarter. COCOMO gives 19% for
design, 62% for programming, and 18% for integration.
Figure 5.7: Manpower Ramp-up in a Typical Project
5.7 Software Configuration Management
Configuration management (CM) is the regulation of domineering the evolution of complex
systems; software configuration management (SCM) is its specialization for computer programs
and associated documents. General CM is beneficial for any large system that. Due to its
complexity, cannot be made perfect for all the uses to which it will be put. Such a system will
be subject to numerous, sometimes conflicting changes during its lifetime, giving rise not to a
single system, but to a set of related systems, called a system family. A system family consists of a
number of components that can be configured to form individual family members. A substantial
number of the components must be shared among members to make the family economically
viable. Maintaining order in large and expanding system families is the goal of CM.
The SCM differs from general CM in the following two ways. First, software is easier to change
than hardware and it therefore changes faster. Even relatively small software systems, developed
by a single team, can experience a significant rate of change, and in large systems, such as
telecommunications systems, the update activities can totally overwhelm manual configuration
management procedures. Second, SCM is potentially more automatable.
Effective software configuration management coordinates programmers working in teams. It
improves productivity by reducing or eliminating some of the confusion caused by interaction
among team members. The coordinating functions of configuration management are introduced
below, and illustrated with questions or statements familiar to anyone who has worked in
software development.
106 LOVELY PROFESSIONAL UNIVERSITY