Introducing DRYML

If you can’t describe what you are doing as a process, you don’t know what youre doing.” — Edwards Deming

DRYML (an acronym for “DRY Modeling Language”) is both a human- and machine-readable software modeling language.

DRY (an acronym for “Don’t repeat yourself”) is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy. [Wikipedia]

DRYML Example: James loves Mary

[https://gist.github.com/vgrigoryevskiy/cb4cef2fe61f735ced78ca88e84d80bf]


The Problem

Simple Models are overly simplified.
Complex Models are overly complicated.

In Software Engineering, there’s a task to model systems and processes for the purpose of their development and automation.

There’s plenty of software modeling tools to do this, of two main types.

Simple Tools

Pros:

  • Free, easy-to-use, no IT qualification required, sometimes natural language-based

Cons:

  • If a Model is complex, more than one diagram needs to be created

Complex Tools

Pros:

  • Data Integrity

Cons:

  • Expensive, complicated, require special qualification

The Solution

To combine all the benefits of the “complex” solutions preserving the advantages of “simple” tools. [Seems obvious, yeah?]

DRYML implements the development principle “DRY” (don’t repeat yourself), providing the capability to describe a model just once and then work with it as with a master-data. The benefits are:

  • Free

For more information on separation Domain Layer from other parts of Software — read the Article What is the Level of your Tech Start-up? Part 1/3. Software Technical Architecture.

For more information on data exchange format — see the Section “Information Model” below.

DRYML Main Principles

  1. There are three core entities: Actor, Resource, and Activity

Information Model

DRYML supports the AIFORSE Framework’s mission — to define a set of standards that support the integration and interoperability between software engineering tools.

More specifically, DRYML implements the AIFORSE Integration Framework Domain Data Model, defined for the entity “Process”. See the reference to the Schema below.

As it’s already mentioned above, managing Processes Data in the provided way allows capturing, storing and exchanging data about the processes between teams, projects, and systems.

Diagram

AIFORSE Integration Framework — Process Schema — Diagram

Schema

You can review and download the JSON Schema following the link:
aiforse-integration-framework---process-json-schema.json

Feel free to contribute to the Schema in particular or to the Framework in general.

Examples

Here comes the most interesting part.

In order to make it both fun and practical, let’s review the step-by-step description of the cooking process to prepare the “Momofuku’s Soy Sauce Eggs”.
[The original recipe was taken from https://food52.com/recipes/35930-momofuku-s-soy-sauce-eggs]

Step 1. Whisk together water and sugar

DRYML Example: Momofuku’s Soy Sauce Eggs (Step 1)

Step 2. Add the sherry vinegar and soy sauce

DRYML Example: Momofuku’s Soy Sauce Eggs (Step 2)

See the Complete Process here:

DRYML Example: Momofuku’s Soy Sauce Eggs

Conclusion

Each time when you model any software solution, just ask yourself the following questions:

  • What is the Process Flow I’m implementing?

Valentin Grigoryevskiy

Written by

System Architect, transforming Software Engineering Industry. Founder @ AIFORSE Community

More From Medium

Also tagged Software Development

Also tagged Software Development

Also tagged Software Development

Getting Started with AutoKeras

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade