SOFTWARE ENGINEERING / WEEK 01

The big picture
before the code.

An illustrated guide to the foundations, development lifecycle, and the ways teams build software.

14 study sections31 illustrations1 resource
Begin with the introduction
Week 1 at a glance: major ideas and their connectionsTHE WEEK AT A GLANCE

Study sections

Follow the order or choose a section
01

What is Software Engineering?

Software engineering started off as an art: there were good programmers who wrote good code and bad programmers who did not. Over time,…

1 illustrations
02

Large software is built from components

An online shopping website is not developed as one giant program all at once. Teams often add features gradually. At the beginning, the…

3 illustrations
03

Requirement specification: decide WHAT to build

Many people think the first step is learning a programming language. You do need one to write code, but before thinking about the solut…

2 illustrations
04

Software design: create the big picture

Suppose several developers start coding Amazon Pay without agreeing on the structure. Each person may choose different inputs, data for…

3 illustrations
05

Development: write code that fits together

Developers write code based on the requirements and the design. Development is usually distributed — multiple developers work in differ…

2 illustrations
06

Testing: check the system before release

Testing ensures the software behaves according to the requirements; many bugs might still exist in the system. Bugs can cost a lot of m…

2 illustrations
07

Maintenance: software still needs care

After adequate testing the feature is rolled out, but work is not finished. Users may find rare failures, unexpected behavior or proble…

2 illustrations
08

Build and Fix: an early coding approach

Many learners have developed software without strictly following requirements → design → code → test. This exploratory programming styl…

2 illustrations
09

Waterfall: the Plan and Document approach

It is called the waterfall model because each phase occurs one after the other. It is called the Plan and Document perspective because…

2 illustrations
10

Prototype Model: show a simple sample early

Build a working prototype of the system before developing the actual software. The prototype has limited functional capabilities, and i…

1 illustrations
11

Spiral Model: refine through repeated rounds

The spiral model combines the waterfall model and the prototyping model. We incrementally build the software, get feedback and refine.

2 illustrations
12

Agile: working software, feedback and change

Plan and document processes brought discipline to software development, but they were not very effective at on-time delivery within bud…

3 illustrations
13

Agile approaches and practices

The course introduces three Agile approaches.

3 illustrations
14

How do we choose a development approach?

Mostly YES answers suggest Plan and Document; mostly NO answers suggest Agile.

2 illustrations

How to study

First look at the picture. Then read the short explanation. Try the THINK question before reading further. Revise with the comparison and questions at the end.