liveBook · Manning

Requirements model

As explained in Functional Design and Architecture: Examples in Haskell

A requirements model is a structured set of descriptions of the properties and capabilities a software product is expected to have.

A requirements model is a detailed, clear, and well-structured description of an upcoming product’s properties and capabilities. It gives developers a feature reference and creates an agreement with the customer. Building one means investigating information from customers, experts, documentation, examples, and other available sources, then resolving unclear or contradictory facts. section 2.1.4

Organize requirements systematically with complementary investigation techniques:

  • Questions and answers clarify the software’s purpose, domain terms, expected functionality, and architectural expectations, though the results may lack a convenient structure. section 2.1.4
  • Use case diagrams show what actors can do with a subsystem inside a logical boundary. section 2.1.4
  • Mind maps support domain analysis with diagrams, lists, notes, external links, and embedded media; user scenarios provide another way to investigate product requirements. section 2.3

Clarifying a multiplayer application

Instead of assuming what the customer means, ask targeted questions: “Should the Minecraft application support multiplayer?”—“It’s the central idea.” Then clarify the architecture: “Should it be a classic client-server architecture or a distributed nodes network?”—“Classic client-server architecture would be enough.” section 2.1.4

Figure 2.9 Use case diagram for the main menu of Minecraft

A use case diagram makes subsystem boundaries and actor actions visible, complementing conversational requirements discovery. section 2.1.4

How Functional Design and Architecture: Examples in Haskell covers it

How deep it goes
Defines the model and surveys investigation techniques, while stopping short of a complete requirements-documenting procedure.
Examples
Uses Minecraft multiplayer questions, client-server architecture choices, use case diagrams, mind maps, and user scenarios.
What it assumes
Assumes access to customers, experts, documentation, or examples, while teaching how to extract and clarify requirements from them.
What you can do after
Apply questions, diagrams, mind maps, and scenarios to organize requirements for discussion with customers and developers.
How it connects
Connects requirements modeling with domain analysis, use case diagrams, mind maps, user scenarios, and software architecture.

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.