• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Software Engineering » Software Process and Life Cycle
Next →
← Prev

Software Process and Life Cycle

By Dinesh Thakur

To accomplish a set of tasks, it is important to go through a sequence of predictable steps. This sequence of steps refers to a road map, which helps in developing a timely, high quality, and highly efficient product or system. Road map, commonly referred to as software process, comprises activities, constraints, and resources that are used to produce an intended system. Software process helps to maintain a level of consistency and quality in products or services that are produced by different people.

The software development process, also known as the software life cycle, describes the evolution of the software product from its conception through itsdesign, implementation, delivery, and finally to its maintenance. This chapterdiscusses software process, standards used to assess software process, variousprocess models, and the organizational process.

We’ll be covering the following topics in this tutorial:

  • SOFTWARE PROCESS, PROJECT, AND PRODUCT
  • Software Process Components
  • Process Framework

SOFTWARE PROCESS, PROJECT, AND PRODUCT

Software engineering comprises interrelated and recurring entities, which are essential for software development. Software is developed efficiently and effectively with the help of well defined activities or processes. In general, a process is defined as a series of steps involving activities and resources, which produces the desired output. Software process is defined as a collection of procedures to develop the software product according to certain goals or standards. Generally, the following points are noted about software process.

  1. It uses resources subject to given constraints and produce intermediate and final products.
  2. It is composed of sub processes that are organized in such a manner that each sub process has its own process model.
  3. It is carried out with an entry and exit criteria that helps in monitoring the beginning and completion of the activity.
  4. It includes guidelines, which explain the objectives of each activity.
  5. It is vital because it imposes uniformity on the set of activities.
  6. It is regarded as more than just a procedure, tools or techniques, which are collectively used in a structured manner to produce a product.
  7. It includes various technical and managerial issues, which are required to develop the software.

                         The characteristics of software processes are listed in Table.

Characteristic

Description

Understandability

The extent to which the process is explicitly defined and the ease with which the process definition is understood.

Visibility

Whether the process activities culminate in clear results so that the progress of the process is visible externally.

Supportability

The extent to which CASE tools can support the process activities.

Acceptability

The extent to which the defined process is acceptable and usable by the engineers, responsible for producing the software product.

Reliability

The manner in which the process is designed such that errors in the process are avoided or trapped before they result in errors in the product.

Robustness

Whether the process can continue in spite of unexpected problems.

Maintainability

Whether the process can evolve to reflect the changing organizational requirements or identify process improvements

Rapidity

The speed with which the complete software can be delivered with given specifications.

A project is defined as a specification essential for developing or maintaining a specific product. Software project is developed when software processes are executed for certain specific requirements of the user. Thus, by using software process, the software project can be easily developed. The activities in software project comprise various tasks for managing resources and developing products. The software project involves people (developers, project manager, end-users, and so on) also referred to as participants who use software processes to create a product according to the user’s requirements. The participants play a major role in the development of the project and select the appropriate process for the project. In addition, a project is efficient if it is developed within the time constraint. The outcome or the result of the software project is known as a product. Thus, a software project uses software processes to create a product.

                              Software Project

Software process can be used in the development of many software projects, each of which can produce one or more software products. Software project begins with requirements and ends with the accomplishment of the requirements. Thus, the software process should be performed to develop the final software by accomplishing user’s requirements.

                              Process Projects and Products

Software Process Components

The objective of the software process is to develop a product, which accomplishes user’s requirements. The major components of the software process include a process management process and a product engineering process. The Process Management Process (PMP) aims at improving software processes so that a cost effective and high-quality product is developed. For this, the existing processes of the completed projects are examined. The process of comprehending the existing process, analyzing its properties, determining how to improve it, and then effecting the improvement is carried out by PMP.A group known as the Software Engineering Process Group (SEPG) performs the activities of the process management.

                     Components of Software Process

Based on above mentioned analysis, the product engineering processes are improved, thereby improving the software process. The aim of the product engineering process is to develop the product according to the user’s requirements. The product engineering process comprises three major components, which are listed below.

Development process: It is the process which is used during the development of the software. It specifies the development and quality assurance activities that are to be performed. Programmers, designers, testing personnel, etc., perform these processes.

Project management process: It is concerned with the set of activities or tasks, which are used to successfully accomplish a set of goals. It provides the means to plan, organize, and control the allocated resources to accomplish project costs, time, and performance objectives. For this, various processes, techniques, and tools are used to achieve the objectives of the project. Project management team performs the activities of this process.

Configuration control process: It manages changes that occur as a result of modifying the requirements. In addition, it maintains integrity of the products with the changed requirements. The activities in configuration control processes are performed by a group called the Configuration Control Board (CCB).

Note that the project management process and configuration control process depend on the development process. The management process aims to control the development process, depending on the activities in the development process.

Process Framework

Process framework determines the processes which are essential for completing a complex software project. This framework identifies certain activities, known as framework activities, which are applicable to all software projects regardless of their type and complexity. Some of the framework activities are listed below.

  1. Communication: It involves communication with the user so that the requirements are easily understood.
  2. Planning: It establishes a plan for accomplishing the project. It describes the schedule for the project, the technical tasks involved, expected risks, and the required resources.
  3. Modeling: It encompasses creation of models, which allow the developer and the user to understand software requirements and the designs to achieve those requirements.
  4. Construction: It combines generation of code with testing to uncover errors in the code.
  5. Deployment: It implies that the final product (software) is delivered to the user. The user evaluates the delivered product and provides feedback based on the evaluation.

                        Process Framework

In addition to framework activities, process framework also comprises a set of activities known as umbrella activities, which are used throughout the software process. These activities are listed below.

  1. Software project tracking and control: It monitors the actual process so that management can take necessary steps if the software project deviates from the plans laid down. It involves tracking procedures and reviews to check whether the software project is according to user’s requirements. A documented plan is used as a basis for tracking the software activities and revising the plans.
  2. Formal technical reviews: It assesses the code, products and documents of software engineering practices to detect and remove errors.
  3. Software quality assurance: It assures that the software is according to the requirements. In addition, it is designed to evaluate the processes of developing and maintaining quality of the software.
  4. Reusability management: It determines the criteria for products reuse and establishes mechanisms to achieve reusable Components.
  5. Software configuration management: It manages the changes made in the software processes of the products throughout the life cycle of the software project. It controls changes made to the configuration and maintains the integrity in the software development process.
  6. Risk management: It identifies, analyzes, evaluates and eliminates the possibility of unfavourable deviations from expected results, by following a systematic activity and then develops strategies to manage them.

You’ll also like:

  1. Software Maintenance Life Cycle
  2. Life Cycle of JSP
  3. Explain Applet Life Cycle
  4. What is Systems Development Life Cycle?
  5. Applet Life Cycle in Java with Example
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Software Engineering

Software Engineering

  • SE - Home
  • SE - Feasibility Study
  • SE - Software
  • SE - Software Maintenance Types
  • SE - Software Design Principles
  • SE - Prototyping Model
  • SE - SRS Characteristics
  • SE - Project Planning
  • SE - SRS Structure
  • SE - Software Myths
  • SE - Software Requirement
  • SE - Architectural Design
  • SE - Software Metrics
  • SE - Object-Oriented Testing
  • SE - Software Crisis
  • SE - SRS Components
  • SE - Layers
  • SE - Problems
  • SE - Requirements Analysis
  • SE - Software Process
  • SE - Software Metrics
  • SE - Debugging
  • SE - Formal Methods Model
  • SE - Management Process
  • SE - Data Design
  • SE - Testing Strategies
  • SE - Coupling and Cohesion
  • SE - hoc Model
  • SE - Challenges
  • SE - Process Vs Project
  • SE - Requirements Validation
  • SE - Component-Level Design
  • SE - Spiral Model
  • SE - RAD Model
  • SE - Coding Guidelines
  • SE - Techniques
  • SE - Software Testing
  • SE - Incremental Model
  • SE - Programming Practices
  • SE - Software Measurement
  • SE - Software Process Models
  • SE - Software Design Documentation
  • SE - Software Process Assessment
  • SE - Process Model
  • SE - Requirements Management Process
  • SE - Time Boxing Model
  • SE - Measuring Software Quality
  • SE - Top Down Vs Bottom UP Approaches
  • SE - Components Applications
  • SE - Error Vs Fault
  • SE - Monitoring a Project
  • SE - Software Quality Factors
  • SE - Phases
  • SE - Structural Testing
  • SE - COCOMO Model
  • SE - Code Verification Techniques
  • SE - Classical Life Cycle Model
  • SE - Design Techniques
  • SE - Software Maintenance Life Cycle
  • SE - Function Points
  • SE - Design Phase Objectives
  • SE - Software Maintenance
  • SE - V-Model
  • SE - Software Maintenance Models
  • SE - Object Oriented Metrics
  • SE - Software Design Reviews
  • SE - Structured Analysis
  • SE - Top-Down & Bottom up Techniques
  • SE - Software Development Phases
  • SE - Coding Methodology
  • SE - Emergence
  • SE - Test Case Design
  • SE - Coding Documentation
  • SE - Test Oracles
  • SE - Testing Levels
  • SE - Test Plan
  • SE - Staffing
  • SE - Functional Testing
  • SE - Bottom-Up Design
  • SE - Software Maintenance
  • SE - Software Design Phases
  • SE - Risk Management
  • SE - SRS Validation
  • SE - Test Case Specifications
  • SE - Software Testing Levels
  • SE - Maintenance Techniques
  • SE - Software Testing Tools
  • SE - Requirement Reviews
  • SE - Test Criteria
  • SE - Major Problems
  • SE - Quality Assurance Plans
  • SE - Different Verification Methods
  • SE - Exhaustive Testing
  • SE - Project Management Process
  • SE - Designing Software Metrics
  • SE - Static Analysis
  • SE - Software Project Manager
  • SE - Black Box Testing
  • SE - Errors Types
  • SE - Object Oriented Analysis

Other Links

  • Software Engineering - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW