7. Software Assurance
7.1 Tasking for Software Assurance- Perform or confirm that a root cause analysis has been completed on all identified high severity software nonconformances, the results are recorded, and that the results have been assessed for adequacy.
- Confirm that the project analyzed the processes identified in the root cause analysis associated with the high severity software nonconformances.
- Assess opportunities for process improvement on the processes identified in the root cause analysis associated with the high severity software nonconformances.
- Perform or confirm tracking of corrective actions to closure on high severity software non-conformances.
7.2 Software Assurance Products- Root Cause Analysis (Includes results, and any problem reports or findings recorded from Analysis)
- Record of Corrective Action Closures (Confirmation or trending showing closure status of findings/problem reports.)
- SA assessment of process improvement opportunities.
- Root Cause Analysis reports (Includes results, and any problem reports or findings recorded from Analysis)
- Record of Corrective Action Closures (Confirmation or trending showing closure status of findings/problem reports.)
- Software assurance audit reports
- Process improvement status reports
|
7.3 Metrics- # of Root Cause Analyses performed
- # of Non-Conformances identified by each root cause analysis
- # of Corrective Actions (CAs) raised by SA vs. total #
- Attributes (Type, Severity, # of days Open, Life-cycle Phase Found)
- State (Open, In work, Closed)
- Trends of CA closures over time
- Trend the # of inconsistencies or corrective actions identified, and # closed
- Total # of Non-Conformances over time (Open, Closed, # of days Open, and Severity of Open)
- # of Non-Conformances in the current reporting period (Open, Closed, Severity)
- # of software process Non-Conformances by life-cycle phase over time
- # of software work product Non-Conformances identified by life-cycle phase over time
7.4 GuidanceTask 1: Perform a root cause analysis on all identified high severity software non-conformances and record the results. Software assurance personnel review the list of non-conformances and choose all those non-conformances that are marked as “high priority.” Typically, those will be the non-conformances that cause a complete crash of the software, those that cause a major problem such as preventing a primary software function from performing, allowing a hazard to occur, or producing erroneous critical results. The high priority non-conformances all fall into a category where the software could not be released for use until these non-conformances are fixed or a work-around is identified. Examine each of these non-conformances to determine the underlying cause of the failure. If the non-conformances seem to be related, it might be possible to do the root cause analysis as a group, rather than individually, but it is important to make sure that the analysis delves into the problem deeply enough to either confirm that the root cause is the same issue or identifies the individual root causes of each non-conformance. Follow a typical root cause analysis process which usually consists of these basic steps: - Define the problem
- Collect the data relating to the problem
- Identify what is causing the problem
- Prioritize the causes
- Identify solutions to the underlying problem
- Implement the change
- Monitor and sustain
To “define the problem” identify the high priority non-conformances that need a root cause analysis and determine whether there are ones that might be done as a group or whether an individual analysis should be done for each. For “Collect the data relating to the problem,” get a good understanding of what happened when the non-conformance occurred. Think about: When does the problem occur? What is the software doing when the problem occurs? Is there a particular activity that seems to cause the problem to occur? How was the problem discovered? Collect any available details about the failure. For “Identify what is causing the problem,” think about all the possible causes of the problem. Several techniques can be used to help with this process. One of the most popular is the Fishbone process where many possible causes are identified and then sorted into useful categories. The “bones” of the fish are each labeled with a broad category of possible causes and then populated using brainstorming to identify potential causes for this case. “Prioritize the causes”- From a list of the potential causes or from something like a fishbone chart, the most likely causes are selected. “Identify solutions to the underlying problem” – The most likely causes are further explored (or tested until they are narrowed down to the actual cause or causes. Then the solution can be found to correct the problem (non-conformance) “Implement the change” – This step is done by the developers, but software assurance assures that the change is correctly implemented and fixes the non-conformance. It is also important to review other areas in the code where a similar non-conformance might exist and assure that those areas are also fixed. “Monitor and sustain” -In addition to assuring that similar non-conformances in other areas of the code are also fixed, software assurance should check for other problems with similar causes when reviewing other parts of the system or when checking on changes to the system. Task 2: Confirm that the project analyzed the processes identified in the root cause analysis associated with the high severity software non-conformances. If any of the processes used were determined to be root causes of the non-conformance, think about possible changes and improvements to the process that could prevent future similar non-conformances. Task 3: Assess opportunities for process improvement on the processes identified as a causing factor in the root cause analysis associated with the high severity software non-conformances. Decide whether any changes should be made to the processes in use, what to change, and how to determine whether the change was effective in preventing a similar high severity non-conformance. Task 4: Perform tracking of corrective actions to closure on high severity software non-conformances. As part of completing the root cause analysis, software assurance will track all the corrective actions identified to closure. Record the number of root cause analyses that software assurance has done on the project and make a list of the root causes found on each analysis. This list of root causes can be used in future reviews of the system to improve the quality of the software by paying close attention to these root causes and preventing similar issues. |