liveBook · Manning

Dsl-based approach

As explained in Building User-Friendly DSLs

A software development technique in which domain experts author precise domain knowledge as DSL content that contributes to software specification and implementation.

A DSL-based approach lets domain experts author precise domain knowledge as DSL content through a Domain IDE. That content serves as a software specification, while developers build the tools and generate much of the Runtime automatically. section 1.2 section 1.5

The approach divides responsibilities across a domain-oriented toolchain:

  • Domain experts write and maintain DSL content in a Domain IDE designed around their work rather than general-purpose programming. section 1.2
  • The DSL provides a shared language between domain experts and software developers, reducing error-prone translation of business knowledge. section 1.3.4
  • The Domain IDE frontend offers a DSL editor; its backend supplies an API, repository, and build system for generating the Runtime. section 1.5
  • The DSL defines notation, structure, meaning, and constraints so content can be represented, validated, and turned into behaving software. section 1.5

Car-rental Runtime

In a car-rental business, domain experts can specify concepts such as business rules, conditions, actions, record types, and attributes. Generated software can support both customer rental arrangements and employee point-of-sale processes. section 1.3.4 section 1.2

Figure 1.2 Using a DSL-based approach to develop a Runtime using a Domain IDE
figure

Use the architecture figure to trace how domain experts’ DSL content flows through the Domain IDE into the generated Runtime. section 1.2

How Building User-Friendly DSLs covers it

How deep it goes
Defines the workflow and Domain IDE architecture, then identifies DSL notation, structure, meaning, and constraints without treating language engineering deeply.
Examples
Uses a car-rental Runtime involving business rules, rental pricing, customer arrangements, and employee point-of-sale systems.
What it assumes
Assumes domain knowledge but teaches the DSL, Domain IDE, Runtime, and specification relationship from their practical roles.
What you can do after
Apply it via a Domain IDE to author precise DSL specifications and generate much of a business Runtime.
How it connects
Connects domain-specific languages with Domain IDEs, code generation, projectional editors, software specifications, and Runtime behavior.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Building User-Friendly DSLs. The section links point to the parts of the book it draws on.