editor's blog
Subscribe Now

Requirements Modeling and Simulation

Flow_image.jpgSo you’re working on a design… Are you sure you’re building what was intended? Yes, you’re building what they asked for… or, at least, what you think they asked for, but is that what they wanted?

Requirements can be dicey; they’re based on natural language, which, as we know all too well, is subject to interpretation. According to Argosim, many companies have institutionalized styles – sentence templates, for instance – to ensure consistent, clear, unambiguous articulation of requirements. That’s not a guarantee of clarity, but it certainly helps.

What it doesn’t necessarily help with, however, is the following question: do you know if, out of all the requirements, some of them conflict or are mutually inconsistent? If one requirement is a dense material to protect against radiation and another requirement is that the material has to float, those two might not work together.

There has, until recently, been no way to formally check requirements for consistency and overall requirements correctness. Those two requirements above (dense + floating) are relatively vague – you wouldn’t be able to test them without the ability to extract the semantics and then simulate the physics. But many requirements are functional, and they can be expressed in a more formal manner that can then be tested.

This might sound like a nice-to-have for many electronic products. We see too many cheap consumer goods that clearly haven’t been well thought out or possibly don’t even have all of their features working properly. This would be great for that, but such products typically have cost and schedule requirements that don’t really allow for a more thoughtful process.

Safety-critical equipment, however, is a completely different matter, having strict requirements for requirements traceability. And, while some product requirements will always have a level of vagueness, functional requirements in such systems explicitly must be verifiable. This means that they should be specific enough to have their mutual consistency and other properties tested.

This is what Argosim has introduced in their STIMULUS offering. It’s a mechanism for specifying requirements, testing them for correctness and consistency, and then generating tests from them that can be used in future validation testing.

At present, the workflow is somewhat disconnected from existing flows; ideally, requirements would be specified using STIMULUS – that’s Argosim’s long-term vision. For the moment, it’s more of a collaborative process.

First, a requirements engineer will create natural-language requirements in the same way as is done today. He then hands them off to a verification engineer, who will create a model in STIMULUS using a formal language that can then be simulated. Both requirements and assumptions are included in the description. Through simulation, problems might be identified – and the original requirements engineer is then consulted for discussion and correction.

If no issues are identified, then the verification engineer can generate tests that will be used downstream to close the loop and ensure that the implementation of the requirements matched the intent. If tests aren’t generated, or if the test set is incomplete, then this is still something of an open-loop process.

You can find out more about STIMULUS in their announcement.

Leave a Reply

featured blogs
Apr 6, 2020
My latest video blog is now available. This time I am looking at the use of dynamic memory in real-time embedded applications. You can see the video here or here: Future video blogs will continue to look at topics of interest to embedded software developers. Suggestions for t...
Apr 4, 2020
That metaphorical '€œboing'€ sound you hear, figuratively speaking, is a symbolical ball allegorically landing on Chewy'€™s side of the illusory net....
Apr 3, 2020
[From the last episode: We saw some of the mistakes that can cause programs to fail and to breach security and/or privacy.] We'€™ve seen how having more than one program or user resident as a '€œtenant'€ in a server in the cloud can create some challenges '€“ at leas...
Apr 2, 2020
There are many historical innovations that are the product of adversity, and the current situation is an extreme example.  While it is not the first time that humanity has faced a truly global challenge like the COVID-19 pandemic, this time the world is connected by tech...

Featured Video

Industry’s First USB 3.2 Gen 2x2 Interoperability Demo -- Synopsys & ASMedia

Sponsored by Synopsys

Blazingly fast USB 3.2 Gen 2x2 are ready for your SoC. In this video, you’ll see Synopsys and ASMedia demonstrate the throughput available with Synopsys DesignWare USB 3.2 IP.

Learn more about Synopsys USB 3.2