CSC407F/2103F Assignment 3
Due: December 6, 2004 at 7:00 pm
(the start of the lecture - anything handed in past the time the marking TA leaves the classroom will be considered late).

Invent an architecture for the following requirements and describe it in an architecture document. No design or implementation is required or desired.

Architect an electronics schematic capture and simulation program that can be used for collaborative work across a very large organization. For schematic capture, designers may collaborate at the level of hierarchical blocks. Full version control needs to be implemented. As soon as a designer checks in (or "publishes") a change to a hierarchical block, all affected designs should update (e.g., if Fred is working on a design, and then Kimberly changes the number of hb/sc connectors in her hierarchical block, Fred should be informed that there are changes and ask if he would like to update Kim's block.)

Separate applications will be used by "librarians", who are in charge of entering parts into an official part/footprint database. Designers may enter such parts for themselves, but before being made broadly available, the librarians need to get them, check them, and then publish them.

You have available to you a simulator engine that can be parallelized across many distributed CPUs. When a designer wishes to simulate a circuit, the system should automatically spread out the simulation work amongst nearby, more lightly-loaded processors.