liveBook · Manning

Requirements analysis

As explained in Functional Design and Architecture: Examples in Haskell

Requirement analysis is the process of eliciting, examining, and specifying the capabilities and constraints a software system must satisfy.

Requirements analysis starts by understanding the domain: collect problems, facts, and notions from documentation and conversations with engineers before deciding what to create. section 2.1.3

A top-down process translates domain requirements into architecture, then implementation details. Treating this sequence as rigid waterfall is risky because missed requirements surface later; iterative models allow earlier phases to be revisited. section 2.1.3

Use mind maps to turn unordered brainstorming into a focused, navigable domain description:

  • Start with major topics and expand them into increasingly detailed maps. section 2.1.5
  • Keep important terms and relationships visible without imposing the rigidity of user stories or use-case diagrams. section 2.1.5
Figure 2.10 Level 1 mind map

A level-one Minecraft mind map provides a concrete starting point for organizing a domain before architecture design. section 2.1.5

How Functional Design and Architecture: Examples in Haskell covers it

How deep it goes
Moves from documentation and conversations to focused mind maps, then stops before architecture design and code implementation.
Examples
Uses a Minecraft brainstorming exercise expanded into level-one, level-two, and level-three mind maps.
What it assumes
Uses documentation and conversations with engineers as inputs while teaching domain understanding before architecture.
What you can do after
Evaluate/understand a domain by collecting its problems, facts, notions, and important terms before constructing architecture.
How it connects
Connects domain understanding with software design, architecture, brainstorming, mind maps, and iterative development.

Also explained in

Compare how 3 books explain requirements analysis →

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.