Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies
Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto
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/
Kurssia tukeva kirja Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Tenttiin tarvittava osaaminen: - teoria : luentokalvot, videot (+ kirja) - soveltaminen: viikkoharjoitukset Tentti on mahdollista suorittaa ilman kirjaa, jos perehtyy luentomateriaaliin (kalvot) ja käy viikkoharjoituksissa.
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 7.12 klo 9-12 Läpipääsyraja: noin 23p Huom: minimipisteet kaikista ei riitä läpimenoon!
Viikkoharjoitukset alkaa ensi viikolla (37), viimeiset viikolla 48 (10+ATAM kertaa) ei taukoviikolla 42, ei viikolla 46 (ATAM) 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!
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 21.9 (viikko 38) Viikolla 42 (18.10 alkava) välitarkistus (oman ratkaisun esittely) Arkkitehtuurin suunnitteludokumentti deadline ma 8.11 (viikko 45) Arviointidokumentti deadline ma 29.11 (viikko 48) Päivitetty arkkitehtuuridokumentti ma 13.12 (viikko 50) Tehtävänannosta, ohjauksesta ja tarkastuksesta vastaavat TTY:llä pääasiassa Tuomo Talvitie (tuomo.talvitie@tut.fi) ja Mikko Vartiala (mikko.vartiala@tut.fi) Harjoitustyön suoritus Yksityiskohdat tulevat viimeistään viikolla 38 kurssin sivuille
Kurssin sisältö Muuta viikolla Johdanto 7.9 Arkkitehtuurien kuvaus 9.9 Komponentit ja rajapinnat 14.9 1. vh Komponenttien vuorovaikutus 16.9 Harjoitustyön esittely, Suunnittelumallit 21.9 2.vh Arkkitehtuurityylit 23.9 Arkkitehtuurityylit 28.9 3. vh Viestipohjaisten yritystietojärjestelmien arkkitehtuurit 30.9 Sulautettujen ohjausjärjestelmien arkkitehtuurit 5.10 4. vh Vierailuluento 1: Pilvijärjestelmien arkkitehtuurit 7.10 Vierailuluento 2: Porakonealustan ohjelmistoarkkitehtuuri 12.10 5.vh Arkkitehtuurien arviointi 14.10 suunnittelu vh ohjeet Tauko välitarkastus Arkkitehtuurien arviointi 26.10 suunnittelu vh (6.) Avoimen lähdekoodin arkkitehtuurit 2.11 ATAM vh (7) Tuoterunkoarkkitehtuurit 9.11 8. vh, ht. dokumentti 8.11 Kehysohjelmistot 16.11 ATAM arviointisessiot Ohjelmistoarkkitehtuurien tutkimus 23.11 9. vh Avoin 30.11 10. vh, arviointidok 29.11 Tentti 7.12 Lopull. dokumentti 13.12
Kirjallisuutta Kurssia tukeva kirja: 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 Language for Distributed Machine Control Systems. Department of Software Systems, Tampere University of Technology, Report 9/2010.