Original Date: 01/23/1995
Revision Date: 01/18/2007
Information : Sandia Preferred Processes for Software Development
Sandia National Laboratories (SNL) established preferred processes for software development to satisfy internal standardization, external standards, and customer requirements. The initial goal was to demonstrate technical benefits achievable through a team effort.
Software developers at Sandia represent most stakeholders for the preferred processes for software development. Team representatives include a Process Analyst, Process Quality Management and Improvement Consultant, Management Advocate, Education and Training Representatives, and Software Quality Managers. The teams meet on a regular schedule and review processes that address DOE orders, DOD Standards, and Sandia's Strategic Plan. The teams also conduct research into standards for software development, and identify and evaluate alternative core processes such as software requirements, design, and implementation. Software life cycle models, design processes, test processes, and review techniques are also considered preferred processes for software development.
Process definitions include a step-by-step description of what should be performed for a specific phase of software development. Flexibility is built into the independent methodology to avoid dictating how each task is accomplished. The process is measurable -- for improvement and repeatability -- for control, and scalable for applicability to various size projects.
The preferred process for software design includes definitions for overviews, entrance criteria and inputs, process summary tables, exit criteria and outputs, process changes, expected improvements, metrics, tools, training, documents and detailed task descriptions (develop and review products). Detailed task descriptions include objectives, dependencies, responsibilities, inputs, entrance criteria, task descriptions, verifications, exit criteria, outputs, and standards.
The software development process begins with a set of requirements, and the design process tasks consist of eleven steps. Templates have been developed for document control for software requirements specification, design description, system test plans, and DOD Standards. Templates also include definitions, acronyms, references and overviews.
To control new requirements and feedback, forms are used to report request for change, inspection, and test information. Inspection and test forms include profile, management report, defect lists, summaries, system test logs, and system test incident reporting.
Other alternative methodologies have been approved. Guidelines have been established to control the document approval process, and most document approvals do not require two reviews.
Socialization has been established for template distribution, presentations, software preferred processes, Technology Transfer Center presentations, and In-hours Technical Education Courses (INTEC). INTEC consists of Software Engineering, Overviews for Management, Structured Analysis, Structured Design, Software Quality Engineering, Software Inspection, and Software Measurements. The Sandia preferred process for software development team has established a considerable list for private industry external distribution.
By actively soliciting suggestions for improvements, Sandia has decreased the required time and effort to produce documentation, while seeing a significant savings due to early detection of defects. Formal development methodology has fostered increased productivity results. Many developers use the processes as they stand. However, the high integrity software systems Engineering Department has adopted the preferred processes and updated them with the addition of process items to be performed for high consequence system development.
For more information see the
Point of Contact for this survey.