Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1
Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun 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ää OTM-kurssia arkkitehtuurisuunnittelun osalta (TTY) Kurssin kotisivusto: http://www.cs.tut.fi/kurssit/ohj-3200/ 3
Kurssikirja Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Tenttiin tarvittavat aihepiirit: kirja Tenttiin tarvittava osaaminen: kirja + kalvot + viikkoharjoitukset 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 20.11 klo 10-13 Läpipääsyraja: noin 23p 5
Viikkoharjoitukset alkaa ensi viikolla (37), viimeiset viikolla 46 (9 kertaa) tehtävät edellisen viikon maanantaina kurssin sivulla osa tehtävistä kurssikirjasta kerralla tyypillisesti 4-5 tehtävää TTY:llä käytetään IDLE:ä minimi: 30% suoritettu maksimipisteet: 90% keskustelu! 6
Harjoitustyö Tehdään 3 opiskelijan ryhmissä Kaikki ryhmän osallistujat saavat saman pistemäärän harjoitustyöstä Työn aihe: Älykoti Ohjeistettu kehitysympäristö: Eclipse (tarkastetaan tässä ympäristössä) Työ selostetaan luennolla ti 18.9 Tehtävänannosta, ohjauksesta ja tarkastuksesta vastaavat TTY:llä Heikki Suontausta (heikki.suontausta@tut.fi) ja Mikko Vartiala (mikko.vartiala@tut.fi) Harjoitustyön suoritus Yksityiskohdat tulevat viikolla 37 kurssin sivuille 7
Kurssin sisält ltö Johdanto 4.9 Arkkitehtuurien kuvaus 6.9 Komponentit ja rajapinnat 11.9 Komponenttien riippuvuudet ja niiden hallinta 13.9 Harjoitustyön esittely 18.9 Suunnittelumallit 20.9 Arkkitehtuurityylit 25.9 Arkkitehtuurityylit 27.9 Arkkitehtuurien arviointi 2.10 Arkkitehtuurien arviointi 4.10 Tauko Vierailuluento 16.10 Tuoterunkoarkkitehtuurit 23.10 Variaation hallinta 30.10 Kehysohjelmistot 6.11 Kehysohjelmistot 13.11 Tentti 20.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 1998. 9