Software Life Cycle Processes Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.


ISO / IEC 12207 was inaugurated on 1st August 1995 and it was the first International Standard for a broad set of life cycle set process and tasks for system that mostly involving in software and for stand-alone software and service. That International Standard was followed in November 2002 BY ISO / IEC 15288 which addressed system life cycle processes.

Content and structure of the following ISO standards for quality management, software engineering processes, systems engineering processes, and information technology service delivery:

ISO 9001:2000, Quality management systems - Requirements (ISO 2000b)

ISO 90003:2004, Guidelines for the application of ISO 9001:2000 to computer software (ISO 2004a)

ISO 15288:2008, Systems and software engineering - System life cycle processes (ISO 2008a)

ISO 12207:2008, Systems and software engineering - Software life cycle processes (ISO 2008b)

ISO 20000:2005, Information technology - Service management (ISO 2005a)

ISO 12207:2008, Systems and software engineering - Software life cycle processes

Software life cycle processes is an outline to register all processes, activities, and tasks used that used to develop and maintenance of software products. This standard is designed to identify whether the software life cycle is following the ISO standard or not. Thus to fulfill the company's business need, ISO 12207 is structured very closely with ISO 15288. ISO 12207 have seven groups processes that shown in figure 1 and figure 2. In generally, these processes are specific elaborations of the system life cycle processes identified in ISO 15288.

ISO 12207:2008, Software Life Cycle Processes

The main sections of 12207 are Agreement, Organizational Project Enabling, Project, Technical, Software Implementation, Software Support, and Software Reuse.

ISO 12207:2008 System Context Processes

Figure 1: System Context Processes

System context processes have four major sections consist of Agreement, Organizational Project Enabling, Project and Technical.

Agreement section is a process to procurement supply. The scopes of this section whether acquire products or services, or provide products or services.

Organizational Project-Enabling Life Cycle Model Management Maintain the organization's policies, life cycle models, processes, and procedures Infrastructure Management Manage organizational infrastructure and resources to support projects Project Portfolio Management Initiate projects needed to support organizational goals and policies Human Resource Management Provide qualified, competent staff to projects Quality Management Assure products and services meet quality goals and satisfy customers

Project Project Planning Develop and disseminate project plans and schedules Project assessment and Control Determine project status and ensure project execution according to plans, schedules, and budgets Decision Management Analyze and select decisions from among alternative choices Risk Management Identify, assess, and manage risks Configuration Management Maintain integrity of selected project and process outputs Information Management Collect, maintain, and retrieve selected information Measurement Collect, analyze, and report process and product measures

Technical Stakeholder Requirements Definition Identify system requirements for services needed by users and other stakeholders System Requirements Analysis Transform stakeholder needs to technical system requirements System Architectural Design Define the components and structure of a solution addressing the system requirements Implementation Produce specified components that address architectural design requirements System Integration Assemble system components in accordance with the architectural design System Qualification Testing Confirm that design requirements have been met Software Installation Install the software in the operational environment Software Acceptance Support the acquiring organization in showing that the product meets requirements Software Operation Use the software to provide specified services Software Maintenance Sustain capability of the software through corrective, preventive, adaptive, and preventive actions Software Disposal Retire and remove the software.

ISO 12207:2008 Software Specific Processes

Software Implementation

Software Implementation Process

Software Support

Software Reuse

Software Requirements Analysis Process

Software Documentation Management Process

Domain Engineering Process

Software Architectural Design Process

Software Configuration Management Process

Reuse Asset Management Process

Software Detailed Design Process

Software Quality Assurance Process

Reuse Program Management Process

Software Construction Process

Software Verification Process

Software Integration Process

Software Validation Process

Software Qualification Testing Process

Software Review Process

Software Audit Process

Software Problem Resolution Process

Figure 2: Software Specific Processes

ISO 12207:2008: Software Implementation Process

This process is the software-specific specialization of the ISO 15288 Implementation process. Here, the appropriate life cycle model is selected and development activities are mapped to that model. Standards and procedures are then selected and tailored to fit the needs of the project and implementation plans are developed. The results of implementation planning are documented and maintained under configuration management. The Software Implementation process is supported by six lower-level processes:

Software Requirements Analysis

Software Architectural Design

Software Detailed Design

Software Construction

Software Integration

Software Qualification Testing

Software Requirements Analysis

In the Software Requirements Analysis process, the system requirements allocated to each software item are analyzed to develop the software requirements. Software requirements must be traceable to, and consistent with, the system requirements and system architecture. Software requirements include specification of functional requirements; performance requirements; interfaces; safety and security requirements; qualification and acceptance requirements; and user documentation, operations, and maintenance requirements.

Software Architectural Design

The Software Architectural Design process translates the software requirements into a high-level design, allowing the requirements to be allocated to software components. The interfaces between those components are defined and the high-level design, interfaces, database design, and test requirements are all documented. Preliminary user documentation and software integration schedules are also developed as part of this process.

Software Detailed Design

The Software Detailed Design process develops the design of each software component to finer levels to allow them to be coded and tested. Interface definitions, test requirements, and integration and test schedules are refined. The detailed design, database design, and interfaces are documented.

Software Construction

Using the detailed design specifications, each software unit and database is coded and tested. The software integration schedule is updated and documentation is revised as needed.

Software Integration

In the Software Integration process, a documented plan for the integration of software units is developed and executed. The results of integration and testing are documented to ensure that the software requirements have been satisfied and that the software components are ready for software qualification testing.

Software Qualification Testing

The Software Qualification Testing process demonstrates that the software product performs as specified. Test plans and results are documented. Audits of the software qualification results may be conducted as part of the audits of system qualification testing.

ISO 12207:2008: Software Support Process

The Software Support processes are primarily used to assist the Software Implementation processes, but may also be used with other processes. In some cases, they also provide software-specific specializations for the processes found in the System Context grouping. They are:

Software Documentation Management (supports the Information Management process)

Software Configuration Management (supports the Configuration Management process)

Software Quality Assurance

Software Verification

Software Validation

Software Review

Software Audit

Software Problem Resolution

Software Documentation Management

The Software Documentation Management process captures the results of implementing software life cycle processes. A plan identifying the documents to be developed specifies documentation standards and the schedule, methods, and responsibilities for development, review, control, and production of those documents.

Software Configuration Management

Software items are identified and controlled through the Software Configuration Management process, which is used to ensure the completeness and consistency of software items. The process begins with the development of a plan for configuration management, which includes responsibilities and the procedures for performing configuration management activities. ISO 12207 takes a fairly standard view of the software configuration management process as comprising five major activities:

Configuration identification-Specifying the software items and versions to be controlled

Configuration control-Recording, reviewing, approving, and implementing requests to modify software items

Configuration status accounting-Monitoring the status and history of software maintained under configuration management

Configuration evaluation-Ensuring the functional and -- physical completeness of software items

Release management and delivery-Controlling the release and delivery of software and documentation

Software Quality Assurance

The Software Quality Assurance process is used to assure that software products conform to their standards and that the processes used follow their plans. To provide that assurance, objective evaluations are necessary. In addition to having appropriate authority and resources, those who perform the Software Quality Assurance process are expected to have organizational freedom from those developing the product or delivering a service. Plans for software quality assurance include identification of quality assurance procedures, responsibilities, and schedules. Software quality assurance activities are expected to be coordinated with other supporting processes such as Software Verification, Software Validation, Software Review, Software Audit, and Software Problem Resolution. Product assurance requirements include ensuring that plans required under the contract are developed and that products satisfy their requirements. Process assurance requirements address the need for those who are implementing software processes to follow plans, measure processes and products, and properly train the project staff.

Software Verification

The Software Verification process is used to determine if products meet their requirements. The requirements may be part of a customer specification or may come from a prior life cycle process such as Software Detailed Design or Software Construction. Unlike the Software Quality Assurance process, the Software Verification process is not necessarily implemented by those independent of the developers or operators, although the use of independent third parties may sometimes be appropriate. Problems detected by the Verification process are handled through the Software Problem Resolution process. Verification planning includes determination of the need for verification, evaluation of the criticality of verifying specific products, and selection of verification approaches. Verification activities include the following:

Requirements verification

Design verification

Code verification

Integration verification

Documentation verification

Software Validation

The Software Validation process is used to determine if the completed software system supports its intended use. As defined by ISO 12207, software validation is clearly focused on testing the end product and not on intermediate work products created during the product's life cycle. Validation testing includes stress testing, testing at boundaries, testing the ability of users to conduct their intended tasks, and testing the software in its target environment. Validation issues are resolved through the Software Problem Resolution process.

Software Review

The Software Review process is used to help stakeholders maintain a shared view of project management and technical status. Project management reviews focus on evaluating progress against plans, monitoring resource allocation, and managing risks. Technical reviews are used to evaluate software products and services to confirm that they meet their specifications, are developed according to plan, and are ready to progress to the next scheduled activities. The Software Problem Resolution process is used for problems found by the Software Review process.

Software Audit

The Software Audit process is used for independent evaluation of compliance with requirements, specifications, contractual agreements, and plans. Problems and discrepancies discovered through the Software Audit process are handled by the Software Problem Resolution process.

Software Problem Resolution

As a supporting process, the Software Problem Resolution process is used to address problems discovered during the execution of all other software life cycle processes. When problems are detected, appropriate parties are notified, the problems are analyzed, dispositions are determined, and status is monitored and reported. Records of problems and resolutions are maintained.

ISO 12207:2008: Software Reuse Processes

Processes that contains within this group made to help an organization to use again knowledge advantage to develop through the various project. The Software Reuse processes are:

Domain Engineering:

The Domain Engineering process is reuse within specific domains such as architectural, models, concepts and assets. Architectures and other assets are attained or developed and are maintained.

Reuse Asset Management:

The Reuse Asset Management appointed to manage assets to keep assets could be used for a long term. Potential asset to re-use will be evaluated and classified and kept in asset storage.

Reuse Program Management:

The Reuse Program Management process is used to provide the overall management of an organization's reuse program so that opportunities for reuse may be effectively executed. As part of this process, domains suitable for reuse exploitation are identified, the ability of the organization to take advantage of its reusable assets is evaluated, and recommendations for improvements to the organization's reuse capabilities are identified. The reuse program is periodically planned, monitored, and reviewed.