Skip to content

Epic

An epic in RIDDL is a definition that defines a large user story with a set of use cases. This is the same concept as the idea Kent Beck introduced in 1997. In RIDDL, a story gets a little more involved than the usual formulations of a user story:

As a {user}, I would like {capability}, so that {benefit}

or

In order to receive {benefit}, as a {user}, I can {capability}

which have these three ideas: * A user that provides the role played by the narrator of the story * A capability that provides the capability used by the narrator * A benefit that provides the reason why the narrator wants to use the capability

A RIDDL Epic also provides a set of use cases that relate the story to other RIDDL components through the steps taken for each case. Each case specifies a set of interactions that define and label the interactions between other RIDDL definitions such as elements, entities, and projectors. Cases can also outline user acceptance testing.

Stories are designed to produce sequence diagrams. This allows the intended interaction of some user (human or not) with the system being designed in RIDDL to support a detailed definition of a user story.

Syntax

epic ShoppingCartEpic is {
  user Customer wants to "add items to a shopping cart"
  so that "they can purchase multiple items at once"

  case AddingToCart is { ??? }
} with {
  briefly as "User stories about shopping cart management"
}

RIDDL 2.0 widens the user-story verb from wants alone to a modal set:

wants, must, shall, should, may, will, can

user Customer must  "authenticate" so that "their account is protected"
user Auditor  should "review the ledger" so that "discrepancies are caught"
user Guest    may   "browse without an account" so that "they can evaluate us"

This is vocabulary only. All variants parse to the same structure, so the modality reads naturally but is not captured as data — a model cannot be queried for its "must" stories. Recording modality as MoSCoW priority would be a separate feature, and was deliberately not done here.

The to after the verb remains optional, as it always was.

Options

sync marks an epic whose interactions are synchronous.

Occurs In

Contains