DEV Community

Anmar Hani
Anmar Hani

Posted on


Software Engineering Process Activities P.1

Software engineering is a large field, involving many different activities and processes. The following are four of the main process activities that are common to most software engineering projects:

1. Specification:

This activity involves working with stakeholders and users to identify and understand the needs and requirements for the software being developed.

This may include interviews, surveys, and other forms of research to gather information.

This activity sets the foundation of the software development, it helps defining the scope, constraints, and objectives of the project.

It also helps identifying the stakeholders and the users of the software.

Types of specifications include Functional and Non-Functional requirements, Use Cases, and User Stories.

Diagrams commonly used in requirement engineering:

  • Use Case diagrams
  • Activity diagrams
  • State diagrams
  • Sequence diagrams

2. Development:

1. Design:

This activity involves creating a plan or blueprint for the software, including the overall architecture and specific components that will be needed.

This may involve creating diagrams, models, and other documentation to communicate the design to other team members and stakeholders.

The design process starts by understanding the requirements and constraints from the specification phase and then creating a plan that outlines how the software will be built.

Diagrams commonly used in the design phase:

  • Class diagrams
  • Sequence diagrams
  • Component diagrams
  • Deployment diagrams

Common architectural patterns:

  • Model-View-Controller (MVC)
  • Model-View-ViewModel (MVVM)
  • Representational State Transfer (REST)

2. Implementation:

This activity involves the actual coding and development of the software.

This may involve writing code in a variety of languages, as well as debugging and testing to ensure the software is working as intended.

This activity follows the design, it is where the software is built according to the plan.

It is where the code is written, the unit tests are created, and the software is integrated.

Implementation activity include:

  • Programming languages
  • Software development methodologies (e.g. Agile, Waterfall)
  • Design patterns, like Creational, Structural, and Behavioral patterns.
  • Algorithms, like sorting, searching, and graph traversals.
  • Data structures, like lists, arrays, stacks, and queues.

3. Validation:

This activity involves evaluating the software during and at the end of the development process to determine whether it satisfies the specified requirements.

This may include testing, inspection, and other forms of verification.

This phase usually happens in parallel with the implementation phase, it ensures that the software meets the requirements and that it's working as intended.

The validation process helps detecting defects early on and saves time and cost.

Common types of testing include:

  • Unit testing
  • Integration testing
  • System testing
  • Acceptance testing

4. Evolution:

This activity involves ongoing support and upkeep of the software after it has been released.

This may include bug fixes, updates, and other forms of modification to keep the software working properly over time.

This phase starts once the software is released, it is where the software is maintained, updated and improved over time.

The evolution process helps addressing new requirements if needed when needed, and defects that were not detected during the validation phase.

Also, it includes the deployment of the software to the production environment.

Good to note that these are not the only activities, but it is the most common. I am going to go in detail on each activity and mention more details, starting with the specification. Thanks for reading!

Top comments (0)

An Animated Guide to Node.js Event Loop

>> Check out this classic DEV post <<