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
- Negotiations are held with the selected suppliers;
- Update contract: during this activity the following tasks are completed
- Contract is updated with the result from the negotiations 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 tests and procedures are developed;
- Acceptance and testing on the product is conducted;
- Configuration management on the delivered product is conducted;
[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
- Gather the software requirements, or demands, for the product that is to be created.
- Create High level design: during this activity the following tasks are completed
- 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:
- Final Contract;
- 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:
- Software Requirements: this is a collection of different software requirements;
- 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:
- Code;
- 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
- Meta-modeling technique by Saeki
- V-model
- UML
- Testing with TMap
- Configuration management process
- Build management
- Product structure modeling
- Version & variant management
- Release management
[edit] References
- Mitchell H. Levine. (2000), Analyzing the Deliverables Produced in the Software Development Life Cycle. Retrieved February 17, 2006, from Audit Serve, Inc. Website: http://www.auditserve.com/articles/art_4.htm
- SSC San Diego Process Asset Library. Retrieved February 19, 2006 from SSC San Diego Process Asset Library Website: http://sepo.spawar.navy.mil/12207.doc
- The Systems and Software Consortium, Inc. (1995). ISO/IEC 12207. Retrieved February 15, 2006, from Systems And Software Consortium. Website: http://www.software.org/quagmire/descriptions/iso-iec12207.asp