Page History
...
| Tabsetup | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Peer reviews or formal inspections are particularly important for the areas where the requirements seem the weakest or where the organization typically finds the most problems with requirements. 3. Checklists: Several checklists can be used to help analyze requirements. It is often useful to consider using one or more of these to supplement other analysis methods. The checklist SAANALYSIS is shown below (previously located in 7.18) is a good general checklist that covers many areas to be considered in your analysis. Click in the thumbnail to view it. From the viewer, you may download a copy for your use.
When evaluating the software requirements, consider the list of items below:
4. Traceability For the basic requirements on traceability, see SWE-052 in NASA-STD-8739.8. Software Assurance should be confirming that the bidirectional trace is complete and includes traces for all the levels specified in SWE-052. The requirements traceability matrix will show whether all of the system-level and higher-level requirements assigned to software have been addressed and broken down into software requirements that can be coded. It will also show whether any software requirements do not have parents (and may not be necessary). Traceability is important for the full life cycle since it will show where the requirements were allocated and are getting designed, implemented, and tested. Traceability is particularly important when there are changes that need to be addressed throughout the system. For example, if a change in requirements occurs when the code is being generated, the traceability will show where the requirement affects the design and the code. The traceability between the requirements and the tests is to determine whether all the requirements in the system are being tested and similarly, the traceability between the system hazards and the requirements will help determine whether all the system hazards are being addressed. 5. Verify Accuracy of Mathematical Specifications While the requirements analysis is in process, the algorithms and mathematical specifications need to be verified to ensure that what inputs to the system are computed, the specifications, and algorithms produce a correct value. Ensure that correct units have been specified for all components in the specifications/algorithms. Many other techniques can be used in requirements analysis to assist in getting the best requirements set possible. Some others are mentioned below: 6. Modeling of inputs and outputs; Use of Data Flow Diagrams, Control Flow Diagrams, Scenario-Based Modeling, Behavioral-Based Modeling-TBS 7. Use Cases, User Stories (Typically used in Agile) i. To analyze the requirements in an Agile software development environment, it is important to understand the relationship between user stories and requirements and where user cases fit in. ii. Requirements have been typically used for the NASA systems developments. Requirements describe the features of the system being built and convey the user’s expectations. They tend to be very specific and go into detail on how the software should work. Traditionally, the requirements are written by the product manager, the systems engineer, or the technical lead. Projects using many of the traditional development methodologies use the written requirements and go directly into the design phase after their requirements analysis. In Agile developments where they are provided with standard NASA requirements, the Product Owner typically breaks the requirements into agile user stories and/or use cases. iii. Agile User Stories: User Stories are typically used with Agile Methodologies. The Agile Alliance describes a user story as work to be done divided into functional increments. A more simplified definition can be attributed to Atlassian: “A user story is an informal, general explanation of a software feature written from the perspective of the end-user. Its purpose is to articulate how a software feature will provide value to the customer.” User stories are often used to plan the work in an Agile software development environment. They usually consist of one or two sentences in a specific structure to identify the user, what they want, and why. User stories are all about providing value to the customer. It’s what the user wants (the “results”). iv. Agile Use Cases Use cases are more detailed than user stories and focus on exactly how the software will work. Use cases are all about the “behavior” that is built into the software to meet the customer/user’s needs. When Agile use stories/use cases are used, analysis is still required but may take on a different flavor. They give context to the requirements. Some important considerations: Ensure the User Stories are well formulated. To convey the appropriate information, User Stories are commonly in the form of: -As a <role>, -I want <requirement> -so that <rationale/goal>. Ensure that the set of user stories/use cases capture all of the information that may exist in the more traditional forms of requirements. Consider how the user stories can be tested and ensure that all the required capabilities can be tested through the user stories. Perform bidirectional traces between the traditional requirements and the user stories/use cases. Ensure that all safety-critical hazard controls trace to user stories and use cases. Review Appendix A in NASA-STD-8739.8 to ensure that all applicable software hazard causes have been considered for inclusion in the user stories and use cases. 8. Use of a Requirements Analysis Tool, such as Innoslate, or requirements modeling tools such as UML Many tools can be used to check some of the attributes being reviewed during the requirements analysis activities. Many characteristics of the software requirements are considered. Requirements should be: complete, correct, understandable, unambiguous, testable, traceable to the higher-level requirements, consistent, able to meet the user’s expectations, and detailed enough to include boundary conditions, constraints, desired controls, etc. The information in this topic is divided into several tabs as follows:
The following is a list of the applicable SWE requirements that relate to the generation of the Software Requirements Analysis product:
|
...


