DEV Community

Anmar Hani
Anmar Hani

Posted on • Edited on

Software Engineering Process Activities

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
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.
  2. Planning: Creating a project plan that includes the project scope, timeline, budget, and resource allocation.
  3. Execution (SOFTWARE PROCESSES): Implementing the project plan and completing project tasks.
  4. Monitoring and Control: Monitoring the project's progress and taking corrective action as necessary.
  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
Reference: Sommerville, Software Engineering, 10 ed., Chapter 2

  1. Requirements Specification: Gathering and defining software requirements.
  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.
  3. Validation & Verification: Testing the software product to ensure that we are building the right product (validation) and building the product right (verification).
  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:

General Models

  1. Waterfall Model: A linear and sequential model that progresses through the software development life cycle in asequential manner.
  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.
  3. Formal Systems Development Model: A model that emphasizes the use of formal methods and mathematical techniques in software development.

    Lean Models

  4. Kanban: A model that emphasizes the use of visual aids and continuous improvement to manage software development.

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

Top comments (0)