5 Major Functional and Performance Requirements

5.1 Must provide user access to program

5.1.1 Allow user to enter filters, trusts, and peer group configuration.

5.1.2 Allow user to specify subordinate and manager relationships

5.2 Hummers must be able to cooperate with other Hummers

5.2.1 Cooperating Hummers (Peers) must be organized as a group

5.2.1.1 Peer groups must be managed by one of the peer group members

5.2.1.2 Peer group management must allow for adding group members

5.2.1.3 Peer group management must allow for removing group members

5.2.1.4 Peer group management must allow for create new peer groups

5.2.1.5 Peer group may be arbitrarily large.

5.2.2 Peers must be able to share information with some trust, and integrity level

5.2.3 Peers must have access to information archives on other Peers

5.2.3.1 Peers must provide limited access to log DB for other Peers

5.2.4 Peers must be able to request action from others

5.2.4.1 An action must be new data collection

5.2.4.2 An action must be stop data collection

5.2.4.3 Action results can be sent to the whole peer group

5.2.4.4 Action results can be sent to the requester only

5.2.4.5 An action must be new filter

5.2.4.6 An action must be to remove a filter

5.2.5 Peer group members must be top level managers of their tree

5.2.6 Information collected from Peers will be validated

5.2.7 Remote connections should be authenticated

5.2.8 Peers decide locally which requests they honor

5.2.9 Data from Peers must be assigned a integrity level locally

5.2.10 Data from Peers must be assigned a trust level locally

5.2.11 Data must be sanitized and reduced before sending to Peers

5.2.11.1 A Hummer must have the ability to replace sensitive strings in data

5.2.11.2 A Hummer must have the ability to remove sensitive data

5.2.11.3 A Hummer must have the ability to calculate stats on its data

5.3 Managers must manage their tree of Subordinates

5.3.1 Managers must provide instruction for data collection

5.3.2 Manager will instruct subs. which tools to run

5.3.3 Manager will instruct subs what data to filter

5.3.4 Managers must provide instruction for data flow

5.3.5 Managers will instruct subs what data to forward up

5.3.6 Managers do not need to trust subordinates

5.3.7 Managers must modify, add, and delete data collection activity of its subordinates

5.4 Subordinates must follow their managers instruction

5.4.1 Subs. receive data collection directives from managers

5.4.2 Subs may be managers of others.

5.4.3 Subs fully trust their managers

5.5 Top level Managers must be able to configure their hierarchy

5.5.1 Managers should be able to define the topology of their tree

5.5.2 Managers should be able to visualize the topology of their tree

5.5.3 Managers should be able to define the information flow of their tree

5.5.4 Managers should be able to define data that is collected on their tree

5.5.5 Hosts not yet configured should be able to be configured remotely

5.6 The visualization system should be user configurable

5.6.1 Users should be able to select which data they wish to plot

5.6.2 The amount of time/data the users sees should be adjustable

5.6.3 Peers should have limited access to the visualizations

5.7 A Hummer should have facilities to alert and analyze data

5.7.1 Alert messages should be able to be sent to pagers.

5.7.2 Data Reports should be able to be extracted from the DB.

5.7.3 Data Reports should be available to Peers.

5.8 The HummingBird build system should be easy

5.8.1 Use Lite clients on un-configured machines.

5.8.2 Reduce the amount of large libraries required for compilation

5.8.3 Nightly build and release system

5.8.4 Automated Regression Testing in build scripts