Page History
...
Div | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
1. Requirements4.1.2.2 The project manager shall perform software requirements analysis based on flowed-down and derived requirements from the top-level systems engineering requirements and the hardware specifications and design. 1.1 NotesNPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement. 1.2 Applicability Across ClassesIf Class D software is safety critical, this requirement applies to the safety-critical aspects of the software.
|
Div | ||
---|---|---|
| ||
2. Rationale
Analyzing software requirements allows a team to ensure that they are properly formed and accurately and clearly describe the software system to be built. Analysis provides a structured method of reviewing requirements to identify any issues with them individually or as a collected set. The team can address identified issues before using the requirements for further project work. This reduces the need for future rework, not only of the requirements, but also of any work based on those requirements. |
Div | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. GuidanceThe software requirements analysis determines the requirement's safety criticality, correctness, consistency, clarity, completeness, traceability, feasibility, verifiability, and maintainability. The software requirements analysis activities include the allocation of functional, non-functional, and performance requirements to functions and sub functions.
Requirements are not incorporated into the software requirements specification until the analysis process has been completed. The requirements analysis methodology needs to be "measurable or otherwise verifiable."
Regardless of the methods chosen, the project team documents the methodology used for software requirements analysis in an appropriate project document, such as the Software Development Plan/Software Management Plan (SDP/SMP), and includes some minimum steps:
The team may perform analysis of software requirements in conjunction with the allocation of requirements to various levels of functions and sub-functions. Guidance on logical decomposition of requirements may be found in SWE-050. The following roles may be involved in software requirements analysis:
Software requirements analysis begins after the System Requirements Review (SRR). The development team analyzes the software requirements for completeness and feasibility. The development team uses structured or object-oriented analysis and a requirements classification methodology to clarify and amplify the requirements. Prioritizing requirements may also occur as part of requirements analysis. Developers work closely with the requirements definition team to resolve ambiguities, discrepancies, and to-be determined (TBD) requirements or specifications. The theme of reuse plays a prominent role throughout requirements analysis and the design phase. Special emphasis is placed on identifying potentially reusable architectures, designs, code, and approaches. When requirements analysis is complete, the development team prepares a summary requirements analysis report and holds a Software Requirements Review (SwRR). During the SwRR, the development team presents the results of their analysis for evaluation. Following the SwRR, the requirements definition team updates the requirements document to incorporate any necessary modifications and the requirements analysis is revised based on changes to requirements made after SwRR. This revision work is completed by Preliminary Design Review (PDR) at the same time the requirements are finalized. Software requirements analysis is a continuous activity performed on all software requirements and software requirement changes. Use of formal inspections is an excellent method of reviewing requirements with stakeholders because it brings multiple viewpoints to bear and also achieves a common understanding of the requirements. Information on formal inspections can be found in SWE-087. Software peer reviews/inspections (SWE-088, SWE-089) are a recommended best practice for all safety and mission-success related requirements, design and code software components. Guidelines for software peer reviews/inspections are contained in the NASA Software Formal Inspections Standard (NASA-STD-2202-93).
Determine safety criticality Software safety personnel need to be involved in the analysis of software requirements to determine their safety criticality. Software safety personnel analyze software requirements in terms of safety objectives to determine whether each requirement has safety implications. Those requirements with safety implications are designated, marked, and tracked as "safety-critical." Additional analysis steps typically performed by software safety personnel include:
Determine correctness Requirements are considered correct if they "respond properly to situations"
Determine consistency Requirements are consistent if they do not conflict with each other within the same requirements set and if they do not conflict with system (or higher-level) requirements. It is helpful to have at least one person read through the entire set of requirements to confirm the use of consistent terms/terminology throughout. Determine clarity Requirements are clear if they are precise, unequivocal, and unambiguous ("can only be interpreted one way"
Suggested methods for confirming the clarity of requirements include:
Determine completeness Requirements are complete if there are no omissions or undefined conditions in the requirements set. Requirements are also complete if there are no "TBDs" in the requirements set. Suggested methods for confirming the completeness of requirements include:
Determine traceability When determining requirement traceability, the team ensures that requirements trace bi-directionally so that all software requirements have a parent (higher level) requirement and all levels of software requirements and flowed down to the appropriate detailed (lower) levels for implementation. In order for requirements to be properly traced, they are also uniquely identified. Suggested methods for this type of analysis include:
Determine feasibility Technically feasible requirements are reasonable, realistic requirements that can be implemented and integrated together successfully to meet the operational concepts and system requirements of the project within the given operating environment, budget, schedule, available technology, and other constraints.
Suggested methods for this type of analysis include:
Determine verifiability Requirements are verifiable if they are testable, if there is “a technique to verify and/or validate the requirement."
Suggested methods for determining if requirements are verifiable include:
Determine maintainability Requirements are maintainable if they are "written so that ripple effects from changes are minimized (i.e., requirements are as weakly coupled as possible)."
Communicate outcome Although not part of the engineering requirement, it is recommended that results of software requirements analysis be captured in the project documentation and communicated to those who need this information to make decisions or to develop (or update) project documents. The stakeholders and the project will decide how to address the results of the analysis, including any changes that need to be made to address findings. The methodology used for the software requirements analysis and the results of the software requirements analysis are communicated at multiple project formal reviews as defined in the software development or management plan. Specifically, according to the NASA Software Safety Standard (NASA-STD-8719.13)
When capturing the results of software requirements analysis, consider the following content:
Consult Center Process Asset Libraries (PALs) for Center-specific guidance and resources related to software requirements analysis, including relevant checklists. NASA-specific requirements analysis process information and resources are available in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook. Additional guidance related to software requirements analysis may be found in the following related requirements in this Handbook:
|
Div | ||
---|---|---|
| ||
4. Small ProjectsProjects with small budgets or limited personnel may choose to limit the number of reviews involved in software requirements analysis. It is important in this situation to avoid skipping any important analysis activities. Consider using checklists or other guides to ensure all analysis elements are addressed. Additionally, multiple roles may be filled by a single person on small projects, so it may be helpful to request assistance from experts outside the project when conducting requirements analysis. These persons can provide "fresh eyes" as well as specific key perspectives that may not be available on the core project team. |
Div | |||
---|---|---|---|
| |||
5. Resources
|
Div | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
6. Lessons LearnedThe NASA Lessons Learned database contains the following lessons learned related to software requirements analysis:
|