Specification
A specification is a formal or informal description of the required or intended behavior, properties, interfaces, or constraints of a system or component.
Machine Learning System Design
A structured document that records a system's goals, priorities, requirements, and design decisions.
- How it is used
- Aligns ML system builders and stakeholders on priorities while testing whether the proposed project is needed.
- How deep it goes
- Develops a drafting, review, and revision practice, but leaves low-level specifications and operating instructions to separate documents.
- Examples
- Uses a retail demand-forecast project and a simpler rule-based alternative to illustrate planning and project selection.
- What you can do after
- Practice/perform drafting, challenging, and updating an ML design document before implementation and as the system changes.
Read how Machine Learning System Design explains specification →
Prompt Engineering in Practice
A precise statement of the required behavior, constraints, and expected results of a system component.
- How it is used
- Uses specifications as the engineering model for reliable prompts and documented interfaces in AI-enabled software.
- How deep it goes
- Defines the required task, inputs, constraints, output, and acceptance criteria, then illustrates interface documentation and ambiguity diagnosis.
- Examples
- Contrasts an open-ended feature question with a constrained assessment and a bare ticket-triage draft with its documented interface.
- What you can do after
- Diagnose/debug with it by locating ambiguous prompt requirements and adding targeted constraints, schemas, examples, or missing category mappings.
Read how Prompt Engineering in Practice explains specification →
Functional Programming in JavaScript
A formal or informal description of the required behavior or properties of a software system or component.
- How it is used
- Captures runtime requirements as executable tests that document function behavior and expose ambiguity before implementation fails.
- How deep it goes
- Explains case-based versus universal wording, side effects, context assumptions, and property-based verification with generated inputs.
- Examples
- Uses grade classification tests, generated grade arrays, custom Social Security number generators, and QUnit-JSCheck integration.
- What you can do after
- Apply it via QUnit and JSCheck to express properties, generate cases, and detect invalid assumptions.
Read how Functional Programming in JavaScript explains specification →
Building User-Friendly DSLs
A formal description of the domain requirements and behavior that the DSL represents and from which working code is derived.
- How it is used
- Captures domain knowledge as precise DSL content that domain experts maintain and use to generate the Runtime.
- How deep it goes
- Explains authoring, generation, machine checking, tests, and reuse, but does not detail specification syntax.
- Examples
- Uses the car-rental Runtime, including a customer rental app and employee point-of-sale systems.
- What you can do after
- Apply it via the Domain IDE to write DSL content, test changes, and generate working Runtime code.
Read how Building User-Friendly DSLs explains specification →
Related concepts
- promptincludes · An input, typically containing instructions or context, supplied to an artificial-intelligence model to guide or elicit its output.
- UML class diagramhas part · A UML class diagram is a standardized structural model representing classes, their attributes and operations, and relationships such as inheritance, association, aggregation, and composition.
- documentationkind of · Documentation is recorded explanatory, instructional, or reference information that describes a subject, system, or process to support its understanding, use, or maintenance.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.



