|
Andrew – Thanks for the update. The point on forward compatibility
issues with business rules is interesting. However, I’m not sure
that your example shows a lack of forward compatibility specific to the business
rules. Presumably this problem you describe for inflation swaps only
happens with that product, not with the previously existing interest rate swaps.
However, this product wouldn’t be available in the older schema, so this
would be outside of the scope of forward compatibility. (I.e. it would
fail schema validation before it even got to business rule validation.)
Any promise of forward compatibility would of course need to be limited to
features that were available in the older schema. I think that we
can conclude from your example that when you add new products, you need to
regression test the business rules to ensure that you change them as required. In your conclusion, you state that there is no automated
way to guarantee backward compatibility. While this is probably true,
there is a simple way to determine whether a new minor version breaks
compatibility with a specific instance document: simply do a validation
against the new schema. If we use the approach you describe here, we
should ensure that we validate ALL previously published example documents for
the major version against the new schema. This won’t guarantee 100%
compatibility, but it will provide a relatively high degree of assurance that
the things we considered important to document are compatible. We could also potentially do a forward compatibility test, in
which we validate all “unmodified” examples against the older
version of the schema. (This may not be worth it, because the only change
between the “unmodified” examples should be the version attribute…
it would really be more of a check that our “unmodified” examples
are actually unmodified.) I would be reluctant to endorse the approach you describe without
at least a backwards compatibility test of the previously published examples.
It may also be worth doing an additional test with each published schema, to
verify that there is at least one example of every element that is available
in the schema (not in all possible locations however, as the number of examples
would probably be enormous). I think that the checking of this could be
automated, though it might be a little difficult. Brian From: mtf@xxxxxxxx
[mailto:mtf@xxxxxxxx] On Behalf Of Andrew Jacobs Added
a new section covering the affect on business rules. Thanks Andrew
Jacobs Director
& CTO HandCoded
Software Ltd Mob:
+44 (0)7710 304239 |