1.1 Software Lifecycle

Aligned outcomes:

SLO 1

Describe the software development life-cycle.

Section 1.1 teaches the software development life-cycle: it names the four framework activities (inception, elaboration, construction, deployment), explains umbrella activities and task sets, and weighs prescriptive process models. Working the JavaScript greeting and loop-debugging examples gives the student the vocabulary to describe how a real program moves from idea to running code.

SLO 2

Describe the principles of structured programming.

The structured-programming foundation starts here: the section's task sets and the construction-phase JavaScript (variables, `prompt`, `console.log`, loops) introduce the disciplined, step-by-step way code is planned, written, and checked. Tracing a loop to debug it rehearses the careful, structured thinking that the later control-flow sections build on.

Learning Objectives

By the end of this section, you will be able to:

In this section, you will learn to:
  • name the four generic framework activities (phases) of a software process model and describe what happens in each;
  • explain what umbrella activities are and give examples of them;
  • describe what a task set (workflow) is and how it relates to a software engineering action;
  • explain what a prescriptive process model is and weigh its strengths and weaknesses.
Video 1.1 — What is the SDLC? Watch this before reading 1.1.1; it shows the shape of a project before the phases are named. Captions available.

1.1.1 The Four Framework Activities

Software teams do not build in a random order. They follow a process model — a plan for what happens when. The most common one is the traditional process model, and it is built from four activities called phases: inception, elaboration, construction, and deployment. They are called generic phases because every project uses them, no matter what it builds.

Why every project shares the same four phases

No matter what kind of software you build, you always plan it, design it, build it, and ship it. These four phases are the skeleton that every software project shares, so learning them once lets you recognize the shape of any project.

Every process model uses these four phases. What changes is how much each one gets: the company, the kind of problem, and the size of the project all shift where the work goes.

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 — Framework activities are the four generic phases every software process model includes: inception, elaboration, construction, deployment.

Example 1.1.1: A JavaScript App Through the Four Phases

A student named 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

Step 1 — Inception (plan goals and scope). Amara decides the app will read a name and print "Hello, name!" in the console. The scope is a single-purpose greeting app — no login, no database, just one input and one output.

Step 2 — Elaboration (requirements and design). Amara writes down the requirement: "Get a name from the user and print a greeting." She sketches the plan: prompt the user, store the name in a variable, and use console.log to print the greeting.

Step 3 — Construction (write the code). Amara writes the JavaScript:

Editor
runs in your browser
▶ Press Run to see the output…

Step 4 — Deployment (release it). Amara opens the page in the browser, types their name, and sees the greeting appear in the console. The app is now in a usable form.

Answer: The four phases give the student a path from idea to working code: inception sets the goal, elaboration plans it, construction writes the prompt/console.log JavaScript, and deployment runs it in the browser.

Try It Now 1.1.1

A team is building a new app for ordering school lunches. Match each of the following tasks 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.

Solution

Step 1 — Recall the four phases. Inception is planning and scope, elaboration is requirements and design, construction is coding, and deployment is releasing.

Step 2 — Match each task.

  • (a) writing the code that shows the menu → construction
  • (b) deciding which schools the app will serve → inception
  • (c) drawing the overall structure of the app → elaboration
  • (d) putting the finished app in the app store → deployment

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

1.1.2 Umbrella Activities

There are also umbrella activities that are important but tangential to framework activities. Returning to the recipe analogy, if generic framework activities represent cooking, then you can think of these activities as the things you would do alongside your cooking, like making sure you have the right pots and pans or keeping your kitchen clean. In software development, such activities include:

Umbrella activities are the kitchen cleanup

The four phases are the cooking, but you also need to wash the pans, check the pantry, and keep the kitchen safe. Umbrella activities run alongside every phase, holding the whole project together rather than belonging to any single one.

Try It Now 1.1.2

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

Solution

Step 1 — Recall the umbrella activities. The list includes training and communication, risk management and planning, configuration management, quality management, architecture management, and security management.

Step 2 — Match testing to an activity. Testing is listed under quality management (technical reviews, estimations, metrics/measurements, testing).

Answer: Testing belongs to quality management, because that umbrella activity covers the checks that keep the software correct and reliable.

1.1.3 Task Sets and Workflows

Inside each phase you do specific jobs, and each job is called a software engineering action. Inception might include the action "define the requirements." Elaboration might include "design the architecture."

Every action breaks down into a list of smaller tasks. That list is the action's workflow, or task set. Each task produces something real — a note, a diagram, a file of code — and each of those gets checked for quality before the team moves on.

Definition 1.1.2: Task Set

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

A task set is a to-do list for one job

If "design the app" is the action, then 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 being performed independently.

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 — A task set (or workflow) is all the tasks required to accomplish one software engineering action within a framework activity.

Example 1.1.2: A Task Set for Debugging a JavaScript Loop

A student's JavaScript code keeps printing the wrong number of times through a loop. The software engineering action is "debug the loop." Write a task set that lists the small tasks this action needs.

Solution

Step 1 — Break the action into concrete tasks. A task set for debugging one job lists every small step:

  • Reproduce the bug — run the code and watch what actually prints.
  • Inspect the loop — read the for or while condition to 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 (for example, < to <=) and rerun.
  • Test the fix — run it again to confirm the output is now correct.

Step 2 — Relate the task set to the action. The action "debug the loop" is accomplished by working through these tasks one at a time. Each task produces a work product (a note, a corrected line, a passing rerun) subject to quality checks.

Answer: A task set for "debug the loop" might include reproducing the bug, reading the loop condition, tracing iterations by hand, fixing the JavaScript, and rerunning to confirm the output.

Try It Now 1.1.3

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

Solution

Step 1 — Recall what requirements definition means. It is the action of figuring out and writing down what the software must do.

Step 2 — Think of concrete tasks. A task set for this action could include interviewing users to learn what they need, and writing a document that lists the requirements.

Answer: A task set for requirements definition might include interviewing users about their needs and writing down the list of requirements. (Other reasonable tasks are fine too.)

1.1.4 SDLC Methodologies and the Four Ps

Software process models that follow the generic framework described above are sometimes referred to as SDLC methodologies. In general, software engineering process models are structured this way to support efficient development of quality software, reduce the risk of failure, increase predictability, and capture best practices in software development. The software framework provides a template that lets software engineers tailor their process model to the specific project(s) they are working on. The generic framework activities apply to all projects and all application domains, and they are a template for every process model. Actual process model actions and methods may, however, use various approaches. Furthermore, software engineering tools may be used to (semi-)automate the various methods that perform activities.

The activities involved in developing software might vary depending on the organization and the type of software being developed. There is no single right way to create a software solution, but experience typically tells us what works well and what works poorly in a given context. Therefore, process frameworks are elaborated differently depending on the four Ps they tackle: problem, project, people, and product.

The four Ps are the recipe's ingredients

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

Try It Now 1.1.4

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

Solution

Step 1 — Recall the four Ps. Process frameworks are elaborated differently depending on the problem, project, people, and product.

Step 2 — Compare the two projects. The small app has a small problem, a small project, few people, and a simple product, so its phases can be light and quick. The banking system has a huge problem, a large project, many people, and a high-stakes product, so its phases need far more planning, design, and review.

Answer: The two teams elaborate the framework differently because their four Ps differ. The small app can keep each phase light, while the banking system needs much heavier planning, design, and quality checks to handle its larger problem, project, people, and product.

1.1.5 Traditional Prescriptive Process Models

In the past, this led to the use of various traditional prescriptive process models such as the waterfall, prototyping, spiral, and rational unified processes. A prescriptive process model advocates an orderly approach to software engineering that involves following a prescribed set of activities in a continuous manner. These traditional process models provide a structured approach to software development and may help with the following objectives:

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.

"Prescriptive" just means it tells you what to do

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 mechanisms) for each project.

These days, however, traditional prescriptive process models are perceived by some as "old-school" (that is, ponderous, bureaucratic document-producing machines). Traditional models are generally criticized for being too rigid and inflexible. They may not be suitable for all projects, especially those with rapidly changing requirements.

A rigid recipe vs. cooking to taste

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.

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 — A prescriptive process model advocates following a prescribed, orderly set of activities in a continuous manner.

Try It Now 1.1.5

A startup run by Zara 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 for your answer.

Solution

Step 1 — Recall the weakness of traditional models. They are criticized for being too rigid and inflexible, and they may not suit projects with rapidly changing requirements.

Step 2 — Apply it to the startup. The startup's requirements change every week, which is exactly the situation where a rigid, prescribed sequence of activities struggles to keep up.

Answer: No, a traditional prescriptive process model would be a poor fit, because it is too rigid and inflexible for a project whose requirements change rapidly. In the next section we will explore an alternative approach called Agile software development, which is built to handle exactly this kind of change.

Problem Set 1.1

Problem 1. Name the four generic framework activities (phases) of a software process model, and state in one sentence what happens in each.

Solution

Step 1 — Recall the four framework activities. Every software process model includes inception, elaboration, construction, and deployment.

Step 2 — State what happens in each.

  • Inception — planning where the project goals and overall scope are defined.
  • Elaboration — analyzing requirements and designing a detailed architecture model.
  • Construction — building the software by coding from the design.
  • Deployment — releasing the software in a usable form to end users.

Answer: The four framework activities are inception (plan goals and scope), elaboration (analyze requirements and design the architecture), construction (code and build the software), and deployment (release the software to end users).

Problem 2. Give two examples of umbrella activities and explain why they are called "umbrella" activities.

Solution

Step 1 — Pick two umbrella activities. From the list, two examples are quality management and risk management.

Step 2 — Explain why they are called "umbrella." The word umbrella suggests something that spreads over and covers everything below it. These activities are not part of any single phase; instead, they run alongside all of the framework activities at once, holding the whole project together.

Answer: Two examples are quality management (testing, technical reviews) and risk management (project tracking and planning). They are called "umbrella" activities because they span and apply to every framework activity rather than belonging to any single phase.

Problem 3. What is a task set (workflow)? How does it relate to a software engineering action?

Solution

Step 1 — Define a task set. A task set (or workflow) is all of the tasks required to accomplish a specific software engineering action within a framework activity.

Step 2 — Connect it to an action. Each type of software engineering action (for example, requirements definition) has its own task set: the checklist of every small task needed to complete that one job.

Answer: A task set (workflow) is the collection of all tasks needed to accomplish a specific software engineering action within a framework activity. It relates to an action as its to-do list: one action, such as requirements definition, is carried out by following the tasks in its task set.

Problem 4. What are the four Ps that a process framework is elaborated around? Give a one-sentence description of each.

Solution

Step 1 — Name the four Ps. The four Ps are problem, project, people, and product.

Step 2 — Describe each in one sentence.

  • Problem — what the software must solve; its nature and difficulty shape the process.
  • 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 being built.

Answer: The four Ps are problem (what the software must solve), project (the scale and constraints of the effort), people (the team doing the work), and product (the software being built). A process framework is adjusted to fit these four factors.

Problem 5. List the four objectives that traditional prescriptive process models may help a team achieve.

Solution

Step 1 — Recall the listed objectives. The section names four objectives of traditional prescriptive process models.

Step 2 — List them.

  • Improve efficiency — a clear plan helps teams avoid rework.
  • Reduce risk — identifying issues early helps prevent project failures.
  • Increase predictability — a structured process helps estimate timelines and costs.
  • Capture best practices — traditional models incorporate tried-and-true methods.

Answer: The four objectives are to improve efficiency, reduce risk, increase predictability, and capture best practices.

Problem 6. State one strength and one weakness of traditional prescriptive process models.

Solution

Step 1 — Identify a strength. Traditional models follow an orderly, prescribed sequence, which improves efficiency, reduces risk, and increases predictability for projects with well-understood requirements.

Step 2 — Identify a weakness. They are criticized for being too rigid and inflexible, and they do not adapt well to projects whose requirements change rapidly.

Answer: One strength is that a traditional prescriptive process model brings efficiency, risk reduction, and predictability through an orderly, structured approach. One weakness is that it is too rigid and inflexible for projects with rapidly changing requirements.

Problem 7. A student is building a JavaScript app that counts down from 10 to 1 in the console. Identify which framework activity each of these tasks belongs to: (a) writing the for loop that does the countdown, (b) deciding the app only counts down (not up too), (c) sketching how the loop will work, (d) opening the page and watching it count.

Solution

Step 1 — Recall the four phases. Inception is planning and scope, elaboration is requirements and design, construction is coding, and deployment is releasing.

Step 2 — Match each task to its phase.

  • (a) writing the for loop that does the countdown → construction
  • (b) deciding the app only counts down (not up too) → inception (defining scope)
  • (c) sketching how the loop will work → elaboration (designing)
  • (d) opening the page and watching it count → deployment (releasing to a usable form)

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

Problem 8. You are testing a JavaScript function that doubles a number. Which umbrella activity does your testing belong to, and what might a task set for this action include?

Solution

Step 1 — Identify the umbrella activity. Testing is listed under quality management (technical reviews, estimations, metrics/measurements, testing).

Step 2 — Sketch a task set. A task set for "test the doubling function" could include: write a few inputs, run the function on each, check that the output is exactly double the input, and fix the function if any check fails.

Answer: Testing belongs to quality management. A task set for testing the doubling function might include choosing inputs, running the function, verifying each output is double the input, and correcting any failure.

Problem 9. Rewrite the greeting example from this section so that, instead of a name, the app asks for the user's favorite sport and prints a message. Write the two lines of JavaScript, then label which framework activity your writing belongs to.

Editor
runs in your browser
▶ Press Run to see the output…
Solution

Step 1 — Model the example. The greeting example used prompt to ask for a name, stored it in a variable, and printed with console.log.

Step 2 — Adapt it to a favorite sport. Replace the question and the message:

Editor
runs in your browser
▶ Press Run to see the output…

Step 3 — Label the activity. Writing the JavaScript is construction, because it is the coding that turns the plan into a working program.

Answer: const sport = prompt("What is your favorite sport?"); and console.log("Great choice! " + sport + " is fun to play."); — this writing belongs to the construction phase.

Problem 10. A team uses the same JavaScript function in two different apps. Which umbrella activity keeps both copies in sync, and why does that matter for quality?

Solution

Step 1 — Identify the umbrella activity. Keeping a shared component in sync across projects is configuration management, which tracks and controls the different versions and copies of software work products.

Step 2 — Explain why it matters. If the two apps each carry their own copy of the function and someone fixes a bug in only one copy, the other app still runs the buggy version. Configuration management keeps the copies aligned, so quality improvements reach everywhere they are used.

Answer: Configuration management keeps the two copies in sync. It matters for quality because, without it, a fix made in one app could leave the other app running an outdated, buggy version of the same function.

Problem 11. A JavaScript project's requirements change every week. Is a traditional prescriptive process model a good fit? Give one reason, using an example from this section.

Solution

Step 1 — Recall the weakness of traditional models. They are criticized for being too rigid and inflexible, and they may not suit projects with rapidly changing requirements.

Step 2 — Apply it to the project. The startup example in this section shows that a project whose features change every week is exactly where a rigid, prescribed sequence of activities struggles to keep up.

Answer: No, a traditional prescriptive process model is a poor fit, because it is too rigid and inflexible for requirements that change weekly — the same weakness shown in the startup example, where a rigid process cannot adapt quickly to changing features.

Problem 12. Give one JS-specific example of a "task" that belongs to the construction phase, and one "task" that belongs to the deployment phase.

Solution

Step 1 — Recall what each phase holds. Construction is the coding; deployment is releasing the software in a usable form.

Step 2 — Give one task per phase.

  • Construction: writing a console.log("Hello, world!") line, or typing the code that implements a function.
  • Deployment: opening the finished HTML page in a browser to run the JavaScript, or publishing the app so other users can open it.

Answer: A construction-phase task is writing JavaScript code (for example, a console.log or a function). A deployment-phase task is releasing the app into a usable form, such as opening the page in the browser or publishing it for users.

Key Terms

framework activities (phases) — the four generic activities every software process model includes: inception, elaboration, construction, and deployment.

inception — the planning phase where project goals and overall scope are defined.

elaboration — the phase where requirements are analyzed and a detailed architecture model is designed.

construction — the phase where the software is coded and built from the design.

deployment — the phase where the software is released in a usable form to end users.

umbrella activities — activities that run alongside the framework activities, such as training, risk management, configuration management, quality management, architecture management, and security management.

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

SDLC methodology — a software process model that follows the generic framework of activities.

four Ps — problem, project, people, and product; the factors a process framework is elaborated around.

prescriptive process model — a process model that advocates following a prescribed set of activities in a continuous, orderly manner.