Hide menu

TDDE45 Software Design and Construction

Seminar 1: Describing and using design patterns (UPG1)

Goal

The goal with the first seminar is for you to be able to describe, and make use of, a number of design patterns as described in the course literature.

Preparations

You will get to read about a set of design patterns from the course book, three per pair. During the seminar you get to present to your peers the design patterns that you have encountered and how they work.

Read specifically the Intent, Motivation, Applicability and Structure of 4 design patterns per person in the Gang of Four course book (or the corresponding parts in another source such as Head First Design Patterns). You may choose any design pattern except the 3 you will present during the seminar. You do not need to present any of these; it is merely intended to get you acquainted with how design patterns are described.

In each team, there will be up to six people divided in three pairs. Here, I denote the pairs in the team 1-3 (you choose which pair is team). For each member, I list the design patterns each pair should read, and be prepared to present to the rest of the team during the seminar.

  1. Abstract Factory, Prototype, Memento
  2. Bridge, Chain of Responsibility, Singleton
  3. Decorator, Proxy, Command

Submit a report before the seminar.

Reading list

Definitions of coupling, cohesion and SOLID.

We assume that you are comfortable reading and writing UML class diagrams but if not, please follow a tutorial on UML, specifically how to draw class diagrams in UML to make yourself more comfortable with the notation.

The course book, selected chapters as described above.

Design

During the first half of the seminar, you will present to one another your design patterns using appropriate UML representations, as well as examples of their use, effects and properties. Share your presentations within your teams before the seminar, so everyone has a chance to read your descriptions. During the second half of the seminar, your seminar assistant will presented to you a set of use cases. See detailed instructions in PDF. Within your team, decide on a design pattern that you would like to use, and why, to implement the functionality described in each case. A random member of each team will get to present your proposed design.

Passing requirements

This seminar is part of UPG1, and has the following requirements:
  • Each pair shall submit short descriptions of each of the three design pattern you had to study with your own words, along with an example of how and when to use it that you create yourselves.

    Make sure that you create the UML yourself (copying figures from the course literature is considered plagiarism; drawing your own figure with the same content as the course literature is not considered creating your own example).

    Send your descriptions to your teaching assistant’s email address for UPG1 before the seminar. Consult the Staff page if you are unsure what this address is, and consult WebReg if you are not sure who your assistant is. In the subject line of your email, state clearly the name of the course and the name of the assignment as exemplified below:

    Subject: [TDDE45] Submission Seminar 1
    (...)
    Regards,
    Name (student ID) and
    Name (student ID)
    
    Also clearly state your names and student IDs in any PDF (preferred format), linked files, or other submissions.
  • Active participation during the seminar.
  • Submit a reflection report discussing the seminar via email (1 report per pair). In the subject line of your email, state clearly the name of the course and the name of the assignment as exemplified below:
    Subject: [TDDE45] Submission Seminar reflection 1
    (...)
    Regards,
    Name (student ID) and
    Name (student ID)
    
    Also clearly state your names and student IDs in any PDF (preferred format), linked files, or other submissions.

Page responsible: Adrian Pop
Last updated: 2022-08-13