OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

tag message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [tag] About Prescription levels


Before I've considered this discussion I'd better at
least fulfill my AI on this and send an example of
my reasoning.

It does indeed seem that negating the predicate is in most cases
the same as negating the prescription level.

If I want to only allow prescription level values without 'Not'
(only 'permitted, mandatory, preferred') I can usually do so by
negating the predicate when the spec says MUST NOT. MAY NOT is
not a 2119 keyword so MAY seems to be regarded in 2119 (implicitly)
as near enough equivalent to MAY NOT and explicitly it compares
MAY to optional.

My argument is that to negate the predicate may sometimes
1. be tricky
2. not exactly match the spec in its logic when combined with positive PL

However I cannot find an example of this. The problem I found was in
Kevin's example in which he said something like:
"if A=B then C is optional"

Here
A=B could be a prerequisite;
C would obviously be a predicate
but what would the prescription level be?

The nearest of the three values 'permitted, mandatory, preferred'
seems to be 'permitted'. But my own logic doesn't feeel that this
is quite the same in meaning to 'optional'. To me a nearer fit is

prerequisite: A=B
predicate: not(C)
prescription level: permitted

I guess I have answered my own complaint here in that in this case
again the negating of the predicate with an overall 'not(...)'
fulfills the TA authoring requirement.

I still though think that not all predicates can be easily negated
so I'll resort to logic discussions I've seen (1) which claim that some
negations of negations are not the same as the equivalent without
either negation. In this case an already negative predicate that
needed to be negated again to match the PL would require care.

example

"It is not permitted to omit C but if A=B then omitting C is optional"

Here the negation of the predicate "C omitted" could be problematic
(in theory at least):

It might be like the following

prerequisite: A=B
predicate: not(not C)
prescription level: permitted

even if it is actually worded:

prerequisite: A=B
predicate: not(C omitted)
prescription level: permitted

I get the impression from the logic discussion (1) on double
negatives that this might not always mean what it seems
due in the main to the linguistic meaning of 'not(not a)'.
So here in theory I would perhaps think it better to say:

prerequisite: A=B
predicate: C omitted
prescription level: not mandatory

OK so it might be an edge case, I agree. But how would such an
edge case be foreseen when starting to write the TAs? That's
my argument as best I can put it.


  Ref (1) I've come across, for example, 'intuitionistic logic'
in which one can say that
"a is b" is not exactly equivalent to "not(a is not(b))" and I
think linguistically this is so too.

The question that is getting at me then is:
what is the difference between negating the predicate and
negating the prescription level? Is there one? I'm not
completely sure there is no difference. I know that isn't
exactly the same as saying "I'm sure there is a difference" :-)


-- 
Stephen D. Green

Partner
SystML, http://www.systml.co.uk
Tel: +44 (0) 117 9541606

http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice



Quoting "Durand, Jacques R." <JDurand@us.fujitsu.com>:

> So far we have the following values for the prescription level:
>
> - mandatory: cover statements that make use of keywords like : MUST ,
> SHALL, REQUIRED
> - preferred: cover statements that make use of keywords like : SHOULD ,
> RECOMMENDED
> - permitted: cover statements that make use of keywords like : OPTIONAL,
> MAY
>
> These values are an abstraction of these popular keywords. Their intent
> is to reflect the level to which the feature is prescribed by the
> specification. They are an indication for the test case writer of what
> the outcome means in terms of conformance.
>
> We need to decide of what to do with "negative statements" like MUST
> NOT,  SHOULD NOT, etc.
>
> So far, if keeping the above keywords, by default we have:
>
> MUST NOT,  SHALL NOT, (and MAY NOT?) --> mandatory, i.e. a predicate
> must be expressed so that it is "true" when the statement is fulfilled.
> E.g.: "the button MUST NOT be red" --> predicate = not ([button] is
> red).
> "Mandatory" prescription means generally that if the predicate is
> "false" the specification is violated.
>
> same for:
>
> SHOULD NOT, NOT RECOMMENDED --> preferred
>
> NOT REQUIRED --> permitted
>
> Now, if we want to have more freedom in expressing the TA predicate, and
> avoid having to use the negative form, as Stephen suggested we could say
> instead:
>
>  "the button MUST NOT be red"
> predicate = [button] is red.
> prescription = prohibited
>
> and:
>
>  "the button SHOULD NOT be purple"
> predicate = [button] is purple.
> prescription = discouraged (or "tolerated" ...)
>
> ===================================================================
> Questions are:
> ===================================================================
>
> -----  Question (1):  is there in some cases a difference worth of being
> reflected in the TA, between:
>
> predicate = [button] is red.
> prescription = prohibited
>
> and:
>
> predicate = not ([button] is red).
> prescription = mandatory
>
> I frankly would prefer not, but I may be wronged by a convincing
> example...
>
>
> ----- Question (2)
>
> Regardless of  answer  to (1) we have stated in the past that the
> predicate outcome interpretation actually is more subtle than "fulfills
> / violates", e.g.:
>
> (A)
> outcome"true" = spec requirement is fulfilled
> outcome"false" = spec requirement is violated
>
> should rather in many cases be understood as:
>
> (B)
> outcome"true" = spec requirement NOT violated so far
> outcome"false" = spec requirement is violated
>
> Question is:
>
> Should we do this distinction at TA level, or should we leave these
> subtleties to test cases?
> (In favor of testcase level: the TA only states a criterion of adherence
> to a spec statement, while the test case is the one making a more
> committing statement on a SUT.)
>
> If distinction at TA level, that means that "NOT violated so far" is not
> always same as "fulfilled". That means logically a 3rd value
> "undetermined" is needed. In that case we need a new interpretation
> element DIFFERENT from prescription, that says:
>
> outcome"true" = fulfilled / violated / undetermined
> outcome"false" = fulfilled / violated / undetermined
>
> or the like.
>
> NOTE: Even if ansering "no" to (2) we know that in some cases, some TA
> predicates cannot match exactly the specification requirement, for
> testability reasons (e.g. WS-I). A new "interpretation" element would
> allow describing such predicates that only allow partial tests against
> the normative statement.
>
>
>
>





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]