Bog'liq Software Engineering Architecture-driven Software Development ( PDFDrive )
186 CHAPTER 11 Functional Analysis and Allocation Practice
for which a design solution can be unambiguously distinguished. The result of
the functional decomposition is a functional hierarchy that depicts the manner in
which complex functions have been simplified, clarified, and specified.
2. Behavioral analysis —involves an integrated modeling approach to postulate
how the software product will execute a sequence of functions to perform opera-
tional transactions or data processing actions. Behavioral analysis results in
integrated behavioral models that involve functional flows, control flows, data
flows, and resource utilization.
3. Performance allocation —allocates software performance requirements among
the functional elements of the behavioral model and computing environment.
Software product performance is reliant on the computing environment perfor-
mance characteristics that may need to be augmented as a result of the func-
tional analysis activity.
4. Architectural assessment —review of the evolving functional architecture to
ensure that the software requirements are being satisfied, the projected software
performance will tolerate anticipated utilization loads, and the functional archi-
tecture is noncomplex and will facilitate product sustainment and enhancement
throughout its life cycle.
The functional behavior model represents the decomposition of the operational
model with a focus on comprehending the software product’s functional and per-
formance qualities. The behavior model is derived to explicitly specify the software
response to a variety of stimuli and inputs. As the software behaviors are explored,
the specified software requirements may need to be revised to reflect the level of
performance that can be achieved given the limitation of the computing environ-
ment. Behavioral alternatives should be investigated before embracing a solution
with which to proceed into design synthesis. Competing alternatives should be eval-
uated via trade-off analysis and risk assessments to aid the selection of the optimal
alternative in terms of life-cycle costs, risks, and performance.
Functional analysis identifies data processing operations or
what the software
product is expected to do to support the operational or business process. Functional
analysis should not impose structural design or implementation details. This
implies that it is not necessary to completely specify computational constructs,
data structures, or resource characteristics. The software design synthesis practice
establishes the structural composition, arrangement, and design specifications for
the elements of the physical architecture. Software design synthesis configures the
physical architecture that identifies
how the software product will be structured to
provide the specified functionality.
The approach to functional analysis and allocation described in this chapter
has been adapted from the systems engineering discipline. It has been modified
to address the unique challenges associated with the design of software products
independent of the implementation language. However, key software implementa-
tion personnel should participate in the functional analysis activity to ensure that
the functional architecture can be realized given the implementation language con-
straints.
Figure 11.1
depicts the tasks that contribute to software functional analysis
and allocation.