ISO 12207
Encyclopedia
ISO/IEC 12207 Systems and software engineering — Software life cycle processes is an international standard
International standard
International standards are standards developed by international standards organizations. International standards are available for consideration and use, worldwide...

 for software lifecycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.

The ISO/IEC 12207 standard establishes a process of lifecycle for software, including processes and activities applied during the acquisition and configuration of the services of the system. Each Process has a set of outcomes associated with it. There are 23 Processes, 95 Activities, 325 Tasks and 224 Outcomes (the new "ISO/IEC 12207:2008 Systems and software engineering – Software life cycle processes" defines 43 system and software processes).

The standard has the main objective of supplying a common structure so that the buyers, suppliers, developers, maintainers, operators, managers and technicians involved with the software development use a common language. This common language is established in the form of well defined processes. The structure of the standard was intended to be conceived in a flexible, modular way so as to be adaptable to the necessities of whoever uses it. The standard is based on two basic principles: modularity and responsibility. Modularity means processes with minimum coupling
Coupling (computer science)
In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules.Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa...

 and maximum cohesion
Cohesion (computer science)
In computer programming, cohesion is a measure of how strongly-related each piece of functionality expressed by the source code of a software module is...

. Responsibility means to establish a responsibility for each process, facilitating the application of the standard in projects where many people can be legally involved.

The set of processes, activities and tasks can be adapted according to the software project. These processes are classified in three types: basic, for support and organizational. The support and organizational processes must exist independently of the organization and the project being executed. The basic processes are instantiated according to the situation.

Primary lifecycle processes

The primary lifecycle processes contain the core processes involved in creating a software product. These processes are divided into five different main processes:
  • Acquisition
  • Supply
  • Development
  • Operation
  • Maintenance


Because the primary lifecycle processes cover a very large area a scope
Scope (project management)
In project management, the term scope has two distinct uses: Project Scope and Product Scope.Project Scope"The work that needs to be accomplished to deliver a product, service, or result with the specified features and functions."Product Scope...

 was defined. This entry explains all the primary lifecycle processes but will explain the Acquisition and Development processes more extensively.

Activities

Each phase within the primary lifecycle processes can be divided into different activities. This chapter explains the different activities for each primary lifecycle process..

Acquisition

Acquisition covers the activities involved in initiating a project.
The acquisition phase can be divided into different activities and deliverables that are completed chronologically.
  • Initiation: during this activity the following tasks are completed
    • The need is described why to acquire, develop, or enhance a product;
    • System requirements
      System requirements
      To be used efficiently, all computer software needs certain hardware components or other software resources to be present on a computer. These pre-requisites are known as system requirements and are often used as a guideline as opposed to an absolute rule. Most software defines two sets of system...

       are defined and approved if applicable;
    • The global software requirements
      Software requirements
      Software Requirements is a sub-field of Software engineering that deals with the elicitation, analysis, specification, and validation of requirements for software....

       are defined;
    • Evaluation of other options, like a purchase of an off-the-shelf product or enhancement of an existing product;
    • If an off-the-shelf product is purchased, the software requirements
      Software requirements
      Software Requirements is a sub-field of Software engineering that deals with the elicitation, analysis, specification, and validation of requirements for software....

       of this product need to be analyzed.
    • An acquisition plan is developed, this plan will be used further on during the acquisition phase
    • Acceptance criteria are defined.
  • Request for proposal
    Request for Proposal
    A request for proposal is issued at an early stage in a procurement process, where an invitation is presented for suppliers, often through a bidding process, to submit a proposal on a specific commodity or service. The RFP process brings structure to the procurement decision and is meant to...

     preparation: during this activity the following tasks are completed
    • Acquisition requirements, like System requirements
      System requirements
      To be used efficiently, all computer software needs certain hardware components or other software resources to be present on a computer. These pre-requisites are known as system requirements and are often used as a guideline as opposed to an absolute rule. Most software defines two sets of system...

       and technical constraints such as target environment, are defined.
    • Required ISO/IEC 12207 process for the project are defined and changed accordingly if needed.
    • Contract milestones for reviewing and supplier's progress audits are defined.
  • Prepare Contract
    Contract
    A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

    : during this activity the following tasks are completed
    • Selection procedure for suppliers are developed;
    • Suppliers, based on the developed selection procedure, are selected;
    • The tailor-made ISO/IEC 12207 standard must be included in the contract
      Contract
      A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

      ;
  • Negotiate changes: during this activity the following tasks are completed
    • Negotiation
      Negotiation
      Negotiation is a dialogue between two or more people or parties, intended to reach an understanding, resolve point of difference, or gain advantage in outcome of dialogue, to produce an agreement upon courses of action, to bargain for individual or collective advantage, to craft outcomes to satisfy...

      s are held with the selected suppliers;
  • Update contract
    Contract
    A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

    : during this activity the following tasks are completed
    • Contract
      Contract
      A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

       is updated with the result from the negotiation
      Negotiation
      Negotiation is a dialogue between two or more people or parties, intended to reach an understanding, resolve point of difference, or gain advantage in outcome of dialogue, to produce an agreement upon courses of action, to bargain for individual or collective advantage, to craft outcomes to satisfy...

      s in the previous activity.
  • Supplier monitoring: during this activity the following tasks are completed
    • Activities of the suppliers according to the agreements made are monitored;
    • Work together with suppliers to guarantee timely delivery if needed.
  • Acceptance and completion: during this activity the following tasks are completed
    • Acceptance test
      Acceptance test
      In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met...

      s and procedures are developed;
    • Acceptance and testing on the product is conducted;
    • Configuration management
      Configuration management
      Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...

       on the delivered product is conducted;

Supply

During the supply phase a project management plan
Project plan
A project plan, according to the Project Management Body of Knowledge, isPRINCE2 defines:In some industries, particularly information technology, the term "project plan" can refer to a Gantt chart or other document that shows project activities along a timeline. While common, this use is inaccurate...

 is developed. This plan contains information about the project such as different milestones that need to be reached. This project management plan
Project plan
A project plan, according to the Project Management Body of Knowledge, isPRINCE2 defines:In some industries, particularly information technology, the term "project plan" can refer to a Gantt chart or other document that shows project activities along a timeline. While common, this use is inaccurate...

 is needed during the next phase which is the development phase.

Development

During the development
Software development
Software development is the development of a software product...

 phase the software product is designed, created and tested and will result in a software product ready to be released to the customer.
Throughout time many people have developed means of developing a software application. The choice of developing method often depends on the present situation. The development method which is used in many projects is the V-model.
Techniques that can be used during the development are UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 for designing and TMap
Test Management Approach
Test management approach is a software testing methodology. TMap is a method which combines insights on how to test and what to manage, as well as techniques for the individual test consultant.- History :...

 for testing.
This entry contains the most important steps of the V-model.
  • Define functional requirements
    Functional requirements
    In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

    : during this activity the following tasks are completed
    • Gather the functional requirements
      Functional requirements
      In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

      , or demands, for the product that is to be created.
  • Create High level design
    High-level design
    A high-level design provides an overview of a solution, platform, system, product, service, or process.Such an overview is important in a multi-project development to make sure that each supporting component design will be compatible with its neighbouring designs and with the big picture.The...

    : during this activity the following tasks are completed
    • A basic layout
      Layout
      Layout may refer to:* Page layout** Comprehensive layout** In computer graphics, another name for a scene used to render 2D/3D graphics or animation* Layout , software that automatically calculates the positions of objects...

      of the product is created. This means the setup of different modules and how they communicate with each other. This design does not contain very much detail about the modules.
  • Create Module design
    • The different modules present in the High level design
      High-level design
      A high-level design provides an overview of a solution, platform, system, product, service, or process.Such an overview is important in a multi-project development to make sure that each supporting component design will be compatible with its neighbouring designs and with the big picture.The...

       are designed separately. The modules are designed in as much detail as possible.
  • Coding
    Computer programming
    Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

    • The code is created according to the high level design and the module design.
  • Execute Module test
    Unit test
    In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use.A unit is the smallest testable part of an application. In procedural programming a unit could be an entire module but is more commonly an individual function...

    • The different modules are tested for correct functioning. If this is the case the project can move to the next activity, else the project returns to the module design phase to correct any errors.
  • Execute Integration test
    Integration testing
    Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing...

    • The communication between modules is tested for correct functioning. If this is the case the project can move to the next activity, else the project falls back to the high level design to correct any errors.
  • Execute System test
    System testing
    System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or...

    • This test checks whether all functional requirements
      Functional requirements
      In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

       are present in the product. If this is the case the product is completed and the product is ready to be transferred to the customer. Else the project falls back to the software requirements activity and the functional requirements
      Functional requirements
      In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

       have to be adjusted.

Operation

The operation and maintenance phases occur simultaneously, the operation-phase consists of activities like assisting users in working with the created software product.

Maintenance

The maintenance-phase consists of maintenance-tasks to keep the product up and running.
The maintenance includes any general enhancements, changes and additions, which might be required by the end-users.These defects and deficiencies are usually documented by the developing organisation to enable future solutions and known issues addressing in any future maintenance releases.
There is no disposal phase

Deliverables

The different deliverables that are developed per activity are explained in this chapter.

Acquisition

Acquisition covers the activities involved in initiating a project.
The acquisition phase can be divided into different activities and deliverables that are completed chronologically.
  • Initiation: during this activity the following deliverables are developed:
    • Initiation documents
      Project initiation document
      The Project Initiation Documentation bundles the information which was acquired through the Starting up a Project and Initiating a Project processes in a PRINCE2 controlled project environment...

      ;
  • Request for proposal
    Request for Proposal
    A request for proposal is issued at an early stage in a procurement process, where an invitation is presented for suppliers, often through a bidding process, to submit a proposal on a specific commodity or service. The RFP process brings structure to the procurement decision and is meant to...

     preparation: during this activity the following deliverables are developed:
    • Request for proposal
      Request for Proposal
      A request for proposal is issued at an early stage in a procurement process, where an invitation is presented for suppliers, often through a bidding process, to submit a proposal on a specific commodity or service. The RFP process brings structure to the procurement decision and is meant to...

      ;
  • Prepare Contract
    Contract
    A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

    : during this activity the following deliverables are developed:
    • Contract
      Contract
      A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

      : this is a draft agreement between the company and suppliers, set up by the company.
  • Negotiate Changes: during this activity the following deliverables are developed:
    • Input from the suppliers: suppliers can react on the draft agreement submitted by the company, this reaction will result in input from the suppliers
  • Update Contract
    Contract
    A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

    : during this activity the following deliverables are developed:
    • Final Contract
      Contract
      A contract is an agreement entered into by two parties or more with the intention of creating a legal obligation, which may have elements in writing. Contracts can be made orally. The remedy for breach of contract can be "damages" or compensation of money. In equity, the remedy can be specific...

      ;
  • Supplier monitoring: during this activity the following deliverables are developed:
    • Supplier Monitor Report: this report covers the advances of the suppliers involved based on different milestones.
  • Acceptance and completion: during this activity the following deliverables are developed:
    • Acquisition report: this report covers the acceptance and completion of the acquisition phase.

Development

During the development phase the software product is designed, created and tested and will result in a software product ready to be sold to the customer.
  • Define Software Requirements: during this activity the following deliverables are developed:
    • Software Requirements: this is a collection of different functional requirements
      Functional requirements
      In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

      ;
  • High level design: during this activity the following deliverables are developed:
    • High level design
      High-level design
      A high-level design provides an overview of a solution, platform, system, product, service, or process.Such an overview is important in a multi-project development to make sure that each supporting component design will be compatible with its neighbouring designs and with the big picture.The...

      ;
  • Module design: during this activity the following deliverables are developed:
    • Module design;
  • Coding
    Computer programming
    Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

    : during this activity the following deliverables are developed:
    • Code
      Computer software
      Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

      ;
  • Module test
    Unit test
    In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use.A unit is the smallest testable part of an application. In procedural programming a unit could be an entire module but is more commonly an individual function...

    : during this activity the following deliverables are developed:
    • Module test report, this test report contains the test-results which are formed after a module test of the application. Based on this test-report the project-team can decide which action to undertake further.
  • Integration test
    Integration testing
    Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing...

    : during this activity the following deliverables are developed:
    • Integration test report, this test report contains the test-results which are formed after an integration test of the application. Based on this test-report the project-team can decide which action to undertake further.
  • System test
    System testing
    System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or...

    : during this activity the following deliverables are developed:
    • System test report;

Example

The method presented in this entry can be used in a company that is responsible for creating and maintaining a software product for a customer. Especially when this company decides to build an application from scratch and that maintenance and assisting in the operation is also done by the company developer.

See also

  • IEEE 12207
    IEEE 12207
    IEEE/EIA 12207.0, "Standard for Information Technology – Software Life Cycle Processes", is a standard that establishes a common framework for software life cycle process....

  • ISO 15504
    ISO 15504
    ISO/IEC 15504 Information technology — Process assessment, also known as SPICE , is a set of technical standards documents for the computer software development process and related business management functions...

  • Meta-modeling technique
  • V model
  • Unified Modeling Language
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

  • Build management
  • Release management
    Release management
    The release management process is a relatively new but rapidly growing discipline within software engineering of managing software releases....

  • Application Lifecycle Framework
    Application Lifecycle Framework
    Application Lifecycle Framework was an Eclipse project to develop an open integration and interoperability framework for application lifecycle management tools. The project failed to gain the support of significant vendors and was terminated in 2008....

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK