Object-Oriented Software Design

2004 Winter Term COMP 304B Assignments


The assignments form a series of prototypes leading (mostly) to a Spreadsheet application with GUI. All implementation is done in Python.

  1. SpreadsheetGridView: Unit Testing, OO GUI implementation in Python/Tkinter.
    Solution: SSGridView.py, application.py, testSuite.py.
  2. Spreadsheet Design: UML Class Diagram and Object-Interaction Diagram.
    Solution: Class Diagram; Collaboration Diagram; solution.tgz.
  3. 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.
  4. Spreadsheet cell value set Undo: Command Pattern.

Submitting assignments

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).