liveBook · Manning

Requirements

As explained in Functional Design and Architecture: Examples in Haskell

A requirement is a stated capability, constraint, or goal that a software system must satisfy.

Requirements state what a software system must do and the properties it must maintain. Functional requirements describe user-facing capabilities; nonfunctional requirements describe qualities such as performance, stability, security, availability, extensibility, and latency. section 1.2.1

Spacecraft control software

A spacecraft prototype must let astronauts control systems manually and automatically. It must also remain robust, fault-tolerant, secure, easy to operate, and compatible with a wide range of components. These requirements shape design choices and help prevent an implementation that works initially but requires a complete rewrite later. section 1.2.1

Requirements also define what testing validates. Tests check whether code satisfies functional and nonfunctional expectations, contracts, and documented behavior; they do not prove that every possible bug is absent. section 15.0

Figure 1.2 Roadmap of the development process

Use the development roadmap to connect requirement discovery with later design, implementation, release, and update milestones. section 1.2.1

How Functional Design and Architecture: Examples in Haskell covers it

How deep it goes
Defines functional and nonfunctional categories with examples, then applies them to contracts and testing.
Examples
Uses spacecraft manual and automatic control, fault tolerance, security, compatibility, and testing contracts as concrete examples.
What you can do after
Evaluate software against functional and nonfunctional expectations through contracts, tests, and design decisions.
How it connects
Connects requirements to software design, functional requirements, nonfunctional requirements, testing, contracts, and architecture.

Also explained in

Compare how 13 books explain requirements →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Functional Design and Architecture: Examples in Haskell. The section links point to the parts of the book it draws on.