Previous: , Up: Introduction   [Contents][Index]


1.4 The Dezyne Application Domain

Metaphorically speaking, when software is like an orchestra, sound is produced by the instruments, but it requires the intricate coordination of each individual musician, the ensemble itself and possibly the conductor to make the music. Dezyne is aimed at producing such software.

Both the conductor and the musician are examples of entities coordinating concurrent activities with external actors. The musician must coordinate with the conductor, their fellow musicians, and the instrument, which in actuality might require the use of both hands, the lungs, etc. The conductor monitors the music, monitors the score, sets the tempo, coordinates the entries of musicians and shapes the phrasing (see https://en.wikipedia.org/wiki/Conducting).

Dezyne is purposfully designed for software systems where by nature it is highly desirable to build up explicit contextual awareness to drive program execution, i.e. when the software system to be built rises above a certain complexity level where simpler approaches are no longer adequate and abstraction is paramount. The table below is intended as a guideline, not a rule. Dezyne can be applied at every level, the converse is not necessarily true.

typeleveldescriptionexample
dezyne4sophisticateddistributed and coupled/supervisorymachine controller, autonomous robot
bus or black boardintermediateindependent and separatedautomobile ECUs, automated tunnel/bridge
"god" controllersimplemonolithicelevator PLC, motion controller

Encapsulation, i.e. hiding implementation (interaction) details, leads to protocol and state abstraction.

In its current state, Dezyne is capable of describing a system with a static structure of components which exchanges events with different external actors in order to coordinate towards achieving an overarching goal.

Dezyne allows carefully composing the controlling structure together with appropriate data transformation, whilst maintaining the ability to reason about each facet separately.


Footnotes

(4)

Hierarchy (tree/network) of components


Previous: , Up: Introduction   [Contents][Index]