Software Engineering

ISO/IEC 12207 - Software Life Cycle Processes

The original ISO/IEC 12207 was published on 1 August 1995 and was the first international standard to provide a comprehensive set of life cycle processes, activities and tasks for software that is part of a larger system, and for stand alone software products and services. That international standard was followed in November 2002 by ISO/IEC 15288 which addressed system life cycle processes.

IEEE cooperated with the Electronic Industries Alliance (EIA) in adopting ISO/IEC with changes to become IEEE/EIA 12207.0-1996, Standard Industry Implementation of International Standard ISO/IEC 12207. IEEE Std 12207-2008 is identical to ISO/IEC 12207:2008 and replaces IEEE/EIA 12207.0-1996.

In 2004, IEEE performed an identical adoption of ISO/IEC 15288:2002. The ISO/IEC 12207 amendments in 2002 and 2004 added process purpose and outcomes to the International Standard and established a Process Reference Model in accordance with the requirements of ISO/IEC 15504-2. IEEE did not pick up these amendments, preferring a stable base for the users of its standard. The 2008 revision of ISO/IEC 12207 is the product of a coordinated effort by IEEE and ISO/IEC JTC 1/SC 7. The base documents for the revision included the ISO/IEC standard and its amendments, and the IEEE/EIA standard and its unique material.

The 2008 revision integrates ISO/IEC 12207:1995 with its two Amendments and applies SC7 guidelines for process definition to support consistency and improved usability. Project execution was carefully coordinated with the parallel revision of ISO/IEC 15288:2002 to align structure, terms, and corresponding organizational and project processes.

ISO/IEC 12207 - Related ISO Standards

Object-Oriented Analysis and Modeling

UML - Unified Modeling Language & SysML - OMG Systems Modeling Language

UML and MDA Tools

Model-Driven Engineering (MDE) & Domain-Driven Design (DDD)

Methods based on the Unified Process (UP)

OpenUP & Eclipse Process Framework (EPF)

Methods based on Agile Development

Disciplined Agile Delivery (DAD)

SCRUM

  • Scrum.org
    Improving the Profession of Software Development.
  • SCRUM - Control Chaos
    Scrum is an Agile process that can be used to manage and control complex software and product development using iterative, incremental practices.
  • Scrum (development)
    From Wikipedia, the free encyclopedia.
    Scrum is a method for managing work, improving morale, and achieving very high productivity. The most popular agile method for project management, Scrum is noted for its simplicity, its high level of transparency, and a team based approach to work.
  • The Scrum Development Process
    Information by Mountain Goat Software.
  • Scrum Alliance
    Trusted source of Scrum knowledge.
  • Book: Scrum and XP from the Trenches (168 pp.)
    Author: Henrik Kniberg, InfoQ Enterprise Software Development Series. ISBN: 978-1-4303-2264-1. Non-printable free online PDF version for download.

Extreme Programming (XP)

Dynamic Systems Development Method (DSDM)

Adaptive Software Development (ASD)

Adaptive Software Development is a software development process that grew out of rapid application development work by Jim Highsmith and Sam Bayer. ASD embodies the principle that continuous adaptation of the process to the work at hand is the normal state of affairs.

ASD replaces the traditional waterfall cycle with a repeating series of speculate, collaborate, and learn cycles. This dynamic cycle provides for continuous learning and adaptation to the emergent state of the project. The characteristics of an ASD life cycle are that it is mission focused, feature based, iterative, timeboxed, risk driven, and change tolerant.