188
CHAPTER 11
Functional Analysis
and Allocation Practice
These functions should represent the primary functions that the software product
must perform. However, it may be desirable to group and organize these functions
around a software operational concept that involves some form of initial user iden-
tification and authentication or software application initiation and presentation of
the home graphical user interface. At this level, every function should be considered
complex since they are at the business process or operational level of abstraction.
The complexity of every function must be assessed
to determine if it necessi-
tates further decomposition to provide an uncomplicated, unambiguous functional
depiction. Functional complexity may be recognized when any of the following
conditions are evident:
●
The behavior of a function requires further clarification
to describe the transfor-
mation of inputs into the desired output or response.
●
Multiple approaches to providing the functionality can be conceptualized and
the most advantageous approach must be determined.
●
A function involves business rules or control logic that are ambiguous or
nebulous.
●
A function involves accessing multiple data storage or retrieval transactions.
●
A function involves inputs from multiple sources,
such as users, external sys-
tems, or other functions.
Functions that require further decomposition are labeled functional components.
The remainder of the functional analysis and allocation tasks should be performed to:
●
Define the behaviors of functional components.
●
Allocate software performance characteristics among functional components
and units.
●
Assess the suitability and completeness of the functional architecture.
●
Specify the design requirements for every element of the functional architecture.
As a rule of thumb, functional analysis continues until
a function is recognized of
which the implementation is noncomplex and its behavior can be specified without
further investigation. These noncomplex functional elements are labeled functional
units and represent the fundamental features from which the physical architecture
will be configured. The number of levels of decomposition
will vary throughout the
functional hierarchy due to the uneven complexity associated with a functional prob-
lem and its solution. It is not necessary to strive to have a uniform leveling through-
out the functional hierarchy. The intent is to ensure that the behavior of each function
is well understood and that each functional unit can be unambiguously specified and
implemented. Several guidelines apply to functional decomposition:
1.
A function cannot be decomposed into a single function.
Decomposition war-
rants the identification of at least two subfunctions.
2.
The need for further decomposition is driven by functional complexity, and
therefore the functional hierarchy will not be horizontally symmetrical or verti-
cally consistent in depth.