Software Lifecycle Processes

From Wikipedia, the free encyclopedia

Software lifecycle processes are methods and standards for improving and mastering development processes, supporting processes and management processes throughout the software lifecycle.

The quest for the optimized mix of processes has resulted in different standards throughout the history of software development. One of the latest which was published is the ISO/IEC 12207 standard. This standard was proposed in 1988 and published in August 1995. It was created to establish a common international framework to acquire, supply, develop, operate, and maintain software.

ISO/IEC 12207 consists of three types of processes:

  • Primary lifecycle processes;
  • Supporting lifecycle processes;
  • Organizational lifecycle processes.

Because the complete ISO/IEC 12207 standard is very elaborate this entry will only explain some, more interesting, parts of the primary lifecycle processes.

In this entry the word “product” will be used instead of system, software product or software service.

Contents

[edit] 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

In the next chapters the activities and deliverables of the primary lifecycle processes are presented.

Because the primary lifecycle processes cover a very large area a scope was defined. This entry explains all the primary lifecycle processes but will explain the processes ‘Acquisition’ and ‘Development’ more extensively.

[edit] 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.

[edit] 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 are defined and approved if applicable;
    • The global software requirements 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 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 preparation: during this activity the following tasks are completed
    • Acquisition requirements, like System requirements and technical constraints such as target environment, are defined.
    • Required ISO 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: 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;
  • Negotiate changes: during this activity the following tasks are completed
  • Update contract: during this activity the following tasks are completed
  • 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

[edit] Supply

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. This project management plan is needed during the next phase which is the development phase.

[edit] 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. 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 for designing and TMap for testing. This entry contains the most important steps of the V-model.

  • Define software requirements: during this activity the following tasks are completed
  • Create High level design: during this activity the following tasks are completed
    • A basic layout 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 are designed separately. The modules are designed in as much detail as possible.
  • Coding
    • The code is created according to the high level design and the module design.
  • Execute Module test
    • 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
    • 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
    • This test checks whether all software requirements 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 software requirements have to be adjusted.

[edit] Operation

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

[edit] 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.

[edit] Deliverables

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

[edit] 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:
  • Request for proposal preparation: during this activity the following deliverables are developed:
  • Prepare Contract: during this activity the following deliverables are developed:
    • Contract: 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: during this activity the following deliverables are developed:
  • 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.

[edit] 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:
  • High level design: during this activity the following deliverables are developed:
  • Module design: during this activity the following deliverables are developed:
    • Module design;
  • Coding: during this activity the following deliverables are developed:
  • Module test: 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: during this activity the following deliverables are developed:
    • Module 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: during this activity the following deliverables are developed:
    • System test report;

[edit] Models

After the research on this subject the findings where put together in a model. This model was created with the modeling technique developed by Saeki. This technique consists of creating a model containing the different actions that are present in the method and a model that contains the different deliverables that are created in the method. These two models are linked together in process-data model. The model is shown in picture 1 and explained in the accessory explanation.


Picture 1: the process-data model

Explanation: left in the picture, in the gray area ovals, the different main-activities are shown. These activities are explained in the chapter ‘Activities’, these main-activities contain different sub-activities that are shown in the white shapes. Arrows indicate in which order the activities occur. Right in the picture the different deliverables are shown. Lines indicate the different associations and multiplicities between the deliverables. Dotted lines between the activities and deliverables indicate the connection between the activities and deliverables.

[edit] 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.

[edit] See also

[edit] References