Ohjelmistoarkkitehtuurit syksy 2013

1 Yleistä

Kurssi käsittelee perusasioita ohjelmistoarkkitehtuureista, niiden suunnittelusta ja toteuttamisesta. Samalla käsitellään ohjelmistoarkkitehtuureihin läheisesti liittyviä asioita, kuten ohjelmistokomponentteja, malleja ja mallikieliä, sekä ohjelmistokehyksiä. Vaikka ohjelmistoarkkitehtuurit eivät ole vain olio-ohjelmien yksinoikeus, käsittelemmen oliolähestymistavan tuttuuden vuoksi myös erityisesti olioarkkitehtuurin kehittämistä.

2 Suoritus

Kurssi suoritetaan osallistumalla luennoille ja demoihin.

Luennoilla käydään läpi ohjelmistoarkkitehtuuria pitkälti Koskimiehen ja Mikkosen kirjan mukaan, joitakin kohtia tarkentaen ja joitakin pois jättäen. Kirjaan liittyvät videot ja kalvot ovat tarjolla Tampereen teknisen yliopiston vastaavan kurssin sivuilla (kts. linkit alla). Luennoilla pyritään myös keskustelemaan esitettävistä asioista.

Demoista saa tänä vuonna lisäpisteitä tenttiin. Demot tehdään osittain kotona ja osittain demotilaisuudessa, mutta tämä vaihtelee demokerroittain.

Etäopiskelijat voivat lukea jonkin aiheeseen liittyvän kirjan ja tulla tenttiin. Kirjaksi käy esimerkiksi Koskimiehen ja Mikkosen Ohjelmistoarkkitehtuurit-kirja. Etäopiskelijana ei ole mahdollista saada lisäpisteitä demoista, mutta ne silti kannattaa tehdä, sillä ne valmistavat hyvin tenttiin.

3 Luennot

Luennot perustuvat pitkälti TTY:n vastaavaan kurssiin ja kirjaan. Alla on lueteltu lähinnä poikkeavuudet.

3.1 Luento 1: Kurssin esittely ja suoritus, arkkitehtuurin määritelmä

3.2 Luento 2: Arkkitehtuurin kehittäminen, laatu; testaaminen

  • Boschin QASAR ja tyylit

3.3 Luento: Arkkitehtuurityylit

  • Boschin QASAR ja tyylit

3.4 Luento: Mallit ja malliajattelu

Katso linkeistä:

  • Brad Appletonin kirjoitus
  • Hillside Groupin kotisivut
  • Koskimiehen ja Mikkosen kirjassa hieman reseptimäinen kuvaus malleista, joten lue tuo Appleton ja Hillsidestä mallin määritelmä (Coplien & Gabriel)

3.5 Luento: Komponentit

3.6 Luento: Komponenttien välinen vuorovaikutus

3.7 Luento: Hajuja ja sääntöjä

3.8 Luento: Arkkitehtuurin dokumentointi

  • Kruchtenin 4+1

3.9 Luento: Tuoterungot, kehykset ja muunneltavuus

4 Demot

  1. Lämmitellään Tampesterin ekoilla demoilla: http://www.cs.tut.fi/~ohar/harjoitukset/harkat2012/HT1.pdf
  2. Kertaa läpi arkkitehtuurityylit, ja mieti pari esimerkkiä ohjelmista, jotka olisivat tehty jollain tai joillain tyyleillä. Tyyli vapaa, samoin esitysmuoto, eli voit esittää vastauksen UML:llä, laatikoilla ja nuolilla, ohjelmana, …
  3. Valitkaa kaksi mallia, toinen, joka näyttäisi hyödylliseltä, ja toinen, jota olette jossain käyttäneet (jos tällaista ei ole, sitten kaksi kiinnostavaa). Katsellaan löytöjä demoissa.
  4. Toteuttakaa mahdollisimman monta komponenttien vuorovaikutuksien kalvojen "vuorovaikutusesimerkkiä". Asynkronisuutta ja rinnakkaisuutta, moniajoa ei vaadita. Toteutustapa ja tyyli vapaa, kuten tehtävässä 2.
  5. Toteuta kokonaan tai osittain kalvojen "Viestipohjaisen yritystietojärjestelmän arkkitehtuuri" mukainen ohjelmisto. Oikoa saa, samanaikaisuutta ja rinnakkaisuutta ei vaadita. Toteutustapa ja tyyli vapaa, kuten tehtävissä 4. ja 2. Yhteistyö on sallittua, jopa suotavaa.

5 Linkkejä meille ja maailmalle

Tekijä: Itkonen Jonne

Created: 2013-10-18 Fri 09:05

Emacs 24.3.50.3 (Org mode 8.0.3)

Validate