- From: Lynne Rosenthal <lynne.rosenthal@nist.gov>
- Date: Mon, 26 Jul 2004 14:45:31 -0400
- To: www-qa-wg@w3.org
- Message-Id: <6.0.0.22.2.20040726144109.01c88d20@mailserver.nist.gov>
The following is a revision of the Intro and Good Practice previously
sent. Changes made based on comments received. Following this email, will
be the rest of this section.
Still needed are examples.
D1 Subdivide
Subdividing the technology should be done carefully. Too many divisions
complicates conformance and can hinder interoperability by increasing the
chances of conflict with other aspects of the specification (e.g., other
subdivisions). Be smart when dividing the technology so that it is not
excessive and provides a positive impact on implementation and
interoperability. The benefits of subdividing should outweigh the drawbacks.
[@@ Maybe a table of the following is better. many things (e.g.,
interoperability) are both benefits and drawbacks – i.e., subdivisions can
help interoperability as well as hurt it).
Benefits: Subdividing can
--make the technology easier to implement
--facilitate incremental implementation
--increase interoperability by focusing the technology on specific needs
-- help organize the structure of the technology
Drawbacks: Too many divisions can:
--complicate conformance – need to account for interrelationships with
other subdivisions and variability (e.g., extensions)
--hurt interoperability – increases likelihood of incompatible implementations
-- increase misinterpretation or cause conflict of requirements due to
multiple or duplicative requirements.
Good Practice: Subdivide the technology to foster implementation
What does this mean?
It may make sense to subdivide the technology into related groups of
functionality to target specific constituencies, address specific
capabilities or hardware considerations, provide for incremental
implementation, facilitate usability, etc.
Why care?
For some specifications (e.g., huge, multi-disciplined), bundling
functionality into named or anonymous packages can
* provide an additional level of scoping control,
* improve readability and the ability to find areas of interest, and
* facilitate implementation and interoperability, since implementing
the entire, monolithic specification may be impractical and undesirable
Related
[Tech Note] contains additional information on three methods to subdivide
technologies, Profiles, Levels and Modules.
Technique: Use profiles. Profiles are subsets of a technology tailored to
meet specific functional requirements of application communities. The
specification may define individual profiles, or may define rules for
profiles, or both. An individual profile defines the requirements for
classes of products that conform to that profile. Rules for profiles
define validity criteria for profiles themselves. Profiles are a good way
to target the needs of specific constituencies.
Technique: Use Functional levels (aka levels) Functional levels are a
hierarchy of nested subsets, ranging from minimal or core functionality to
full or complete functionality. Levels are a good way to facilitate
incremental development and implementation.
Technique; Modules. Modules are discrete collections of
semantically-related units of functionality that do not necessarily fit in
a simple hierarchical structure. Use modules when functionality can be
implemented independently of one another – e.g., audio vs video module. It
is common to have implementers pick and choose multiple modules to implement.
Examples:
Profile: SVG Tiny is a profile aimed at mobile phones.
Profile: XHTML Modularization (XHTML-MOD, section 3) and SMIL (SMIL 2.0)
specifications define rules for profiles.
Levels: There are no examples in W3C where levels are defined explicitly in
a single edition of a specification. CSS and DOM are examples where levels
are the result of progressive historical development and technology
enrichment and are realized in a series of specifications.
Profile/Level combo: SVG Mobile define 3 nested profiles - Tiny, Basic,
Full - which are really 3 levels, each targeted a specific hardware
communities.
Modules: XHTML Modularization and SMIL gives good examples
STOP: Only proceed if you do the above Good Practice. Else, skip the rest
of this section.
Received on Monday, 26 July 2004 14:46:11 UTC