Crème de la Crem: Composable Representable Executable Machines (Architectural Pearl)

07/18/2023
by   Marco Perone, et al.
0

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 encode 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/30/2021

An Extensible and Modular Design and Implementation of Monte Carlo Tree Search for the JVM

Flexible implementations of Monte Carlo Tree Search (MCTS), combined wit...
research
05/26/2022

YASMIN: Yet Another State MachINe library for ROS 2

State machines are a common mechanism for defining behaviors in robots, ...
research
10/22/2017

Timed Concurrent State Machines

Timed Concurrent State Machines are an application of Alur's Timed Autom...
research
06/06/2018

Can Machines Design? An Artificial General Intelligence Approach

Can machines design? Can they come up with creative solutions to problem...
research
11/28/2022

PyTorch Adapt

PyTorch Adapt is a library for domain adaptation, a type of machine lear...
research
08/11/2021

Composition Machines: Programming Self-Organising Software Models for the Emergence of Sequential Program Spaces

We are entering a new era in which software systems are becoming more an...
research
10/02/2018

Disrupting the Coming Robot Stampedes: Designing Resilient Information Ecologies

Machines are designed to communicate widely and efficiently. Humans, les...

Please sign up or login with your details

Forgot password? Click here to reset