Analysis: Defining the Problem · Theory

Ch 1 · The Program Development Life Cycle — card 2 of 2.

Analysis decides *what* the system must do before anyone writes code. It gathers requirements (functional — what it does; and non-functional — speed, security, usability), studies any existing system, and produces a specification everyone agrees on.

Which life-cycle stage defines WHAT the system must do, before any code is written?