The important thing query: Would altering thread scheduling, community latency, or a timeout alter correctness? Then you may have connascence of timing.
Connascence of worth
Connascence of worth happens when a number of values have to be correctly coordinated between modules. As an example, think about you may have a unit check that appears like this:
[Test] process TestCheckoutValue { PriceScanner = new TPriceScanner(); PriceScanner.Scan('Frosted Sugar Bombs'); Assert.Equals(50, PriceScanner.CurrentBalance); }
So we’ve written the check. Now, within the spirit of Check Pushed Improvement, I’ll make the check move as simply and easily as doable.
void PriceScanner.Scan(aItem: string) { CurrentBalance = 50; }
We now have tight coupling between TPriceScanner
and our check. We clearly have connascence of identify, as a result of each courses depend on the identify CurrentBalance
. However that’s comparatively low-level connascence, and completely acceptable. Now we have connascence of sort, as a result of each should agree on the kind TPriceScanner
, however once more, that’s benign. And we now have connascence of which means, as a result of each routines have a hard-coded dependency on the quantity 50. That must be refactored.