dita message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: use cases for testing architectural changes
- From: Michael Priestley <mpriestl@ca.ibm.com>
- To: dita@lists.oasis-open.org
- Date: Mon, 27 Jun 2005 11:04:21 -0400
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]