How to overcome challenges with eliciting requirements for embedded systems

In this response, expert Sue Burk describes the importance of the relationship between hardware and software in embedded systems, and how they must be able to communicate and collaborate with each other.

What are the biggest challenges for eliciting requirements for embedded systems, and how would you overcome them?

In a recent response, I discussed two challenges and solutions for getting requirements right:

  • You have to involve all the necessary decision makers and subject matter experts during requirements development (elicitation, analysis, specification, and validation).
  • You have to be able to organize the same requirements in multiple ways so as to meet the needs of all audiences who use or review the requirements.

An additional challenge -- and one that is especially important for embedded software -- is closely related to requirements: you have to ensure that the embedded software and the hardware in which it resides can communicate and collaborate with each other as needed. It’s crucial to understand the interfaces and messages.

For example, suppose that monitoring sensors in the hardware trigger responses by the embedded system; in that case, you have to be sure that the response is actually triggered. The problem? Software usually can be cranked out much faster than new hardware can be built, so coordinating the development can be a huge challenge. If you’re late in discovering hardware constraints on the embedded software or if there are gaps in the requirements, it often leads to costly remediation for the hardware, the embedded software, or both. To decrease this risk, you need to define user acceptance tests early in the process, helping you elicit as well as verify the requirements.

Prototypes are another useful way to elicit and verify requirements for embedded software (just as they are for business application software). Prototypes are critical for ensuring interoperability between hardware and embedded software. When you’re building a prototype, keep in mind that even though you don’t have to have all the functionality in place, it’s crucial to conduct early testing of concrete examples of mission-critical functionality.

Next Steps

How to elicit performance requirements

Dig Deeper on Topics Archive