Programming Concepts · Chapter 1 · Foundations

1.1 Software Lifecycle

Every software project moves through the same four phases — plan, design, build, ship — wrapped in activities that never stop, inside a rigid model that works only until requirements change.


bookSHelf  ·  Introduction to Programming Concepts and Methodologies  ·  §1.1  ·  a self-paced section

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Outline — by the end of this section you will be able to

Learning Objectives

  1. Name the four generic framework activities (phases) of a software process model and describe what happens in each Def. 1.1.1
  2. Explain what umbrella activities are and give examples of them §1.1.2
  3. Describe what a task set (workflow) is and how it relates to a software engineering action Def. 1.1.2
  4. Explain what a prescriptive process model is and weigh its strengths and weaknesses Def. 1.1.3
1.1
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.1 — the four generic phases every project follows

Software teams do not build in a random order. The most common process model is built from four activities called phases — generic because every project uses them, no matter what it builds.

Plan it. Design it. Build it. Ship it.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Context Pause — why every project shares the same four phases

You always plan it, design it, build it, and ship it.

No matter what kind of software you build, these four phases are the skeleton every software project shares — the company, the kind of problem, and the size of the project only shift how much work each phase gets.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.1 — the four phases, named

Definition 1.1.1: Framework Activities

Definition 1.1.1 — Framework Activities

Framework activities (also called phases) are the four generic activities that every software process model includes: inception, elaboration, construction, and deployment.

Definition 1.1.1 — Framework activities Four rounded chips read inception, elaboration, construction, deployment. Beneath them, step captions plan, design, build, ship fade in together with the line "plan -> design -> build -> ship". A translucent highlight rectangle, already resting on the first chip, then moves onto each chip in turn left to right and stays on the fourth. Framework Activities inception elaboration construction deployment plan design build ship plan -> design -> build -> ship

Definition 1.1.1: a highlight sweeps inception → elaboration → construction → deployment.

Every phase happens in every project — a two-person hobby app and a fifty-engineer platform both move through the same four stops, just with very different-sized stays in each.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Worked example — one app, four phases

Example 1.1.1: A JavaScript App Through the Four Phases

Worked Example 1.1.1 — a name-and-greeting app

Amara wants to build a tiny JavaScript app that asks the user their name and prints a friendly greeting in the browser’s console. Walk each phase of the software life-cycle for this project.


Solution.

  • Inception — decide the app reads a name and prints “Hello, name!”; scope is one input, one output.
  • Elaboration — write the requirement, sketch the plan: prompt the user, store the name, console.log the greeting.
  • Construction — write it: const name = prompt(...); console.log("Hello, " + name + "!");
  • Deployment — open the page, type a name, see the greeting print.

Answer: inception sets the goal, elaboration plans it, construction writes the code, and deployment runs it in the browser.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Your turn — match each task to its phase

Try It Now 1.1.1

Try It Now 1.1.1 — a school-lunch ordering app

Match each task to the framework activity it belongs to: (a) writing the code that shows the menu, (b) deciding which schools the app will serve, (c) drawing the overall structure of the app, (d) putting the finished app in the app store.


Answer: (a) construction  (b) inception  (c) elaboration  (d) deployment

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.2 — important, but tangential to the four phases

Umbrella Activities

If the framework activities are the cooking, umbrella activities are the things you do alongside it — like keeping your pots clean and your pantry stocked.

  • training and communication
  • risk management and planning
  • configuration management
  • quality management (reviews, testing)
  • architecture management
  • security management
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Insight Note — umbrella activities are the kitchen cleanup

The four phases are the cooking — you still wash the pans.

Umbrella activities run alongside every phase, holding the whole project together rather than belonging to any single one.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Your turn — name the umbrella activity

Try It Now 1.1.2

Try It Now 1.1.2 — testing before release

Miguel’s team is testing its app to find bugs before release. Which umbrella activity does this testing belong to, and why?


Answer: Quality management. That umbrella activity covers the checks — reviews, estimations, metrics, testing — that keep the software correct and reliable.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.3 — the checklist inside one job

Definition 1.1.2: Task Set

Definition 1.1.2 — Task Set

A task set (or workflow) encompasses all the tasks required to accomplish a specific software engineering action within a framework activity.

Definition 1.1.2 — Task set An action chip ("debug the loop") sits above a checklist of five tasks that reveal one at a time, top to bottom, and accumulate rather than replace one another: reproduce the bug, inspect the loop, trace by hand, fix the condition, test the fix. A closing note reads "one action = a to-do list of tasks." Task Set debug the loop reproduce the bug inspect the loop trace by hand fix the condition test the fix one action = a to-do list of tasks

Definition 1.1.2: one action reveals a checklist of tasks, one at a time.

Inside each phase you do specific jobs called software engineering actions — “design the architecture,” “define the requirements.” A task set is that action’s to-do list.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Context Pause — a task set is a to-do list for one job

One action. A checklist of small steps.

If “design the app” is the action, the task set is the checklist of every small step that job needs, from sketching screens to reviewing them. Task sets vary with the project, and activities within a process model usually overlap instead of running independently.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Worked example — one action, five tasks

Example 1.1.2: A Task Set for Debugging a JavaScript Loop

Worked Example 1.1.2 — a loop that prints the wrong number of times

The action is “debug the loop.” Write a task set that lists the small tasks this action needs.


Solution.

  • Reproduce the bug — run the code and watch what actually prints.
  • Inspect the loop — read the for/while condition, check where it starts and stops.
  • Trace by hand — write out each iteration and what the counter equals at the end.
  • Fix the condition — change the JavaScript (e.g. < to <=) and rerun.
  • Test the fix — run it again to confirm the output is now correct.
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Your turn — write a task set of your own

Try It Now 1.1.3

Try It Now 1.1.3 — requirements definition

The inception phase calls for the action “requirements definition.” List two example tasks that a task set for this action might include.


Answer: for example, interviewing users about their needs, and writing down the list of requirements. (Other reasonable tasks are fine too.)

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.4 — one generic template, many shapes

SDLC Methodologies and the Four Ps

Process models that follow the four generic framework activities are called SDLC methodologies. There is no single right way to build software — process frameworks are elaborated differently depending on four factors:

  • Problem — what the software must solve.
  • Project — the size, constraints, and resources of the effort.
  • People — the team’s size, skill, and experience.
  • Product — the type, complexity, and stakes of the software.
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Insight Note — the four Ps are the recipe’s ingredients

Same steps. Different ingredients.

The same cooking steps change based on what you are cooking, who is cooking, and how many people you are feeding. A process framework is adjusted to fit the problem, the project, the people, and the product the same way.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Your turn — a small app vs. a banking system

Try It Now 1.1.4

Try It Now 1.1.4 — why the same framework looks so different

A small team is building a simple app for one school, while a large team is building a banking system for a whole country. Why might the two teams elaborate the same framework activities differently?


Answer: their four Ps differ — the small app can keep each phase light, while the banking system’s larger problem, project, people, and product need far heavier planning, design, and review.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.5 — waterfall, prototyping, spiral, RUP

Traditional Prescriptive Process Models

These structured, orderly approaches to software engineering may help with four objectives:

  • Improve efficiency — a clear plan avoids rework.
  • Reduce risk — issues surface early.
  • Increase predictability — timelines and costs estimate better.
  • Capture best practices — tried-and-true methods.
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1.5 — the rigid recipe, named

Definition 1.1.3: Prescriptive Process Model

Definition 1.1.3 — Prescriptive Process Model

A prescriptive process model advocates an orderly approach to software engineering that involves following a prescribed set of activities in a continuous manner.

Definition 1.1.3 — Prescriptive Process Model A fixed four-box pipeline (plan, design, build, ship) connected by arrows that never change. A 'change' squiggle arrives from above, dips down to graze the pipeline, and bounces back up higher and dimmer, unable to enter it. Two notes then appear below explaining that this rigid recipe is great while requirements are stable but breaks when they change. Prescriptive Process Model plan design build ship change rigid recipe: great when requirements are stable breaks when requirements change

Definition 1.1.3: change bounces off a rigid, fixed pipeline.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Context Pause — “prescriptive” just means it tells you what to do

Prescriptive isn’t fancy. It’s just specific.

The word does not mean the model is fancy. It simply means the process model identifies a set of process elements — framework activities, software engineering actions, tasks, work products, quality assurance, and change control — for each project.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Insight Note — a rigid recipe vs. cooking to taste

Exact steps and timings — great, until the dish changes.

A prescriptive model is like a recipe with exact steps and timings. It is great when the dish is well understood, but it breaks down when the requirements change mid-meal, because the recipe cannot adapt quickly.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Your turn — does the rigid recipe fit?

Try It Now 1.1.5

Try It Now 1.1.5 — a startup whose features change weekly

Zara’s startup is building an app whose features keep changing every week based on customer feedback. Would a traditional prescriptive process model be a good fit? Give one reason.


Answer: no — it is too rigid and inflexible for requirements that change weekly. The next section explores Agile software development, built to handle exactly this kind of change.

1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

Glossary — the vocabulary this section defined

Key Terms

The four phases

framework activities (phases) — inception, elaboration, construction, deployment.
inception — planning goals and scope.
elaboration — analyzing requirements, designing architecture.
construction — coding and building.
deployment — releasing to end users.

Wrapping it all up

umbrella activities — training, risk, configuration, quality, architecture, and security management, run alongside every phase.
task set (workflow) — every task one action needs.
SDLC methodology — a process model that follows the generic framework.
four Ps — problem, project, people, product.
prescriptive process model — a prescribed, orderly, continuous sequence.

1.1
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

The headline result of §1.1

Every process model shares the same four phases

Inception, elaboration, construction, deployment — wrapped in umbrella activities that never stop, and broken down inside each phase into task sets. The four Ps (problem, project, people, product) decide how much weight each phase carries.

plan → design → build → ship

† A prescriptive process model follows that recipe rigidly, which brings efficiency and predictability when requirements hold still — and breaks when they don’t.

1.1
1.1 Software Lifecycle · bookSHelf Programming Concepts§1.1

§1.1 — Conclusions

What §1.1 leaves you with

The core idea

Every software process model shares four generic phases — inception, elaboration, construction, deployment — wrapped in umbrella activities, broken into task sets, and shaped by the four Ps (problem, project, people, product).

The failure case

A traditional prescriptive model follows a fixed, orderly sequence — efficient and predictable while requirements hold still, but too rigid and inflexible once they start changing rapidly.

Next: §1.2 — Variables and Data Types. Back to start.