Skip to main content

Design PatternsLaajuus (5 cr)

Code: TX00EY29

Credits

5 op

Objective

The student is familiar with the most common object-oriented design models (so called Gamma's models) and their significance in the design of reusable software. In particular, the student learns the importance of interface thinking in the design of object-oriented software and acquires tools for implementing both structurally and functionally sustainable solutions.

Content

Gamma's creational, structural and behavioral patterns, paying particular attention to the following aspects:
- the relationship between application frameworks and design patterns
- programming against interfaces (or abstractions)
- inheritance and aggregation as re-use options
- delegation as an implementation mechanism for service provision
- the importance of creational patterns as an enhancer of code reusability
- abstract classes as enablers of shared code
- the difference between the traditional control flow and the inversion of control
- shared objects as a resource saving mechanism
- centralized vs. decentralized decision making
- tight vs. loose coupling of objects
- push and pull models as communication technologies in object communication
- deep copying vs. shallow copying of objects.

Prerequisites

Object-oriented programming

Assessment criteria, satisfactory (1)

Student knows best practices and design patterns.

Assessment criteria, good (3)

Student is able to design and implement programs using best practices and design patterns.

Assessment criteria, excellent (5)

Student is able to diversely design and implement programs using best practices and design patterns.

Assessment criteria, approved/failed

Student knows best practices and design patterns.

Enrollment

06.05.2024 - 18.08.2024

Timing

19.08.2024 - 15.12.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

School of ICT

Campus

Myllypurontie 1

Teaching languages
  • Finnish
Seats

0 - 35

Degree programmes
  • Information and Communication Technology
Teachers
  • Vesa Ollikainen
Groups
  • ICT23K-SW
    Software Engineering

Objective

Opiskelija tuntee yleisimmät olio-ohjelmoinnin suunnittelumallit (Gamman yleiset mallit) ja niiden merkityksen uudelleenkäytettävien ohjelmistojen suunnittelussa. Opiskelija oppii eritysesti rajapinta-ajattelun merkityksen olio-ohjelmistojen suunnittelussa ja saa työkaluja sekä rakenteellisesti että toiminnallisesti kestävien ratkaisujen toteuttamiseen.

Content

Kurssilla opiskellaan Gamman luonti-, rakenne- ja käyttäytymismallit kiinnittäen huomiota erityisesti seuraaviin seikkoihin:
- sovelluskehysten ja suunnittelumallien suhde toisiinsa
- ohjelmointi rajapintoja (tai abstraktioita) vasten
- periyttäminen ja koostaminen uudelleenkäytön toteutusvaihtoehtoina
- delegointi palvelun tarjoamisen toteutusmekanismina
- luontimallien merkitys koodin uudelleenkäytettävyyden lisääjänä
- abstraktit luokat yhteiskäyttöisen koodin mahdollistajina
- perinteisen ohjausvuon ja käännetyn ohjausvuon (inversion of control) ero
- yhteiskäyttöiset oliot resurssien säästön mekanismina
- keskitetty vs. hajautettu päätöksenteko
- olioiden tiukka vs. löyhä kytkentä
- push- ja pull-mallit tiedonvälitystekniikoina olioiden kommunikoinnissa
- olioiden syväkopiointi vs. matalakopiointi.

Evaluation scale

0-5

Assessment criteria, satisfactory (1)

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Assessment criteria, good (3)

Opiskelija osaa soveltaa ohjelmointityön parhaita käytänteitä ja käyttää suunnittelumalleja ohjelmointityössä.

Assessment criteria, excellent (5)

Opiskelija osaa monipuolisesti soveltaa ohjelmointityön parhaita käytänteitä ja käyttää laajasti suunnittelumalleja ohjelmointityössä.

Assessment criteria, approved/failed

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Prerequisites

Olio-ohjelmointiosaaminen

Enrollment

06.05.2024 - 18.08.2024

Timing

19.08.2024 - 15.12.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

School of ICT

Campus

Myllypurontie 1

Teaching languages
  • Finnish
Seats

0 - 35

Degree programmes
  • Information and Communication Technology
Teachers
  • Vesa Ollikainen
Groups
  • TVT23K-O
    Ohjelmistotuotanto

Objective

Opiskelija tuntee yleisimmät olio-ohjelmoinnin suunnittelumallit (Gamman yleiset mallit) ja niiden merkityksen uudelleenkäytettävien ohjelmistojen suunnittelussa. Opiskelija oppii eritysesti rajapinta-ajattelun merkityksen olio-ohjelmistojen suunnittelussa ja saa työkaluja sekä rakenteellisesti että toiminnallisesti kestävien ratkaisujen toteuttamiseen.

Content

Kurssilla opiskellaan Gamman luonti-, rakenne- ja käyttäytymismallit kiinnittäen huomiota erityisesti seuraaviin seikkoihin:
- sovelluskehysten ja suunnittelumallien suhde toisiinsa
- ohjelmointi rajapintoja (tai abstraktioita) vasten
- periyttäminen ja koostaminen uudelleenkäytön toteutusvaihtoehtoina
- delegointi palvelun tarjoamisen toteutusmekanismina
- luontimallien merkitys koodin uudelleenkäytettävyyden lisääjänä
- abstraktit luokat yhteiskäyttöisen koodin mahdollistajina
- perinteisen ohjausvuon ja käännetyn ohjausvuon (inversion of control) ero
- yhteiskäyttöiset oliot resurssien säästön mekanismina
- keskitetty vs. hajautettu päätöksenteko
- olioiden tiukka vs. löyhä kytkentä
- push- ja pull-mallit tiedonvälitystekniikoina olioiden kommunikoinnissa
- olioiden syväkopiointi vs. matalakopiointi.

Evaluation scale

0-5

Assessment criteria, satisfactory (1)

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Assessment criteria, good (3)

Opiskelija osaa soveltaa ohjelmointityön parhaita käytänteitä ja käyttää suunnittelumalleja ohjelmointityössä.

Assessment criteria, excellent (5)

Opiskelija osaa monipuolisesti soveltaa ohjelmointityön parhaita käytänteitä ja käyttää laajasti suunnittelumalleja ohjelmointityössä.

Assessment criteria, approved/failed

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Prerequisites

Olio-ohjelmointiosaaminen

Enrollment

27.11.2023 - 14.01.2024

Timing

15.01.2024 - 12.05.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

School of ICT

Campus

Myllypurontie 1

Teaching languages
  • English
Seats

0 - 35

Degree programmes
  • Degree Programme in Information Technology
Teachers
  • Vesa Ollikainen
Groups
  • ICT22-SW
    Software Engineering

Objective

Opiskelija tuntee yleisimmät olio-ohjelmoinnin suunnittelumallit (Gamman yleiset mallit) ja niiden merkityksen uudelleenkäytettävien ohjelmistojen suunnittelussa. Opiskelija oppii eritysesti rajapinta-ajattelun merkityksen olio-ohjelmistojen suunnittelussa ja saa työkaluja sekä rakenteellisesti että toiminnallisesti kestävien ratkaisujen toteuttamiseen.

Content

Kurssilla opiskellaan Gamman luonti-, rakenne- ja käyttäytymismallit kiinnittäen huomiota erityisesti seuraaviin seikkoihin:
- sovelluskehysten ja suunnittelumallien suhde toisiinsa
- ohjelmointi rajapintoja (tai abstraktioita) vasten
- periyttäminen ja koostaminen uudelleenkäytön toteutusvaihtoehtoina
- delegointi palvelun tarjoamisen toteutusmekanismina
- luontimallien merkitys koodin uudelleenkäytettävyyden lisääjänä
- abstraktit luokat yhteiskäyttöisen koodin mahdollistajina
- perinteisen ohjausvuon ja käännetyn ohjausvuon (inversion of control) ero
- yhteiskäyttöiset oliot resurssien säästön mekanismina
- keskitetty vs. hajautettu päätöksenteko
- olioiden tiukka vs. löyhä kytkentä
- push- ja pull-mallit tiedonvälitystekniikoina olioiden kommunikoinnissa
- olioiden syväkopiointi vs. matalakopiointi.

Evaluation scale

0-5

Assessment criteria, satisfactory (1)

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Assessment criteria, good (3)

Opiskelija osaa soveltaa ohjelmointityön parhaita käytänteitä ja käyttää suunnittelumalleja ohjelmointityössä.

Assessment criteria, excellent (5)

Opiskelija osaa monipuolisesti soveltaa ohjelmointityön parhaita käytänteitä ja käyttää laajasti suunnittelumalleja ohjelmointityössä.

Assessment criteria, approved/failed

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Prerequisites

Olio-ohjelmointiosaaminen

Enrollment

27.11.2023 - 14.01.2024

Timing

15.01.2024 - 12.05.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

School of ICT

Campus

Myllypurontie 1

Teaching languages
  • Finnish
Seats

0 - 35

Degree programmes
  • Information and Communication Technology
Teachers
  • Simo Silander
Groups
  • TVT22-O
    Ohjelmistotuotanto

Objective

Opiskelija tuntee yleisimmät olio-ohjelmoinnin suunnittelumallit (Gamman yleiset mallit) ja niiden merkityksen uudelleenkäytettävien ohjelmistojen suunnittelussa. Opiskelija oppii eritysesti rajapinta-ajattelun merkityksen olio-ohjelmistojen suunnittelussa ja saa työkaluja sekä rakenteellisesti että toiminnallisesti kestävien ratkaisujen toteuttamiseen.

Content

Kurssilla opiskellaan Gamman luonti-, rakenne- ja käyttäytymismallit kiinnittäen huomiota erityisesti seuraaviin seikkoihin:
- sovelluskehysten ja suunnittelumallien suhde toisiinsa
- ohjelmointi rajapintoja (tai abstraktioita) vasten
- periyttäminen ja koostaminen uudelleenkäytön toteutusvaihtoehtoina
- delegointi palvelun tarjoamisen toteutusmekanismina
- luontimallien merkitys koodin uudelleenkäytettävyyden lisääjänä
- abstraktit luokat yhteiskäyttöisen koodin mahdollistajina
- perinteisen ohjausvuon ja käännetyn ohjausvuon (inversion of control) ero
- yhteiskäyttöiset oliot resurssien säästön mekanismina
- keskitetty vs. hajautettu päätöksenteko
- olioiden tiukka vs. löyhä kytkentä
- push- ja pull-mallit tiedonvälitystekniikoina olioiden kommunikoinnissa
- olioiden syväkopiointi vs. matalakopiointi.

Evaluation scale

0-5

Assessment criteria, satisfactory (1)

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Assessment criteria, good (3)

Opiskelija osaa soveltaa ohjelmointityön parhaita käytänteitä ja käyttää suunnittelumalleja ohjelmointityössä.

Assessment criteria, excellent (5)

Opiskelija osaa monipuolisesti soveltaa ohjelmointityön parhaita käytänteitä ja käyttää laajasti suunnittelumalleja ohjelmointityössä.

Assessment criteria, approved/failed

Opiskelija tuntee ohjelmointityön parhaita käytänteitä. Opiskelija osaa selittää, miksi suunnittelumalleja tarvitaan ja tuntee eri malleja.

Prerequisites

Olio-ohjelmointiosaaminen