Crème de la Crem: Composable Representable Executable Machines
In this paper we describe how to build software architectures as a composition of state machines, using ideas and principles from the field of Domain-Driven Design. By definition, our approach is modular, allowing one to compose independent subcomponents to create bigger systems, and representable, allowing the implementation of a system to be kept in sync with its graphical representation. In addition to the design itself we introduce the Crem library, which provides a concrete state machine implementation that is both compositional and representable. Crem uses Haskell’s advanced type-level features to allow users to specify allowed and forbidden state transitions, and to en- code complex state machine—and therefore domain-specific— properties. Moreover, since Crem’s state machines are representable, Crem can automatically generate graphical representations of systems from their domain implementations.
Fri 8 SepDisplayed time zone: Pacific Time (US & Canada) change
09:00 - 10:30
|Functional Programming in the Large - Status and Perspective|
C: Michael Sperber Active Group GmbH
|Crème de la Crem: Composable Representable Executable MachinesRemote|