My question actually applies to a physical device development, but I guess it is equivalent to a software development workflow, so perhaps someone here can enlighten me.
Sometimes we've got requirements on the very top levels (system design level or even above, i.e. platform level and so on) that contain detailed implementation specifics. Examples:
A non-functional requirement can come from above stating that the electrical interfaces of the whole product must conform to a specific safety norm, which describes all isolation, resistance and electrical values/characteristics. That has to be however passed on throughout all levels until it reaches the hardware design level (or module level), which has to take these values into consideration when choosing the physical connector.
A functional or non-functional requirement can come from above stating how a specific interface should behave or what electrical characteristics it must contain in order to be connected or communicate with a specific external device. Here it also may be already defined which hardware electrical characteristics this interface must contain or even how a specific protocol should be followed for this external communication.
In these both examples we have there restraints coming from the very top levels, as the whole device/system is meant to achieve those goals when built (communicate with external systems or follow some country standard). Now I am struggling to break down these requirements to the lower levels. I can only picture these 2 approaches currently:
A. (SYS-REQ-01)System must comply with norm XYZ -> (COMP-REQ-01)External connectors must comply with norm XYZ -> (MOD-REQ-01)Connector K must comply with norm XYZ
B. (SYS-REQ-01)System must comply with norm XYZ -> (COMP-REQ-01)External connectors must comply with norm mentioned on SYS-REQ-01 -> (MOD-REQ-01)Connector K must comply with norm according to COMP-REQ-01, detailed on SYS-REQ-01
In the solution A we have the advantage that each layer must only "see" the immediately above layer in order to break down its requirements, whereas in B, the Component level must go up to System level to find out the needed characteristics. On the other hand, A can easily become redundant (i.e. when the system anyways only has the connector K as interface, all levels are saying the same with different words), whereas B is clearly linking everything to the norm XYZ mentioned just once.
Both of them are still not feeling the best way to approach this problem. When considering the example 2, it gets even worse. For example, if system level defines that one specific interface is needed to communicate with a given external system (i.e. SPI pins with a given baudrate), that would easily be repeated on the component level, since there is not much to break down.
Any tips to tackle this issue would be much appreciated.
EDIT: As pointed above, solution A and solution B have drawbacks considering what I believe to be best practices of system design (either redundancy, i.e. replicate of same requirement throughout different levels, or indirect linkage from one level to multiple levels above/below). Does any one know another approach that would avoid these two issues?