Skip to content
SE eBook
Menu

Software Process

Public section
Preferences are saved on this device.

Software Process and Core Activities

A software process is the structured way in which software is developed and evolved. It defines how we go from an initial idea or need to a working software product, and how we continue to modify that product over time.

In simple terms, a software process is the set of activities, methods and practices followed during software development. Most software processes include the following core activities:

1. Software Requirements Specification (SRS)

This activity focuses on what the software must do. It involves:

  • Identifying and documenting required functionalities.
  • Capturing constraints (performance, security, legal, hardware limits and so on).
  • Producing a clear, unambiguous Software Requirements Specification (SRS).

A good SRS is essential. If requirements are unclear or incorrect, later stages will suffer, leading to rework, delays and cost overruns.

Remember: errors in requirements are usually the most expensive to fix if they are discovered late in the project.

2. Design and Coding

Once the requirements are understood, the next step is to decide how the software will meet them. This phase is usually split into two levels:

High-level (architectural) design

  • Defines the overall structure of the system.
  • Identifies major modules, components and their interactions.

Detailed design and coding

  • Specifies algorithms, data structures, interfaces and internal logic.
  • Implements the design in a programming language (coding).

The outcome of this activity is the source code of the system, organised according to the chosen design.

3. Verification and Validation (V&V)

Verification and validation (V&V) ensure that the software is both correct and useful:

Verification – “Are we building the product right?”

  • Checks whether the software correctly implements the specified design and requirements.
  • Activities include reviews, inspections and various types of testing.

Validation – “Are we building the right product?”

  • Checks whether the software actually meets the real needs of users and stakeholders.
  • Involves user acceptance testing, beta trials and feedback.

Together, V&V ensure that the software conforms to its specification and satisfies user expectations.

4. Software Maintenance and Evolution

After the software is deployed, work does not stop. The system is used in the real world and must be:

  • Corrected – fixing defects that surface during operation.
  • Adapted – modifying the software for new environments, platforms or regulations.
  • Enhanced – adding new features or improving performance and usability.

This ongoing process is called software maintenance and, more broadly, software evolution. It often consumes a large portion of the total project budget.

Software Evolution

Software evolution is the continuous process of modifying and updating software after its initial release. Typical reasons include:

  • Responding to changing user requirements and business rules.
  • Fixing bugs and security vulnerabilities.
  • Improving performance, usability and reliability.

In medium to large software projects, the budget spent on evolving existing software is often greater than the cost of developing the first version. Reasons include:

  • The need to fully understand and safely modify an existing, often complex system.
  • Dependencies on other systems, libraries and legacy technologies.
  • The requirement to maintain backward compatibility and avoid breaking current users.

Therefore, software engineering places strong emphasis on designing software for change, not just for initial delivery.


Login to add personal notes and bookmarks.