Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 2
Kurssin tavoitteet Arkkitehtuurin roolin ymmärtäminen Arkkitehtuurien kuvaamisen hallitseminen Arkkitehtuurien toteutusmekanismien tunteminen Arkkitehtuurien standardiratkaisujen tunteminen Tuoterunko-ohjelmistojen luonteen ymmärtäminen, valmiudet niiden rakentamiseen ja käyttämiseen Arkkitehtuurien arvioinnin ymmärtäminen ja valmiudet arkkitehtuurin käytännön arviointiin Täydentää yleistä tietämystä ohjelmistokehitysprosessista arkkitehtuurisuunnittelun osalta Kurssin kotisivusto (TTY): http://www.cs.tut.fi/kurssit/ohj-3200/ Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 3
Kurssikirja Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Tenttiin tarvittava osaaminen: - (kirja +) luennot (kalvot) - soveltaminen: viikkoharjoitukset Tentti on mahdollista suorittaa ilman kirjaa, jos perehtyy hyvin luentomateriaaliin (kalvot) ja käy viikkoharjoituksissa. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 4
Esitietovaatimukset Ymmärrys ohjelmistokehitysprosessista ja sen vaiheista (TTY: Ohjelmistotuotannon menetelmät) UML:n perusteet Perusosaaminen olio-ohjelmoinnista Kurssin suoritus Aktiivinen osallistuminen viikkoharjoituksiin (1-6p) (vähintään 40% tehtävistä) Hyväksytty harjoitustyö (0-10p) Lopputentti (0-30p, min 15p) ti 1.12 klo 9-12 Läpipääsyraja: noin 23p Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 5
Viikkoharjoitukset alkaa ensi viikolla (38), viimeiset viikolla 48 (9 kertaa) ei taukoviikolla 43, ei viikolla 46 tehtävät edellisen viikon maanantaina kurssin sivulla kerralla tyypillisesti 5 tehtävää TTY:llä käytetään IDLE:ä minimi: 40% suoritettu maksimipisteet: 90% olennainen osa kurssin suoritusta! kannattaa tehdä heti alusta alkaen keskustelu! Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 6
Harjoitustyö Tehdään 3 opiskelijan ryhmissä Kaikki ryhmän osallistujat saavat saman pistemäärän harjoitustyöstä Työn aihe: arkkitehtuurin suunnittelu, dokumentointi ja arviointi Työ selostetaan luennolla ti 22.9 (viikko 39) Viikolla 43 (19.10 alkava) välitarkistus (oman ratkaisun esittely) Arkkitehtuurin suunnitteludokumentti deadline ma 2.11 (viikko 45) Arviointidokumentti deadline ma 7.12 (viikko 50) Päivitetty arkkitehtuuridokumentti pe 18.12 (viikko 51) Tehtävänannosta, ohjauksesta ja tarkastuksesta vastaavat TTY:llä Samuel Lahtinen (samuel.lahtinen@tut.fi ) ja Mikko Vartiala (mikko.vartiala@tut.fi) Harjoitustyön suoritus Yksityiskohdat tulevat viikolla 38 kurssin sivuille Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 7
Kurssin sisältö Johdanto 8.9 Arkkitehtuurien kuvaus 10.9 Komponentit ja rajapinnat 15.9 Komponenttien vuorovaikutus 17.9 Harjoitustyön esittely, Suunnittelumallit 22.9 Arkkitehtuurityylit 24.9 Arkkitehtuurityylit 29.9 Arkkitehtuurityylit 1.10 Viestipohjaisten yritystietojärjestelmien arkkitehtuurit, Sulautettujen järjestelmien arkkitehtuurit 6.10 Vierailuluento 1: Sulautettu järjestelmä 8.10 Vierailuluento 2: Tiedonhallintajärjestelmä 13.10 Arkkitehtuurien arviointi 15.10 Tauko Arkkitehtuurien arviointi 27.10 Tuoterunkoarkkitehtuurit 3.11 Variaation hallinta 10.11 Kehysohjelmistot 17.11 Ohjelmistoarkkitehtuurien tutkimus 24.11 Tentti 1.12 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 8
Kirjallisuutta Kurssikirja: Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Oheiskirjallisuutta: Gamma E. et al.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley 1995. Buschmann et al.: A System of Patterns - Pattern-Oriented Software Architecture. Wiley 1996. Hohpe G., Woolf B.: Enterprise Integration Patterns. Addison-Wesley 2004. Clements P., Northrop L.M.: Software Product Lines : Practices and Patterns. Addison-Wesley 2002. Clements P., Kazman R., Klein M.: Evaluating Software Architectures. Addison-Wesley 2002. Clements P. et al.: Documenting Software Architectures. Addison-Wesley 2003. Bosch J.: Design and Use of Software Architectures. Addison-Wesley 2000. Bass L., Clements P., Kazman R.: Software Architecture in Practice. Addison-Wesley 2003. Eloranta et al.: A Pattern Set for Embedded Control Software Architecture. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 9