[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