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

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

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


Subject: use cases for testing architectural changes



These are the use cases I try to think through when judging the impact of a proposed architectural change. The advantage of these use case is that they test the modularity of the design (is each design module still strictly delineated), the awareness of ancestry (is each element mappable to an ancestor), the awareness of constraints (which modules are being used in the current document type, how do they relate to each other), and the ability to functionally preserve this awareness in a generalized form. These use cases aren't more important than others, they just exercise the architecture (specifically the class and domains attributes) pretty thoroughly. For background on generalization and conref (including why they're important), check the architectural spec.

conref
--------------------------------------
Ensure that conref between any two elements can correctly compare constraints (currently by comparing the domains attribute and class attribute) and prevent content from less constrained contexts being pulled into more constrained contexts. Imagine conrefs between any of the elements in the fully specialized case below.

Also worth checking conref with generalization (per below). IE, conref should ideally be able to generalize when pulling from a more constrained environment, and also be able to respecialize when pulling from a generalized environment. Or we could simply choose to say that in those cases conref should be able to pull content into a well-formed document without massaging the content, just with the knowledge that the resulting processing will be valid.


Selective multi-level generalization with processing and roundtripping
------------------------------------------------------------------------------------------------------
Take a nice complex document (let's say one that includes three topic types and three domains, with varying levels of specialization from 3 to 5); generalize one type and one domain from level 5 to level 3, then respecialize just one of them to level 4, then respecialize both to level 5. Between each action, produce output that should be identical to output from the fully specialized version.

Example - fully specialized (class atts would be implicit)
---------------------------------------------------------------------------------------

<A5 id="A5" class="- topic/topic A2/A2 A3/A3 A4/A4 A5/A5 " domains="(topic a1 a2 a3 a4 a5) (topic b1 b2 b3 b4 b5) (topic c1 c2 c3 c4 c5)">
  ....
  <pA5 class="- topic/p A2/pA2 A3/pA3 A4/pA4 A5/pA5 ">
    <pha5 class="+ topic/ph a1/pha1 a2/pha2 a3/pha3 a4/pha4 a5/pha5 ">content from pha5</pha5>
    <phb5 class="+ topic/ph b1/phb1 b2/phb2 b3/phb3 b4/phb4 b5/phb5 ">content from phb5</phb5>
    <phc5 class="+ topic/ph c1/phc1 c2/phc2 c3/phc3 c4/phc4 a5/pha5 ">content from phc5</phc5>
  </pA5>
...
</A5>

<B5 id="B5" class="- topic/topic B2/B2 B3/B3 B4/B4 B5/B5 " domains="(topic a1 a2 a3 a4 a5) (topic b1 b2 b3 b4 b5) (topic c1 c2 c3 c4 c5)">
  ....
  <pB5 class="- topic/p B2/pB2 B3/pB3 B4/pB4 B5/pB5 ">
    <pha5 class="+ topic/ph a1/pha1 a2/pha2 a3/pha3 a4/pha4 a5/pha5 ">content from pha5</pha5>
    <phb5 class="+ topic/ph b1/phb1 b2/phb2 b3/phb3 b4/phb4 b5/phb5 ">content from phb5</phb5>
    <phc5 class="+ topic/ph c1/phc1 c2/phc2 c3/phc3 c4/phc4 a5/pha5 ">content from phc5</phc5>
  </pB5>
...
</B5>

<A3 id="A3" class="- topic/topic A2/A2 A3/A3 " domains="(topic a1 a2 a3 a4 a5) (topic b1 b2 b3 b4 b5) (topic c1 c2 c3 c4 c5)">
  ....
  <pA3 class="- topic/p A2/pA2 A3/pA3 ">
    <pha5 class="+ topic/ph a1/pha1 a2/pha2 a3/pha3 a4/pha4 a5/pha5 ">content from pha5</pha5>
    <phb5 class="+ topic/ph b1/phb1 b2/phb2 b3/phb3 b4/phb4 b5/phb5 ">content from phb5</phb5>
    <phc5 class="+ topic/ph c1/phc1 c2/phc2 c3/phc3 c4/phc4 a5/pha5 ">content from phc5</phc5>
  </pA3>
...
</A3>

Example 2 - would be as above but with A5 and pA5 elements renamed to A3 and pA3, and phc5 elements renamed to phc3 (class attribute values unaffected but made explicit)

Example 3 - would be as above but with the previously generalized A5 and pA5 elements (the first set of A3 and pA3) renamed to A4 and pA4 (again, class attribute values unaffected but made explicit)

Example 4 - should result in the same document as Example 1 - class attribute values returned to implicit, all elements fully specialized.

Michael Priestley
mpriestl@ca.ibm.com


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