Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1
Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen yliopisto. 2
Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien kuvaamisen hallitseminen Arkkitehtuurien toteutusmekanismien tunteminen Ohjelmistojen standardiarkkitehtuurien tunteminen Tuoterunko-ohjelmistojen luonteen ymmärtäminen, valmiudet niiden rakentamiseen ja käyttämiseen Arkkitehtuurien arvioinnin ymmärtäminen Täydentää yleistä tietämystä ohjelmistokehitysprosessista arkkitehtuurisuunnittelun osalta Kurssin kotisivusto (TTY): http://www.cs.tut.fi/kurssit/ohj-3200/ 3
Kurssikirja Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Tenttiin tarvittava osaaminen: - aihepiirit: kirja - aihepiirien sisältö: kirja + luennot (kalvot) - soveltaminen: viikkoharjoitukset Tentti on mahdollista suorittaa ilman kirjaa, jos perehtyy hyvin materiaaliin luennoilla ja harjoituksissa. 4
Esitietovaatimukset Ymmärrys ohjelmistokehitysprosessista ja sen vaiheista (TTY: Ohjelmistotuotannon menetelmät) UML:n perusteet Perusosaaminen olio-ohjelmoinnista Java (voi opetella kurssin ohessa) Kurssin suoritus Aktiivinen osallistuminen viikkoharjoituksiin (0-6p) (vähintään 30% tehtävistä) Hyväksytty harjoitustyön suunnitelma (0-2p) Hyväksytty harjoitustyö (0-8p) Lopputentti (0-30p, min 15p) ti 18.11 klo 9-12 Läpipääsyraja: noin 23p 5
Viikkoharjoitukset alkaa ensi viikolla (37), viimeiset viikolla 46 (9 kertaa) viikolla 38 pidetään tietokoneluokassa (TTY) tehtävät edellisen viikon maanantaina kurssin sivulla osa tehtävistä kurssikirjasta kerralla tyypillisesti 4-5 tehtävää TTY:llä käytetään IDLE:ä TTY:llä yksi viikottainen päivystys ti 13-15 (tietokoneluokka) minimi: 30% suoritettu maksimipisteet: 90% olennainen osa kurssin suoritusta! kannattaa tehdä heti alusta alkaen keskustelu! 6
Harjoitustyö Tehdään 3 opiskelijan ryhmissä Kaikki ryhmän osallistujat saavat saman pistemäärän harjoitustyöstä Työn aihe: Tuotantoprosessin simulointijärjestelmä Ohjeistettu kehitysympäristö: Eclipse + JMS (tarkastetaan tässä ympäristössä) Työ selostetaan luennolla ti 16.9 Viikoilla 41-42 välipalautuspalaverit (viim. pe 17.10) Välipalautusdokumentti jätettävä viimeistään kaksi päivää ennen palaveria Lopullinen työn palautus pe 5.12 Tehtävänannosta, ohjauksesta ja tarkastuksesta vastaavat TTY:llä Tuomo Talvitie (tuomo.talvitie@tut.fi) ja Mikko Vartiala (mikko.vartiala@tut.fi) Harjoitustyön suoritus Yksityiskohdat tulevat viikolla 37 kurssin sivuille 7
Kurssin sisält ltö Johdanto 2.9 Arkkitehtuurien kuvaus 4.9 Komponentit ja rajapinnat 9.9 Komponenttien vuorovaikutus 11.9 Harjoitustyön esittely 16.9 Suunnittelumallit 18.9 Arkkitehtuurityylit 23.9 Arkkitehtuurityylit 25.9 Arkkitehtuurien arviointi 30.9 Arkkitehtuurien arviointi 2.10 Tauko Sulautettujen järjestelmien arkkitehtuurit 14.10 Tuoterunkoarkkitehtuurit 21.10 Variaation hallinta 28.10 Kehysohjelmistot 4.11 Vierailuluento 11.11 Tentti 18.11 8
Kirjallisuutta Kurssikirja: Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Oheismateriaalia: 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. IEEE Standard 1471-2000: Recommended Practice for Architectural Description. 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. 9