Component Model Methodology
Here are the guidelines for understanding the problem of and developing specification for the Component Model.
- Capture requirements as use cases;
- Study use cases and extract a set of desired properties for these use cases;
- Come with a design that satisfies all desired properties;
- Extrude building blocks out of the design;
- Write 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 is reached.
- 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:
- satisfy all desired properties;
- follow the component model 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.
- 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.
Since the component model is composed of several building blocks, it is possible to implement it incrementally, gaining more insight with each step. Here's one possible sequence (tabulated against the use cases and approximate percentage of satisfying them):
|Step||Layout Manager||Mix-and-Match||SVG Controls||Contacts Widget||Like/+1 Button||Media Controls for the Video Element||Details/Summary Element|
|Constructable DOM Types||25%||50%||33%||-||25%||-||-|