This is  a review of

[[[
Network Working Group                                 M. Nottingham, Ed.
Internet-Draft                                             R. Sayre, Ed.
Expires: October 20, 2005                                 April 18, 2005


                      The Atom Syndication Format
                      draft-ietf-atompub-format-08
]]] -
http://ietf.levkowetz.com/drafts/atompub/format/draft-ietf-atompub- format-08.txt

against W3C QA Framework: Specification Guidelines.
    http://www.w3.org/TR/qaframe-spec/
(A new version of Specification Guidelines will be published next week in Proposed Recommendation. This review has been made with the Editor's draft version which is not public yet).

Short Intro:
W3C QA Specification Guidelines has been designed to help W3C editors write better specifications. It focuses on how to define and specify conformance for a specification. Additionally, it addresses how a specification might allow variation among conforming implementations.

I have done the review of Atom 0.8 to test W3C QA Specification Guidelines with an external technical document and I thought it could be also useful to the Atom community.

The QA Specification Guidelines Specification is organized with a series of mandatory "Requirements" and optional "Good Practices". For each of them, you will find an explanation and a benefits analysis, plus techniques, examples, and other readings.


You might want to read the Test FAQ too.
    http://www.w3.org/QA/WG/2005/01/test-faq
to create a test suite for Atom and shared between developers
   http://intertwingly.net/wiki/pie/ConformanceTests

Best Regards.


Requirement 01: Include a conformance clause.
NO. There is indeed a section which is an attempt of conformance clause but doesn't fulfill all the requirements that we could expect from such sections. It would be good to have a specific table of content item with the words conformance to help developers to understand right away the conformance model of the specification.

Requirement 02: Define the scope.
YES. In the introduction of the document are given what the technology is about. Though it could be certainly improved, by giving a more systemic way of describing the scope.

Requirement 03: Identify who or what will implement the specification.
NO. For example, we can see "Atom Processors" in the specification, but it is defined what's an atom processor. The list of class of products would help to define the conformance model, and then the conformance clause. What about authoring tools? What about validators? etc.

Requirement 04: Make a list of normative references.
    YES. The list of normative references is given.

Requirement 05: Define the terms used in the normative parts of the specification. NO. "Atom Processors" is not defined. Atom Feed is defined, Atom Entry as well. Some of the important concept really need more definitions. It's really important because it avoids broad interpretation of some terms.

Requirement 06: Create conformance labels for each part of the conformance model. NO. The conformance model being not completely clear. It's very hard to know what are the different type of conformance and then to put labels on them.

Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them. YES. the RFC is using a consistent style explained in Notational conventions.

Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional. YES/NO. Because of the lack of conformance clause clearly defined, it might be confusing. For example "This specification does not define a DTD for Atom Documents, and hence does not require them to be valid (in the sense used by XML)." But a document could be valid against the RELAXNG Schema. Is there any reason to not make the schema normative?

Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance. N/A. The technology seems to not be modular and then not subdivided.

Requirement 10: If the technology is subdivided, then address subdivision constraints.
    N/A.

Requirement 11: Address Extensibility.
    YES. Perfectly addressed.

Requirement 12: Identify deprecated features.
    N/A. None.

Requirement 13: Define how each class of product handles each deprecated feature.
    N/A. None.

List of Good Practices (OPTIONAL):

Good Practice 01: Define the specification's conformance model in the conformance clause.
    NO.

Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.
    NO.

Good Practice 03: Provide the wording for conformance claims.
    NO.

Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.
    NO.

Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.
    NO.

Good Practice 06: Provide examples, use cases, and graphics.
    YES.

Good Practice 07: Write sample code or tests.
    YES.

Good Practice 08: When imposing requirements by normative references, address conformance dependencies.
    YES.

Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.
    NO.

Good Practice 10: Use terms already defined without changing their definition.
    YES.

Good Practice 11: Use formal languages when possible.
NO. You have used a formal language, the RelaxNG Schema but you didn't make it normative.

Good Practice 12: Write Test Assertions.
    NO.

Good Practice 13: Create subdivisions of the technology when warranted.
    N/A.

Good Practice 14: If the technology is profiled, define rules for creating new profiles.
    N/A.

Good Practice 15:Use optional features as warranted.
YES. It seems it has been clearly defined when something is optional when it's not.

Good Practice 16: Clearly identify optional features.
    YES. but could be better.

Good Practice 17: Indicate any limitations or constraints on optional features.
    YES.

Good Practice 18: If extensibility is allowed, define an extension mechanism.
    YES. A whole section is dedicated to it.

Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.
    NO.

Good Practice 20: Define error-handling for unknown extensions.
    YES.

Good Practice 21: Explain how to avoid using a deprecated feature.
    N/A.

Good Practice 22: Identify obsolete features.
    N/A.

Good Practice 23: Define an error handling mechanism.
    YES.



--
Karl Dubost - http://www.w3.org/People/karl/
W3C Conformance Manager
*** Be Strict To Be Cool ***


Reply via email to