Bog'liq Software Engineering Architecture-driven Software Development ( PDFDrive )
180 CHAPTER 10 Formulating the Functional Architecture
software requirements describe the software product from an operational or
business process perspective, the identification of primary functions may not
correspond to or coincide with the requirements. This may be reflective of the
terminology used to describe the operational or business process. The software
requirements must be translated into software functions that reflect semantics
associated with the appropriate software domain. A software domain reflects a
field of study that defines a set of common requirements, terminology, and func-
tionality for any software program constructed to solve a problem in that field.
2. Decompose primary functions. The primary functions can be assumed to be
complex since they have been derived from the operational or business process
descriptions. Each complex function represents a software task of which the
solution is too extensive or challenging to comprehend. Functional decom-
position involves reducing complexity by investigating the problem space to
improve the understanding from which a design solution can be conceived.
●
Functional decomposition. Functional decomposition identifies the proce-
dural operations by which a complex function will be performed. In most
cases, there are multiple approaches by which a complex function can be
accomplished, and each design approach or alternative will exhibit different
performance and architectural quality characteristics.
●
Model functional behaviors. Construct a model of how the function behaves
by identifying the functional sequences, data items, and control mechanism
necessary to perform the source function. The performance characteristics
and resource utilization criteria specified for the source function must be
budgeted or allocated among subfunctions.
●
Evaluate alternative approaches. Every functional decomposition or behav-
ioral model involves design alternatives. Contending alternatives should
utilize the software analysis activity to evaluate, prioritize, and select a pre-
ferred solution. Each solution should be assessed to understand its effective-
ness, suitability, and risks in terms of satisfying the specified performance
requirements and desired software quality characteristics.
●
Identify implied behaviors. Functional solutions should be evaluated to iden-
tify inferred, complementary, or supplementary behaviors that enhance the
data processing thoroughness. It should be assumed that the specification is
incomplete and has converged on a suitable expression of the data process-
ing actions. The functional solution must be meticulously evaluated to iden-
tify behaviors needed to contend with every possible situation that may arise
during data processing.
●
Optimize the functional solution. The functional solution should be evaluated
to identify aspects that have the largest influence on software performance
and resource utilization. Important aspects of the initial functional solution
should be refined to increase the effectiveness of the solution, such as data
integrity, possible causes of failure conditions, input/output data item defini-
tions, and the precision of data transformation algorithms.