A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).

Component Model Methodology: Difference between revisions

From WHATWG Wiki
Jump to navigation Jump to search
(Created page with 'Here are the guidelines for understanding the problem of and developing specification for the Component Model =Approach== # Capture requirements as [[Compo...')
 
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
Here are the guidelines for understanding the problem of and developing specification for the [[Component_Model | Component Model]]
Here are the guidelines for understanding the problem of and developing specification for the [[Component_Model | Component Model]].


=Approach==
=Approach=
# Capture requirements as [[Component_Model_Use_Cases | use cases]];
# Capture requirements as [[Component_Model_Use_Cases | use cases]];
# Study use cases and extract a set of [[Component_Model#Properties | desired properties]] for these use cases;
# Study use cases and extract a set of [[Component_Model#Properties | desired properties]] for these use cases;
# Come with a design that satisfies all desired properties;
# Come with a design that satisfies all desired properties;
# Extrude [[Component_Model#Building_Blocks | building blocks]] out of the design;
# Extrude [[Component_Model#Building_Blocks | building blocks]] out of the design;
# Write [https://github.com/dglazkov/component-model specification] draft(s) for the building blocks;
# Cultivate implementation feedback:
#* Provide experimental implementation(s) for the building blocks;
#* Seek feedback from the use case audiences;
#* Incorporate feedback into specification.
# Write a test suite.
# Iterate until [[#Success_Criteria | success criteria]] is reached.
# Iterate until [[#Success_Criteria | success criteria]] is reached.


=Success criteria==
=Success criteria=
* The use cases:
* The use cases:
** reasonably cover a set of component model needs on the Web.
** reasonably cover a set of component model needs on the Web.
Line 17: Line 23:
** satisfy all desired properties;
** satisfy all desired properties;
** follow the component model [[#Design_Priniciples | design principles]].
** follow the component model [[#Design_Priniciples | design principles]].
* The specification:
** is a complete set of requirements for all building blocks and corner cases, discovered during implementation;
* The test suite:
** provides coverage for each requirement in the specification.


=Design Principles==
=Design Principles=
* '''Reuse existing mechanisms''' as much as possible, gently extending them if necessary;
* '''Reuse existing mechanisms''' as much as possible, gently extending them if necessary;
* Study popular patterns in existing Web frameworks and '''pave the cowpaths''' when appropriate;
* Study popular patterns in existing Web frameworks and '''pave the cowpaths''' when appropriate;
* Encourage '''each building block to stand on its own''' merits.
* Encourage '''each building block to stand on its own''' merits.

Latest revision as of 17:35, 23 August 2011

Here are the guidelines for understanding the problem of and developing specification for the Component Model.

Approach

  1. Capture requirements as use cases;
  2. Study use cases and extract a set of desired properties for these use cases;
  3. Come with a design that satisfies all desired properties;
  4. Extrude building blocks out of the design;
  5. Write specification draft(s) for the building blocks;
  6. Cultivate implementation feedback:
    • Provide experimental implementation(s) for the building blocks;
    • Seek feedback from the use case audiences;
    • Incorporate feedback into specification.
  7. Write a test suite.
  8. Iterate until success criteria is reached.

Success criteria

  • The use cases:
    • reasonably cover a set of component model needs on the Web.
  • The properties:
    • completely describe the set of use cases;
    • are orthogonal to each other.
  • The building blocks:
  • The specification:
    • is a complete set of requirements for all building blocks and corner cases, discovered during implementation;
  • The test suite:
    • provides coverage for each requirement in the specification.

Design Principles

  • Reuse existing mechanisms as much as possible, gently extending them if necessary;
  • Study popular patterns in existing Web frameworks and pave the cowpaths when appropriate;
  • Encourage each building block to stand on its own merits.