3. Component Requirements, Constraints, and Acceptance Criteria
Most requirements take the form of "foo will do ...." or "foo will not support ...", although different words and sentence structure might be used. Adding functionality to your proposal is requirements creep (bad), unless listed below. Discuss major changes with your team first, and then open a "feature improvement" issue against this component.
This component will correctly reads a developers mind for intent and generate the right configuration file.
The generated config file will not support XML, but will provide an extension point in the API.
This component will use no more memory than twice the size of all data it contains.
This component will include a factory method.
This component will not allow subclassing. (i.e. when reviewed, we expect to see "final" keyword in code)
This component will only generate data exports strictly complying with RFC 12345.
This component will validate input data against formats supported by ZF component Foo.
This component will not save any data using Zend_Cache or the filesystem. All transient data will be saved using Zend_Session.
4. Dependencies on Other Framework Components
Zend_Exception
5. Theory of Operation
The component is instantiated with a mind-link that ...
6. Milestones / Tasks
Describe some intermediate state of this component in terms of design notes, additional material added to this page, and / code. Note any significant dependencies here, such as, "Milestone #3 can not be completed until feature Foo has been added to ZF component XYZ." Milestones will be required for acceptance of future proposals. They are not hard, and many times you will only need to think of the first three below.