The big picture
before the code.
An illustrated guide to the foundations, development lifecycle, and the ways teams build software.
THE WEEK AT A GLANCEStudy sections
Follow the order or choose a sectionWhat 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,…
02Large 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…
03Requirement 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…
04Software 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…
05Development: write code that fits together
Developers write code based on the requirements and the design. Development is usually distributed — multiple developers work in differ…
06Testing: 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…
07Maintenance: 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…
08Build and Fix: an early coding approach
Many learners have developed software without strictly following requirements → design → code → test. This exploratory programming styl…
09Waterfall: 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…
10Prototype 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…
11Spiral 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.
12Agile: 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…
13Agile approaches and practices
The course introduces three Agile approaches.
14How do we choose a development approach?
Mostly YES answers suggest Plan and Document; mostly NO answers suggest Agile.
Revision and practice
Review and practice materialHow 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.
