The notion of subsystem is used in Simulink to represent systems inside systems in order to provide hierarchical modeling. A Simulink subsystem has inports (explicit links to the subsystem), and outports (explicit links from the subsystem). We view inports and outports as the explicit interface of the subsystem. However, there are hidden (implicit) data dependencies in Simulink’s subsystems. Hidden dependencies originate due to two Simulink data mechanisms: Data Store Memory/Read/Write and Goto/From blocks. The Signature Tool extracts the signature of a Simulink subsystem. A signature represents the interface of a Simulink subsystem, making the data flow into and out of the subsystem explicit. The tool identifies two useful signatures for a subsystem: strong signature and weak signature. The strong signature identifies the data mechanisms that are accessed by the subsystem or any of its children. The weak signature identifies the data mechanisms that a subsystem can access (those which are declared higher up in the hierarchy), but is not necessarily using. The Signature Tool can be used to either explicitly include the signatures in the model itself, or export the signatures into a text/tex/docx file.
For instructions on installation and how to use the tool, see Signature_UserGuide.pdf in the source files.
For more about the theoretical background on signatures and how they can be used, an interested reader is referred to:
Marc Bender, Karen Laurin, Mark Lawford, Vera Pantelic, Alexandre Korobkine, Jeff Ong, Bennett Mackenzie, Monika Bialy, Steven Postma, “Signature required: Making Simulink data flow and interfaces explicit,” Science of Computer Programming, Elsevier, 2015, 113, Part 1, 29-50.
For more about the capabilities of the tool and how it can be used in model-based development with Simulink, see the two papers:
Vera Pantelic, Steven Postma, Mark Lawford, Alexandre Korobkine, Bennett Mackenzie, Jeff Ong, Marc Bender, "A Toolset for Simulink: Improving Software Engineering Practices in Development with Simulink," Proceedings of 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2015), SCITEPRESS, 2015, 50-61. (Best Paper Award)
Vera Pantelic, Steven Postma, Mark Lawford, Monika Jaskolka, Bennett Mackenzie, Alexandre Korobkine, Marc Bender, Jeff Ong, Gordon Marks, Alan Wassyng, “Software engineering practices and Simulink: bridging the gap,” International Journal on Software Tools for Technology Transfer (STTT), 2017, 1-23.
McSCert (2020). Signature Tool (https://github.com/McSCert/Signature/releases/tag/v3.3), GitHub. Retrieved .
@Ike Chitima: Thank you for the feedback. We are interested in looking at your model, if you can share it with us, so that we can work on addressing this issue. You can e-mail us at email@example.com with the model and any errors.
Great tool, but I am having issues implementing it onto a lager system, I have used it on smaller systems but it seems to be falling over I wondering if you could assist?
See release notes for this release on GitHub: https://github.com/McSCert/Signature/releases/tag/v3.3
Fixed several bugs.
Fixed issues dealing with signature placement in the model.
Formatting of the description.
Fixed tool name.
- Updated the GUI to include more options
- Added a new feature: Augment for Test Harness (see README for a detailed explanation)
Slight modification of the example; corrected the extension of generated text files.
Fixed a documentation generation bug (the one with a data store GotoTag property).
Change the path issue; minor edit to the description.