Page 121 -
P. 121
92 PART TWO MANAGING SOFTWARE PROJECTS
The feature point measure accommodates applications in which algorithmic complex-
ity is high. Real-time, process control and embedded software applications tend to have
high algorithmic complexity and are therefore amenable to the feature point.
To compute the feature point, information domain values are again counted and
weighted as described in Section 4.3.2. In addition, the feature point metric counts a
new software characteristic—algorithms. An algorithm is defined as "a bounded com-
putational problem that is included within a specific computer program” [JON91]. Invert-
WebRef ing a matrix, decoding a bit string, or handling an interrupt are all examples of algorithms.
A useful FAQ on function Another function point extension for real-time systems and engineered products
points (and extended has been developed by Boeing. The Boeing approach integrates the data dimension
function points) can be
obtained at of software with the functional and control dimensions to provide a function-oriented
http://ourworld. measure amenable to applications that emphasize function and control capabilities.
compuserve.com/ Called the 3D function point [WHI95], characteristics of all three software dimensions
homepages/
softcomp/ are “counted, quantified, and transformed” into a measure that provides an indica-
tion of the functionality delivered by the software. 6
The data dimension is evaluated in much the same way as described in Section
4.3.2. Counts of retained data (the internal program data structure; e.g., files) and
external data (inputs, outputs, inquiries, and external references) are used along with
measures of complexity to derive a data dimension count. The functional dimension
is measured by considering “the number of internal operations required to transform
input to output data” [WHI95]. For the purposes of 3D function point computation, a
“transformation” is viewed as a series of processing steps that are constrained by a
set of semantic statements. The control dimension is measured by counting the num-
ber of transitions between states. 7
A state represents some externally observable mode of behavior, and a transition
occurs as a result of some event that causes the software or system to change its
mode of behavior (i.e., to change state). For example, a wireless phone contains soft-
ware that supports auto dial functions. To enter the auto-dial state from a resting state,
the user presses an Auto key on the keypad. This event causes an LCD display to
prompt for a code that will indicate the party to be called. Upon entry of the code and
hitting the Dial key (another event), the wireless phone software makes a transition
to the dialing state. When computing 3D function points, transitions are not assigned
a complexity value.
To compute 3D function points, the following relationship is used:
index = I + O + Q + F + E + T + R (4-2)
6 It should be noted that other extensions to function points for application in real-time software
work (e.g., [ALA97]) have also been proposed. However, none of these appears to be widely used
in the industry.
7 A detailed discussion of the behavioral dimension, including states and state transitions, is pre-
sented in Chapter 12.