[trustable-software] Open Control and Mustard

Paul Sherwood paul.sherwood at codethink.co.uk
Sat Oct 8 15:51:11 UTC 2016


On 2016-10-08 14:40, John Lewis wrote:
> One of the issues that has to be considered if you are using UML (or
> any other design method) is "round-trip engineering".
>
> Methods (e.g. UML, HOOD etc.) can generate code but if the code is
> then modified, those changes need to be reflected in the higher level
> design and (if you really want to) raced back to Requirements.
>
> And of course, if undertake RTE,  matching changes to the high level 
> design.

Absolutely. We did actually take roundtripping into account in the 
Mustard [1] project, which we originally designed as a lightweight tool 
to help apply Automotive SPICE [2] (and as a minimalist alternative to 
Rational DOORS). AFAIK there's no other open source tool for this so far 
(although as Jim has highlighted there is some overlap with 
OpenControl).

The implementation is relatively simple, but effective:

- A YAML schema is used to map  and model the linkages between (eg) 
requirement - architecture - test - activity - code
- all actual requirements, architecture and test descriptions are 
stored in YAML files
- we can validate the YAML files to flag inconsistencies, eg any 
requirements that are not mapped to (eg) tests
- all the YAML files are checked into a git repo
- changes or improvements to the arch, tests etc are made as changes in 
the YAML files, and stored as commits in git
- the git commits provide full history of how the model evolves
- using PlantUML [3], all diagrams can be originated as text, so they 
sit in the YAML too, and hence we can track their changes as well

I don't think we've ever used Mustard on a project with code generation 
tools - that does seem to be a tricky area. Some of the graphical 
modelling tools make it pretty much impossible to implement proper 
version control. And AFAICT it's quite common for projects to get 
tangled up with manual edits to generated code.

br
Paul

[1] https://github.com/codethinklabs/mustard
[2] https://en.wikipedia.org/wiki/ISO/IEC_15504
[3] http://plantuml.com



More information about the trustable-software mailing list