SE 3M04 T1 2002
Assignment 2b - Final Version (Thu. Oct 3)
- Due: Tuesday October 15, 20:00 through WebCT
- Goals:
- Learn more about modularization
- Consider the following situation.
You are given the long-term project of writing a fully interactive
circuit simulation program based on SPICE3. You are given the following
high-level, informal requirements:
- The program must implement all the functionality of
Spice3.
- All functionality must be available through a fully interactive
graphical interface; this includes both creating circuits and doing
various circuit analyses.
- All functionality must be also be available in batch mode (ie without any
user-interaction at all, driven solely from a Spice file).
- Note that some circuit analyses can result in some textual output, whereas other
might result in some graphical output, and a combination thereof, interactively
or in batch.
- Circuit file import and export functionality must be provided in the
interactive interface.
- The interactive interface must also allow a series of analyses to be
performed from importing a (spice) file containing appropriate commands
- You are given your own code for assignment2a as a starting point.
- Deliverables:
- A critique of the modularization of the code in assignment2a with
respect to the requirements given to you. Is it suitable? What parts
are suitable, and what parts are not? Is there functionality implemented
that is superfluous? Is the current modularization easily extensible
to handle all the new requirements?
- A module guide for this hypothetical program. You are expected to provide one module
for user-interactivity but not divide that one into further sub-modules.
The following responsibilities all need to be clearly provided by some module (or
sub-module, sub-sub-module, etc as appropriate):
circuits, (generic and specific) components, (generic and specific) analyses,
spice file (reading, writing), circuit (import, export), analysis commands (import, export),
sub-circuits, models, graphical output.
- electronic copy of log
- Notes:
- You are not expected to break things down to the level of every single type
of component or analysis. You are expected to group components (and analyses)
into meaningful categories of like components [for example grouping resistors
and capacitors, voltage and current sources, etc]. "like components" is
defined by their implementation similarities, not their phyiscal or
operational properties, and to break down the modules to this level.
- Remember that a module listing includes (only) name, secret(s) and service(s),
where the latter 2 are to be describe using (informal) english.
- Module guide, module listing and module breakdown are all synonymous.
- I suggest that you first write a draft critique, then do the module
guide, then rewrite your draft critique with all the information you have learned
by writing the module guide.
- Bonus:
- You can get a total of 25 marks (10 + 15 bonus) for this assignment.
If the final total of all marks
for all your assignments is greater than the total possible marks, the overflow
will count towards your final course mark.
- Instead of writing the module guide using some word processor, use Java declarations
and javadoc to produce it. This will have to include class overviews
as well method(s) to provide all the public services of each module (class).
- This bonus assignment is considerably harder (150% harder in fact) than
the assignment itself. As such, any student who wishes to undertake this should first
contact me; a different (later) deadline will be set for this harder assignment.
Do not undertake this lightly, as it is quite possible to get a lower mark by
taking this route if you are not serious about it.
- Only a few students will be allowed to undertake this.
- Academic dishonesty on the bonus assignment will be treated with the full force
of all the rules and regulations of McMaster University
- For extra keen students, there are possibilities for even more bonus marks out of
this. Come and talk to me about this.
Back to main page