Different places have different definitions for that term and other terms for related concepts. NIST uses the term as follows:
When I taught intro networking, I referred to the OSI reference model as literally that - a model that can be referred to in discussion. I’ve always thought that was its primary value (even if not intended that way). I can say “X is *like* layer 5” and you get a sense of what I mean, even if there aren’t 4 layers below and 2 above. There’s a design model that provides a demonstration how a complex set of components might be organized, especially highlighting interactions and behaviors that are expected and how that might be achieved. It’s intended to be referred to, but implementers are allowed to do things their own way, as long as the behaviors and interactions are logically preserved. There’s also a thing called a “gold standard” implementation, which is intended as a complete example of a spec that can be used as a tester. I.e., let’s say we have an INTEROP-style "bake-off”; rather than testing N implementations with N(N-1) pairwise tests, a gold standard should allow N tests to suffice. If everyone interacts properly with the gold standard, then we believe we can assume they will interoperate with each other (still better to test that eventually, but it helps resolve “who is right” when two implementations don’t work). A “reference implementation” may refer to any of the three above: discussion example, design example, or testing standard. It may be “best known implementation”, which is often used as a testing standard (but shouldn’t be, IMO). Or something else I haven’t seen, of course. There are certainly other interpretations for these terms and other relevant terms. Ultimately, though, I would say any use of these terms should include the intended definition. Joe — Dr. Joe Touch, temporal epistemologist www.strayalpha.com |