Bog'liq Software Engineering Architecture-driven Software Development ( PDFDrive )
175 10.1 Motivation for the functional architecture
The functional analysis and allocation practice provides an approach for trans-
forming software requirements into the functional transactions that the software
product must enable. The functional architecture represents a comprehensive, inte-
grated set of data processing transactions. Functional analysis and allocation is
employed to achieve the following six fundamental design challenges confronting
software product quality.
1. Elaborating a solution. The design solution involves many individual software
elements that must work together to support the business or operational process.
This encompasses numerous data processing transactions, services, or threads
of behavior. Software data processing transactions involve many analytical com-
binations and permutations that are difficult to comprehend. Functional analy-
sis provides the means for identifying the myriad of possible data processing
sequences the software must facilitate. The functional analysis and allocation
practice systematically identifies and investigates discrete transactional threads
to completely specify a functional solution.
2. Clarifying ambiguity. Language, which is used to communicate and express
requirements, involves imprecise, vague, unclear, ill-defined, inexact, nebulous
words and expressions. Functional analysis ensures that every function is clearly
specified so that no misunderstanding exists in the description of the functional
solution.
3. Resolving assumptions. All assumptions must be resolved with stakeholders
before a solution can be finalized. Assumptions that are not challenged and
resolved may result in a software product that does not effectively satisfy cus-
tomer needs and expectations. Functional analysis can be used to speculate
about and evaluate assumptions, thereby eliminating judgment or opinions as
the basis for product design. Functional analysis accentuates the existence of
incomplete or inconclusive information to draw attention to suppositions that
are not substantiated.
4. Achieving performance objectives. Specified performance requirements or objec-
tives must be comprehended and the software product designed to achieve these
criteria. Software design techniques, drawings, and models must be utilized that
exhibit software performance characteristics. Performance measures at the soft-
ware product level must be allocated to provide lower-level design aspirations.
Initial performance budgets must be established against which design strategies
can be assessed. Performance requirements can then be allocated and specified
for the design elements once the solution has been appraised to be suitable.
5. Determining resource utilization. Data processing efficiency and effectiveness
depends on the regulation of computing resource utilization. The functional
architecture must model resource utilization to permit the design to be opti-
mized for efficient and effective execution. The software design must be sensi-
tive to the impact of resource utilization on performance objectives.
6. Simplifying the solution. Complexity is never a desirable characteristic of any
software product. The user interface design and user interactions must not be