Software Lifecycle Processes

Software Lifecycle Processes

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.

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.

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 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/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: 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;

upply

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.


=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 [http://eng.tmap.net/Home/ 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
** 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.

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.

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;
* Request for proposal preparation: during this activity the following deliverables are developed:
** Request for proposal;
* 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.

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:
** High level design;
* 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;

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."

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.

ee 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

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 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 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 http://www.software.org/quagmire/descriptions/iso-iec12207.asp]


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Software factory — In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally defined end user …   Wikipedia

  • Software Asset Management — (SAM) is a business practice that involves managing and optimizing the purchase, deployment, maintenance, utilization, and disposal of software applications within an organization. According to the Information Technology Infrastructure Library… …   Wikipedia

  • Software testing — is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test [ [http://www.kaner.com/pdfs/ETatQAI.pdf Exploratory Testing] , Cem Kaner, Florida Institute of Technology,… …   Wikipedia

  • Software development — is the translation of a user need or marketing goal into a software product. [cite book|author=Birrell, N.D.|title=A Practical Handbook for Software Development|publisher=Cambridge University Press|year=1985|id=ISBN 0 521 25462 0] [cite… …   Wikipedia

  • Software Assurance — (SwA) is defined as “the level of confidence that software is free from vulnerabilities, either intentionally designed into the software or accidentally inserted at anytime during its lifecycle, and that the software functions in the intended… …   Wikipedia

  • Application Lifecycle Framework — Infobox Software name = Eclipse Application Lifecycle Framework caption = developer = Eclipse Foundation Under incubation operating system = Cross platform genre = Application Lifecycle Management license = Eclipse Public License website =… …   Wikipedia

  • Software prototyping — Software prototyping, a possible activity during software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed.A prototype typically simulates only a few aspects of the features of the… …   Wikipedia

  • Software as a service — (SaaS, typically pronounced sass ) is a model of software deployment where an application is hosted as a service provided to customers across the Internet. By eliminating the need to install and run the application on the customer s own computer …   Wikipedia

  • Software peer review — In software development, peer review refers to a type of software review in which a work product (normally some form of document) is examined by its author and one or more colleagues, in order to evaluate its technical content and… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”