lundi 29 février 2016

Formal Design Language for a Real Time System with simple Message and Timing Diagrams

We make a consumer electronics product with some real-time constraints, usually timings and latencies that are acceptable in the user interface. The software engineering team is guided by user experience designers who specify these latencies but have no experience in software design, or the usual tools & methods normal in software companies. We need a simple tool the designers can use to specify sequences and timings in a formal way and the specification needs to be something we can import into the test system to use for automated validation.

PlantUML looks promising and something like the example below would suffice, but the timing specification in the group name can be made to work but is a bit of a kludge. If the requirements do grow, and they almost certainly will, this approach will scale badly. Can anyone suggest something better?

autonumber 1 1 "<b>[000]"
user -> UI: click
group fade 500ms
    UI -> Audio: Fade volume down
    Audio -> UI: Fade done
end
group track switch 100ms
    UI -> Audio: next track
    Audio -> FileSystem: File stream open
    FileSystem -> Audio: File stream opened
    Audio -> UI: stream started
end
group fade 500ms
    UI -> Audio: Fade volume up
    Audio -> UI: Fade done
end

enter image description here

Aucun commentaire:

Enregistrer un commentaire