Object-Oriented Software Design
2004 Winter Term COMP 304B Assignments
Assignments
The assignments form a series of prototypes leading
(mostly) to a Spreadsheet application with GUI. All
implementation is done in Python.
- SpreadsheetGridView: Unit Testing,
OO GUI implementation in Python/Tkinter.
Solution: SSGridView.py,
application.py,
testSuite.py.
- Spreadsheet Design: UML Class Diagram and Object-Interaction Diagram.
Solution:
Class Diagram;
Collaboration Diagram;
solution.tgz.
- Statecharts to specify GUI reactive behaviour.
DSheet.tgz is the starting point.
AToM3-2.2-DCharts.tgz: AToM3
distribution with DCharts formalism (including simulator SVM and compiler SCC).
Examples from the tutorial are found in the DCharts/models directory.
Dcharts/models/TrafficLight contains a full example of a model/simulation/synthesized
application.
Solution: AToM3 with the DChart model in the DCharts/models/Spreadsheet
directory:
AToM3-2.2-DCharts.tgz;
the DChart model visually
[pdf];
the synthesized DCharts code at work inside the full DSheet application:
DSheet.solution.tgz.
- Spreadsheet cell value set Undo: Command Pattern.
Submitting assignments
- You must submit assignments via WebCT.
- Take into account that the clock on your computer and the one of the WebCT
server may be off by quite a bit. Submit well before the deadline.
- In WebCT, you can upload as many files as you like, as often as you like.
BEWARE ! Once you submit, that is final and it is impossible
to make further modifications.
- Assignment submissions must consist of a number of files. A single
index.html file must
contain references to all the other submitted files. No external references
(to your personal website for example) are allowed. The template which you
must adhere to is here (<shift-click> to download).
Do not submit Word documents !
- To get insight into the assignment workload, please mention the number of hours you
spent on an assignment (in the index.html file).
Original Work
You are encouraged to help other teams formulate
the ideas behind assignment problems, but each team is required to
submit their own original work. Handing in work that is not your
own, original work as if it is your own is plagiarism.
All re-use, collaboration, inspiration must be explicitly
mentioned in the assignment.
McGill University values academic integrity. Therefore all students
must understand the meaning and consequences of cheating, plagiarism and
other academic offences under the code of student conduct and
disciplinary procedures (see
www.mcgill.ca/integrity
for more information).