ISO/IEC/IEEE 12207 Systems and software engineering – Software life cycle processes is an international standard for software lifecycle processes. First introduced in 1995, it aims to be a primary standard that defines all the tasks required for developing and maintaining software systems.
The standard establishes a set of processes for managing the lifecycle of software, including processes and activities applied during the acquisition, supply, configuration, operation, maintenance, and disposal of the software system, with each process having an associated set of outcomes. The standard, however, "does not prescribe a specific software life cycle model, development methodology, method, modelling approach, or technique."
ISO/IEC/IEEE 12207:2017 is the newest version, published in November 2017. The IEEE Computer Society joined directly with the International Organization for Standardization (ISO) in the editing process for this version. Changes include the removal of software development and software reuse processes, further harmonization with the ISO/IEC/IEEE 15288 process model, and changes to quality management and quality assurance process activities and outcomes. Additionally, the definition of "audit" and related audit activities were updated.
Prior versions include:
- ISO/IEC 12207:2008, which was published in February 2008
- ISO/IEC 12207:1995/Amd 2:2004, an amended version of the prior, published in November 2004
- ISO/IEC 12207:1995/Amd 1:2002, an amended version of the prior, published in May 2002
- ISO/IEC 12207:1995, the first iteration, published in July 1995; originally was divided into five primary processes (acquisition, supply, development, operation, and maintenance), with eight supporting and four organizational life cycle processes
Prior to the IEEE Computer Society formally joining the editing process (becoming a major stakeholder) for the 2017 release, the IEEE maintained its own versions of ISO/IEC 12207, initially with modifications made jointly with the Electronic Industries Alliance (EIA). With the 2008 update came a "shared strategy of ISO/IEC JTC 1/SC 7 and the IEEE to harmonize their respective collections of standards," resulting in identical standards thereon, but with slightly different names. Those IEEE versions included:
- IEEE Std. 12207-2008: "integrates ISO/IEC 12207:1995 with its two amendments and was coordinated with the parallel revision of ISO/IEC 15288:2002 (System life cycle processes) to align structure, terms, and corresponding organizational and project processes"; superseded by ISO/IEC/IEEE 12207:2017
- IEEE/EIA 12207.2-1997: "provides implementation consideration guidance for the normative clauses of IEEE/EIA 12207.0"; superseded/made obsolete by IEEE Std. 12207-2008, which was then superseded by ISO/IEC/IEEE 12207:2017
- IEEE/EIA 12207.1-1997: "provides guidance for recording life cycle data resulting from the life cycle processes of IEEE/EIA 12207.0"; superseded by ISO/IEC/IEEE 15289:2011, which was then superseded by ISO/IEC/IEEE 15289:2017
- IEEE/EIA 12207.0-1996: "consists of the clarifications, additions, and changes [to ISO/IEC 12207:1995 for industry implementation] accepted by the Institute of Electrical and Electronics Engineers (IEEE) and the Electronic Industries Alliance (EIA) as formulated by a joint project of the two organizations"; superseded by IEEE Std. 12207-2008, which was then superseded by ISO/IEC/IEEE 12207:2017
ISO/IEC/IEEE 12207:2017 divides software life cycle processes into four main process groups: agreement, organizational project-enabling, technical management, and technical processes. Under each of those four process groups are a variety of sub-categories, including the primary activities of acquisition and supply (agreement); configuration (technical management); and operation, maintenance, and disposal (technical).
Here ISO/IEC/IEEE 12207:2017 includes the acquisition and supply processes, which are activities related to establishing an agreement between a supplier and acquirer. Acquisition covers all the activities involved in initiating a project. The acquisition phase can be divided into different activities and deliverables that are completed chronologically. During the supply phase a project management plan is developed. This plan contains information about the project such as different milestones that need to be reached.
Organizational project-enabling processes
Detailed here are life cycle model management, infrastructure management, portfolio management, human resource management, quality management, and knowledge management processes. These processes help a business or organization enable, control, and support the system life cycle and related projects. Life cycle mode management helps ensure acquisition and supply efforts are supported, while infrastructure and portfolio management supports business and project-specific initiatives during the entire system life cycle. The rest ensure the necessary resources and quality controls are in place to support the business' project and system endeavors.
Technical management processes
- Project planning
- Project assessment and control
- Decision management
- Risk management
- Configuration management
- Information management
- Quality assurance
These processes deal with planning, assessment, and control of software and other projects during the life cycle, ensuring quality along the way.
The technical processes of ISO/IEC/IEEE 12207:2017 encompass 14 different processes, some of which came from the old software-specific processes that were phased out from the 2008 version.
- Business or mission analysis
- Stakeholder needs and requirements definition
- Systems/Software requirements definition
- Architecture definition
- Design definition
- System analysis
These processes involve technical activities and personnel (information technology, troubleshooters, software specialists, etc.) during pre-, post- and during operation. The analysis and definition processes early on set the stage for how software and projects are implemented. Additional processes of integration, verification, transition, and validation help ensure quality and readiness. The operation and maintenance phases occur simultaneously, with the operation phase consisting of activities like assisting users in working with the implemented software product, and the maintenance phase consisting of maintenance tasks to keep the product up and running. The disposal process describes how the system/project will be retired and cleaned up, if necessary.
- Software development process
- Software release life cycle
- ISO/IEC/IEEE 15288
- ISO/IEC 15504
- ISO/IEC/IEEE 29119
- ISO/IEC JTC 1/SC 7
- Meta-modeling technique
- V model
- Unified Modeling Language
- Build management
- Release management
- "ISO/IEC/IEEE 12207:2017". Standards catalogue. International Organization for Standardization. November 2017. Retrieved 21 June 2018.
- Reilly, A. (27 June 2017). "New or Improved! Software Engineering Standards for Quality". American Society for Quality. Retrieved 21 June 2018.
- Bach, C. (12 December 2017). "ISO/IEC 12207 Updated and Renumbered as ISO/IEC/IEEE 12207". Standards Forum. Document Center, Inc. Retrieved 22 June 2018.
- Reilly, A. (March 2018). "INCITS/SSE - Software and Systems Engineering Annual Report - April 2017 to March 2018" (PDF). INCITS. Retrieved 22 June 2018.
The cornerstone standards of ISO/IEC JTC 1/SC 7, ISO/IEC/IEEE 12207:2017 and ISO/IEC/IEEE 15288:2015, have recently completed revision to reflect a unified model set of acquisition, organizational, technical management, and technical processes for systems and software.
- "ISO/IEC 12207:2008". Standards catalogue. International Organization for Standardization. February 2008. Retrieved 21 June 2018.
- "ISO/IEC 12207:1995/Amd 2:2004". Standards catalogue. International Organization for Standardization. November 2004. Retrieved 21 June 2018.
- "ISO/IEC 12207:1995/Amd 1:2002". Standards catalogue. International Organization for Standardization. May 2002. Retrieved 21 June 2018.
- "ISO/IEC 12207:1995". Standards catalogue. International Organization for Standardization. July 1995. Retrieved 21 June 2018.
- "Overview of IEEE/EIA 12207: Standard for Information Technology". SSC San Diego Process Asset Library. 30 July 1998. Archived from the original on 30 December 2008. Retrieved 22 June 2018.
- "IEEE 12207.0-1996 - Standard for Information Technology - Software Life Cycle Processes". IEEE Standards Association. March 1998. Retrieved 22 June 2018.
- "ISO/IEC 12207:2008, IEEE Std 12207-2008 Systems and Software Engineering — Software Life Cycle Processes" (PDF). SemanticScholar.org. 7 December 2009. Retrieved 22 June 2018.
- "1SO/IEC 12207:2008(en) Systems and software engineering — Software life cycle processes: IEEE Introduction". Online Browsing Platform. International Organization for Standardization. February 2008. Retrieved 22 June 2018.
- "IEEE Std. 12207-2008 - Systems and software engineering -- Software life cycle processes". IEEE Standards Association. January 2008. Retrieved 22 June 2018.
- "IEEE 12207.2-1997 - Guide for Information Technology - Software Life Cycle Processes - Implementation Considerations". IEEE Standards Association. April 1998. Retrieved 22 June 2018.
- "IEEE 12207.1-1997 - Guide for Information Technology - Software Life Cycle Processes - Life Cycle Data". IEEE Standards Association. April 1998. Retrieved 22 June 2018.
- Peñalvo, F.J.; Holgado, A.G. (2017). "Proceso: Ingeniería de Software I" (PDF). Universidad de Salamanca. p. 39. Retrieved 21 June 2018.