Software Quality activities are conducted throughout the project life cycle to provide objective insight into the maturity and quality of the software processes and associated work products. At GSFC, the Office of Systems Safety and Mission Assurance (OSSMA) is responsible for planning and implementing a Software Quality Program for all Class A, B, and C mission software (as defined in NPR 7150.2). This entails providing sufficient resources, training staff, managing work products, and monitoring and controlling our program for continuous process improvement.
OSSMA Software Quality personnel apply standard procedures, work instructions, and tools to objectively evaluate processes and work products, provide objective insight based on those evaluations, and effectively communicate and ensure resolution of all noncompliance issues with GSFC managers and stakeholders.
The Software Quality procedures and tools are below:
OSSMA has developed a procedure that provides direction to Software Quality (SQ) personnel responsible for developing and implementing Software Quality programs for all GSFC developed or acquired software products and systems. Additional work instructions provide applicable procedures, step-by-step instructions, and checklists for performing SQ process and product assessments throughout the software life cycle.
The Software Quality Activity Matrix provides an "At-a-Glance" reference of those Software Quality activities that are to be performed during each traditional development phase (i.e., concept, requirements, design, implementation, integration and test, acceptance test, and operation and maintenance). This matrix should be used as a planning tool to determine the activities and resources that will be needed to develop and implement a successful Software Quality program.
The OSSMA Software Quality Assurance Data management Plan (DMP) provides a high level plan for the collection and storage of the various types of software quality data and artifacts associated with Software Quality activities.
Work instructions provide the procedures and step-by-step instructions for performing Software Quality process and product assessments throughout the software life cycle. The work instructions listed below constitute a working set of procedures for attending peer reviews and accessing & reporting on work products & processes Additional work instructions will be provided as needed.
A set of checklists is provided to assist Software Quality personnel in evaluating processes and products associated with software quality assurance. The checklists are generic in nature and are intended to guide the assessor in preparing a more tailored checklist (if necessary) to meet the needs of a particular software project, program, facility, or activity.
The Office of Systems Safety & Mission Assurance (OSSMA) assumes responsibility for these checklists and any updates they may require to meet the needs of the Software Quality personnel. The GSFC Software Assurance Lead welcomes and encourages feedback from users of these checklists and will provide future revisions and enhancements to reflect user experience and lessons learned.
SQERD is the Software Quality Engineering Repository Database. It was created to provide an effective tool that enhances the SQEs ability to perform their assessment duties. It also allows management and the SQEs the capability to control all their assessment artifact data on a centrally located database and for the information to be accessed to produce metrics and reports. The database records, maintains and reports on all SQE product and process assessment checklists, findings and observations.
The Automated Requirement Measurement (ARM) Tool was developed by the Software Assurance Technology Center (SATC) at the NASA Goddard Space Flight Center as an early life cycle tool for assessing requirements that are specified in natural language. The objective of the ARM tool is to provide measures that can be used by project managers to assess the quality of a requirements specification document. The ARM tool scans a requirements specification document for key words and phrases and generates a report file summarizing the specific quality indicators. The tool is not intended to evaluate the correctness of the specified requirements. It is an aid to "writing the requirements right," not "writing the right requirements."
The ARM tool can be downloaded for free and installed on both Windows and Macintosh platforms. Listed below are the system requirements, installation instructions, a screenshot of the ARM main menu, an example input document, and an example ARM output report.
Windows
Macintosh
Installation Instructions
Windows
Macintosh
Provided is a sample input requirements specification document for the ARM tool in three different formats. Note: The ARM tool only accepts plain text documents.
Provided is the sample output obtained after running the ARM tool on the SARA requirements specification document. Note: The ARM tool outputs a plain text report file using the user's source file as the prefix name and an extension of ".arm". This report contains a summary report and detailed reports for specific quality indicators.
A template for a Software Quality Assurance (SQA) Plan is provided for use by Systems Assurance Managers and Software Quality personnel. The SQA Plan, a requirement of the NASA Software Assurance Standard, defines the approach that will be used to monitor and assess software development processes and products. This plan is developed in the early stages of, and in parallel with, the overall project planning effort. The template, based on the IEEE 730-2002 Standard for Software Quality Assurance Plans, can be easily tailored to your program/project. Just follow the general tailoring guidelines provided within the template.
Use the Software Quality Assessment Plan template for documenting details and logistics for an upcoming assessment.
Use the Software Quality Assessment Report template to formally document the results from a process or product assessment. Sample reports are also provided.
Use the SQE Training Log template for documenting SQ training received and project work experience gained. This log is a required record.
Use the SQ Stakeholder Table to document project stakeholder involvement by life cycle phase. This table is a required record.
Software Quality personnel shall have fundamental knowledge in the following areas/disciplines through prior experience, training, or certification in methodologies, processes, and standards.
It is highly recommended that all software quality personnel, including systems assurance managers, take those applicable courses available on the NASA Site for On-line Learning and Resources (SOLAR).
Software Quality training is also offered through a series of training modules developed by GSFC's Software Quality Organization. These short courses are designed to provide specific practitioner instructions for implementing a robust Software Quality Program.
Software Quality personnel should also become familiar with the processes and disciplines of Code 580 Information Systems Division (ISD) Software Engineers. The following link will take you to the ISD Software Engineering Discussions Slides Archive. Here you will find presentations that describe Code 580 software engineering processes.