Software Engineering Process Activities
Tags: programming, tutorial, career, computerscience
Published: 2023-01-10 18:44:20

# Overview of Software Process Activities


Software development is a complex process that involves numerous activities and tasks. In order to ensure that software products are developed efficiently and effectively, it is important to follow a structured software process. This article will provide an overview of software process activities, including project management, software process definition, software process models, and roles involved in software development.

---

## Project Management Activities


Project management activities involve planning, organizing, and managing resources to achieve specific software development goals and objectives within a given timeline and budget. There are five key project management activities:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62fcmiyyat0qk95yhsas.png)
Reference: By Sandeep Kashyap, Published in ProofHub Blog


1. Initiation: Defining the project goals and objectives, assembling the project team, and conducting initial planning activities.
<br>
2. Planning: Creating a project plan that includes the project scope, timeline, budget, and resource allocation.
<br>
3. **Execution (SOFTWARE PROCESSES): Implementing the project plan and completing project tasks**.
<br>
4. Monitoring and Control: Monitoring the project's progress and taking corrective action as necessary.
<br>
5. Closing: Completing the project and conducting a post-project evaluation.

---

## Software Process and its Activities

Software process refers to the set of activities and methodologies used to develop and plan and complete software products which is the **Execution phase in Project Management**. The activities involved in software process include:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xmhk0hjkipyzk6v7p6p6.png)
Reference: Sommerville, Software Engineering, 10 ed., Chapter 2


1. **Requirements Specification**: Gathering and defining software requirements.
<br>
2. **Development**: Creating the software product through design and implementation.
    - **Design**: Designing the software architecture.
    - **Implementation**: Implementing (programming) the design and creating the software product.
<br>
3. **Validation & Verification**: Testing the software product to ensure that we are building the right product (validation) and building the product right (verification).
<br>
4. **Evolution**: Maintaining and updating the software product over time.

---

## Software Process Models

Software process models provide a framework for organizing and defining the software process four activities and tasks necessary to develop software products. There are several types of software process models, including:
<br>
### General Models

1. Waterfall Model: A linear and sequential model that progresses through the software development life cycle in asequential manner.
<br>
2. Evolutionary Development Model: An iterative and incremental model that involves developing and refining the software product through repeated cycles of requirements gathering, design, implementation, and testing.
<br>
3. Formal Systems Development Model: A model that emphasizes the use of formal methods and mathematical techniques in software development.
<br>
### Lean Models

1. Kanban: A model that emphasizes the use of visual aids and continuous improvement to manage software development.
<br>
2. Agile: An iterative and incremental model that emphasizes flexibility and collaboration between the development team and the customer. There are several types of agile models, including:
    - Extreme Programming (XP)
    - Dynamic Systems Development Method (DSDM)
    - Agile Software Development (ASD)
    - Crystal
    - Test-Driven Development (TDD)
    - Rapid Application Development (RAD)

---

## Jobs:
Roles Involved in Project Management & Software Process Planning

### 1. Project Manager: 
Responsible for managing the project and choosing the appropriate software process model.

---

## What's Next?

In the next article, we will focus on the first activity of software process activities: **Requirements Specification**.