Object-Oriented Design Lectures and Tutorials
Lectures
- Intro to the course, overview of the course outline
- Software Processes
-
Unit Testing in Python (Chapter 6 only).
- Object-Oriented Software.
- State-space and Behaviour. (Page-Jones Chapter 10. p. 259 - 272).
- Classes vs. Types. Type Conformance and Closed Behaviour. (Page-Jones Chapter 11. p. 278 - 294).
- All other lectures. (Page-Jones Chapter 1. p. 3 - 49).
- UML: Classes, Attributes and Methods
(Page-Jones Chapter 3. p. 85 - 101).
- UML: Class Diagrams
(Page-Jones Chapter 4. p. 107 - 130).
- UML: Object-Interaction Diagrams: Collaboration Diagrams
(Page-Jones Chapter 5. p. 137 - 146).
- UML: Object-Interaction Diagrams: Sequence Diagrams
(Page-Jones Chapter 5. p. 146 - 160).
- FSA to recognize
regular expresssions
- Higraphs [pdf]
- Statecharts [pdf]
Page-Jones Chapter 6. p. 164 - 181 is optional reading.
- Activity Diagrams/Petri Nets [pdf]
- UML: Architecture Diagrams, Package Diagrams
(Page-Jones Chapter 7. p. 188 - 196).
- Criteria for good OO design: Encapsulation and Connascence.
(Page-Jones Chapter 8. p. 207 - 229).
- Criteria for good OO design: Domains, Encumbrance and Cohesion.
(Page-Jones Chapter 9. p. 233 - 253).
- Design Patterns: Command.
(GoF p. 233 - 238).
- Design Patterns: Observer.
(GoF p. 293 - 300).
- Design Patterns: Composite.
(GoF p. 163 - 169).
- Design Patterns: Visitor.
(GoF p. 331 - 336).
Not exam material, but very informative:
Chapter 2 "A Case Study: Designing a Document
Editor" of the GoF book.
Tutorials
- Wednesday 31 March 18:30 - 20:00 in Trottier 100: solution of assignment 2 + overview of Command and Visitor patterns.
- Wednesday 17 March 18:30 - 20:00 in Trottier 100: tutorial on Statecharts. The AToM3-2.2-DCharts.tgz
archive contains an AToM3 distribution with the SVM simulation plugin as well
as the SCC compiler. The tutorial examples are in the DCharts/models/ directory.
Have a look at Thomas Feng's M.Sc. thesis for more information about DCharts,
SVM and SCC.
- Wednesday 14 January 18:30 - 20:00 in Trottier 100.
Graphical User Interface (GUI) development in Python/Tkinter.
By Bruno Dufour.
- Do not forget the "official"
Tkinter tutorial by Fredrik Lundh !