IEEE Software Standards
Software Life Cycle Standards
IEEE 12207.1 is IEEE guide for handling life cycle data for software. IEEE 29148 is the standard for requirements engineering throughout the software development process. IEEE 24748-3 outlines IEEE's recommendations for applying standard ISO/IEC 12207, the ISO's software life cycle process standard.
IEEE 15288 is the IEEE standard for systems life cycle processes. The systems life cycle process applies to hardware, not software, but IEEE 15288 does incorporate software installation and verification as part of the system acceptance testing.
IEEE 16085 is the standard for managing risk within the software life cycle, such as ensuring that software testers are testing the code planned on release. Standards for software life cycle documentation for information items are created and maintained by the IEEE 15289 working group.
Software and Programming Standards
IEEE standard 828 is the IEEE standard for configuration management of both hardware and software items. This standard sets limits such as prohibiting "I" or "O" as revision letters. IEEE 1420.1 sets the standards for a software reuse library, where code modules are kept in a version controlled database and checked for code interoperability.
Reusing existing code modules saves programmers time because they can use modules of code that other programmers created while ensuring that programmers do not accidentally over-write existing code modules that have been proven to work when they save their versions to the code library.
IEEE 1647 is the IEEE standard for the functional verification language called "e". This language has no relationship to F#.
IEEE standard P1278-1 is the standard for distributed interactive simulations. These simulations can involve multiple pilots in different flight simulators practicing on the same virtual air field. IEEE 62530 is the standard for the Verilog hardware description language. IEEE 61691-1 is part of the IEEE VHDL language reference manual.
Software Documentation Standards
IEEE 24765 gives the official terminology used all other IEEE software standards. IEEE also adopted ISO standard 15026-1 as IEEE standard 15026 to create a formal vocabulary for software assurance. IEEE standard 26512 details the requirements for software user documentation.
IEEE 26512 outlines the IEEE's recommendations for software documentation statements of work and requests for proposals. IEEE 26512 requires that vendors create documentation on how to use their software from a user's point of view and a documentation plan and document management plan on how to keep these documents up to date.
IEEE 829 is the standard for software and system test documents. This standard applies to test scripts used by human testers, not programmed test scripts used for units under test (UUT).
Shared IEEE Software Standards
IEEE shares some of its software standards with the EIA, like IEEE/EIA standard 12207.0. IEEE has also adopted standards directly from the ISO. IEEE standards that originated from an IEC/ISO standard are denoted as ISO/IEC/IEEE.
IEEE has also issued standards to describe how to implement ISO standards while following IEEE standards. For example, IEEE standard 9003-2008 describes how to apply ISO 9001 quality standards to computer software. IEEE 1465-1998 is the IEEE's guidance on incorporating ISO standard 12119 into software quality requirements and testing.
Computer Aided Software Engineering or CASE tools were already covered by IEC / ISO standards. The IEEE adopted ISO/IEC 14102 as its own standard IEEE 1468 to create an IEEE standard on the evaluation and selection of CASE tools.
IEEE also created standard IEEE 14471 from the ISO standard 14471; this standard copied the IEC/ISO recommended guidelines for adopting CASE tools and incorporating them into your software development process. IEC standards have been adopted by ISO, making them international standards.
Software Testing Standards
IEEE 1012A is the standard for software verification and validation. IEEE 1012A is considered a map to follow when performing the verification and validation required by IEEE standard 12207.1.
IEEE 716 is the IEEE standard for the C/ATLAS test language, a software language used to create hardware and device test scripts that is independent of any vendor's test set or testing hardware. IEEE 1008 covers software unit testing. Software package testing standards are maintained by the 25051 Working Group, also called the IEEE 25051 WG.