The 4 Software Engineering Activities, Plus the Umbrella Activities
The four fundamental software engineering activities are specification, development, validation and evolution. This is the set named in Ian Sommerville's textbook, and it is the answer most courses expect.
Every software process contains all four. What changes between processes is the order and the size of each pass. Waterfall runs them once in sequence. Agile runs all four inside every short iteration.
| Activity | The question it answers | Main output |
|---|---|---|
| Specification | What should the software do? | Agreed requirements |
| Development | How do we build it? | Design and working code |
| Validation | Does it do what was asked? | Tested, accepted software |
| Evolution | What has to change now? | Updated releases |
1. Software specification
Specification means deciding what the system must do and what limits it has to respect.
You gather needs from users, write them down, and check them with the people who asked. The written result is often called a software requirements specification.
Two kinds of requirement come out of this. Functional requirements say what the system does. Non functional requirements say how well, such as response time, uptime and security.
Getting this wrong is expensive. A requirement misunderstood here is paid for in every later activity.
2. Software development
Development covers design and implementation. Design decides the structure. Implementation writes the code.
- Architectural design. The major parts, their responsibilities, and how they talk.
- Detailed design. Interfaces, data models and database schemas.
- Coding. Writing the software, in version control, in small reviewed changes.
- Unit testing. Each developer proves their own piece works before it is merged.
3. Software validation
Validation shows that the software matches what was asked for. Verification is the narrower question of whether it was built correctly.
Testing happens in layers, and each layer catches a different class of defect.
| Level | What it checks |
|---|---|
| Unit test | One function or class in isolation |
| Integration test | Two or more parts working together |
| System test | The whole system against the requirements |
| Acceptance test | Real users confirming it solves their problem |
No amount of testing proves software has no defects. It raises confidence, which is the honest goal.
4. Software evolution
Evolution is everything that happens after the first release. Most of the money a system costs is spent here.
Maintenance work is usually sorted into four kinds.
- Corrective. Fixing defects found in production.
- Adaptive. Keeping up with new operating systems, libraries or rules.
- Perfective. Adding features and improving speed.
- Preventive. Cleaning up code and paying down debt before it causes failures.
The five framework activities and the umbrella activities
A second list appears in Roger Pressman's textbook, and exam questions mix the two. Pressman names five framework activities.
- Communication. Talk to the customer and collect needs.
- Planning. Set tasks, schedule, risks and resources.
- Modeling. Build the requirements model and the design.
- Construction. Write the code and test it.
- Deployment. Deliver, gather feedback, and support.
Umbrella activities run across all five, from start to finish, rather than in one phase. Pressman lists these.
- Project tracking and control. Compare progress against the plan.
- Risk management. Find and reduce what could derail the work.
- Software quality assurance. Define and enforce the quality bar.
- Technical reviews. Catch defects by reading work, not only by running it.
- Measurement. Collect metrics that support decisions.
- Configuration management. Control versions and changes to every work product.
- Reusability management. Build and reuse shared parts.
- Work product preparation. Produce the documents, models and lists the project needs.
The short way to say it is this. The four or five activities move the work forward. The umbrella activities keep it under control.
How to Prepare
- Name the source when you answer. Saying "Sommerville's four fundamental activities" or "Pressman's five framework activities" shows you know both lists exist.
- Map them to agile. Be ready to say that a two week sprint contains all four activities, not one of them.
- Know the principles behind the process. See the four principles of software engineering for the layer underneath.
- Learn design patterns for the development activity. Start with what is a design pattern in software engineering.
- Practice real design questions. Process theory is a short round, and system design is a long one. Grokking the System Design Interview covers the long one.
- Cover the basics first if you are new. Grokking System Design Fundamentals explains scaling, storage and reliability in order.
- Know what else gets asked. What type of questions are asked in a software engineering interview lists the usual rounds.

GET YOUR FREE
Coding Questions Catalog

$99

$197

$72