Bog'liq Software Engineering Architecture-driven Software Development ( PDFDrive )
140 CHAPTER 8 Software Requirements Analysis Practice
Software requirement analysis is the software engineering practice that, at the top
level of the software architecture, translates stakeholder needs and expectations into a
viable set of software requirements. As the software product architecture is systemat-
ically revealed, these tasks should be selectively applied to specify the requirements
for each element of the architecture. This set of tasks applies to the software prod-
uct (application and computing environment), as well as post-development software
sustainment processes. Software requirements analysis involves a set of analyses and
assessments to examine stakeholder needs and software requirements to comprehend
the implications of each requirement on the scope of the development effort.
The complexity associated with the design solution must be understood before
the requirements are baselined and placed under configuration control. In addition,
requirements analysis must assess the feasibility of satisfying the complete set of
software requirements within program cost and schedule constraints. This can only
be achieved by exploring the solution space for each requirement and correlating the
sensitivity of project variables to various levels of performance. This may necessitate
conducting exploratory architectural investigations (functional analysis and applica-
tion design synthesis) and trade-off analyses to achieve a balanced set of requirements
that can be successfully implemented within program cost and schedule objectives.
This chapter discusses the primary tasks that are involved with software require-
ments analysis given the environment the application is constrained to operate within.
This involves exploration of the operational and sustainment processes to determine
the functional and performance characteristics needed to satisfy the stakeholder of
the software product. The execution of these software requirements analysis tasks
results in the generation of specifications for the software product (computing envi-
ronment, software application, the application interfaces) and the software sustain-
ment processes. These specifications must be informally controlled until the product
design is determined to be sufficiently defined and agreed upon by stakeholders to be
placed under configuration control. The baseline software requirements and interface
specifications form the basis for the software test and evaluation effort.
Figure 8.1
depicts the tasks that contribute to software requirements analysis.
These tasks have been classified to emphasize the area of investigation each task
addresses. These categories include project, operational, product, and post-development
process analyses, and project assessment. The analytical tasks are intended to examine
the software product to understand it in the context of its project, operational, and sus-
tainment environments. Project assessment tasks are performed on preliminary require-
ments to understand the feasibility of achieving project objectives if the requirements
are to be endorsed, baselined, and placed under project configuration control.