Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1
Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2
Tiedonvälitys kurssilla Kurssin kotisivut (TTY): http://www.cs.tut.fi/~ohar/ Tiedotus, kysymyksien esittäminen, niihin vastaaminen: Slack http://ohar2016.slack.com/ Luennoilla: http://ohar2016.slack.com/luennot Slackin käyttö, selain tai sovellukset https://slack.com/downloads, IRC https://ohar2016.slack.com/account/gateways) Google Forms (linkit kurssin myös kurssin kotisivuilla, jatkossa vain Slackin #luennot kanavalla) Harjoitustyön tekeminen, oman ryhmän perustaminen Slackiin kannattaa Adobe Connect, urli näkyy videolta
Kurssin tavoitteet Arkkitehtuurin roolin ymmärtäminen Arkkitehtuurien kuvaamisen hallitseminen Arkkitehtuurityylien ja suunnittelumallien 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 Hyvä arkkitehtuuri vaatii: sovellusaluetuntemus, yleisien toimivien ratkaisujen tunteminen (ja potentiaalisten ongelmakohtien tunteminen), vaatimusten ymmärtäminen 13.1.2016 4
Kurssiin liittyviä kirjoja Koskimies K., Mikkonen T.: Ohjelmistoarkkitehtuurit. Talentum 2005. Pattern-juttuihin toimiva itseopiskeluteos: Pattern-Oriented Software Architecture For Dummies Fairbanks, George: Just Enough Software Architecture - A Risk-Driven Approach http://rhinoresearch.com/book Riskiosuus-kirjasta pitkälti skipattavissa kurssin näkökulmasta Software Architecture A Comprehensive Framework and Guide for Practitioners http://link.springer.com/book/10.1007%2f978-3-642-19736-9 Tenttiin tarvittava osaaminen: teoria : luentokalvot, videot, lähdemateriaali, linkit luentokalvoissa jne. http://www.cs.tut.fi/~ohar/kurssikirjallisuus.shtml soveltaminen: viikkoharjoitukset Tentti on mahdollista suorittaa ilman kirjallisuutta, jos perehtyy luentomateriaaliin (kalvot) ja käy viikkoharjoituksissa. 13.1.2016 5
Lisää kirjallisuutta Kirjoja yleisemmin: Bosch J.: Design & Use of Software Architectures - Adopting and Evolving a Product-Line Approach. Addison-Wesley 2000. Bass L., Clements P., Kazman R.: Software Architecture in Practice. Addison-Wesley 2003. Clements P. et al.: Documenting Software Architectures. Addison-Wesley 2003. Clements P., Kazman R., Klein M.: Evaluating Software Architectures. Addison-Wesley 2002. Yleistä arkkitehtuuri- ja arkkitehtuurinkuvausasiaa Viewpoints and Views in Software Architecture: http://www.viewpoints-and-perspectives.info/vpandp/wpcontent/themes/secondedition/doc/vpandv_whitepaper.pdf Suunnittelumalleja patterns.cs.tut.fi: Tietotekniikan laitoksen tutkimusta aiheesta (koneenohjausta, automaatiojärjestelmiä jne.) Designing Distributed Control Systems: A Pattern Language Approach Veli-Pekka Eloranta, Johannes Koskinen, Marko Leppanen, Ville Reijonen a Wileyn sivut kirjalle Suunnittelumallien puolivirallinen kotisivu (suunnittelumalliluettelot, pattern-kielet ym.) LegalityPatterns.pdf Open Source Legality Patterns: Architectural Design Decisions Motivated by Legal Concerns PLoP Conference Proceedings: 2007, 2008, 2009. EuroPLoP Conference Proceedings: PLoP-sivut Viking PLoP (http://www.vikingplop.org/) Buschmann et al.: A System of Patterns - Pattern-Oriented Software Architecture. Wiley 1996. Douglass B.: Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Addison-Wesley 2003. Gamma E. et al.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley 1995. Hohpe G., Woolf B.: Enterprise Integration Patterns. Addison-Wesley 2004. Allan Kelly: Business Patterns for Software Developers 2012 (ebrary/tut-kirjasto), kaikkea markkinoinnista jakeluun 13.1.2016 6
Esitietovaatimukset Jonkinlainen käsitys ohjelmistokehitysprosessista ja sen vaiheista (TTY: Johdatus ohjelmistotuotantoon) Koodaustaustaa, luokat, rajapinnat, perintä, moduulijaot jne. UML:n perusteita, kaavio vs. koodi perusajatus Kurssin suoritus Pisterajat TTY:llä: Viikkoharjoitukset 0-10, läpipääsyraja 0 pistettä Harjoitustyö 0-15, läpipääsyraja 3 pistettä Vierailuluennot 0-5, läpipääsyraja 2 pistettä Tentti 0-20, läpipääsyraja 9 pistettä Yhteensä 0-50, läpipääsyraja 14 pistettä http://www.cs.tut.fi/~ohar/arvostelu/ 13.1.2016 7
Ensimmäinen tentti Ensimmäisen tentin ajankohta maanantai 9.5.2015 klo 13-, paikka (TTY:llä ja varmasti muuallakin) vielä hakusessa 13.1.2016 8
Viikkoharjoitukset Alkavat ensi viikolla (18.1.-) Ilmoittautuminen POPissa TTY:llä, spämmiä kun aukeaa/tilavaraukset varmistuvat (tod.näk. Ti, Ke klo 14:15) Ei tenttiviikolla (29.2.-4.3.2016), ei arkkitehtuuriarviotien kanssa samaan aikaan Jakautuu kotitehtäviin ja harjoituksissa tehtäviin tehtäviin (usein ryhmissä) puoli pistettä molemmista Kotitehtävät viimeistään edellisen viikon torstaina kurssin sivulla/slackissä Palauttaminen Harjoitukset olennainen osa kurssin suoritusta! Kannattaa tehdä heti alusta alkaen Tukee harjoitustyötä Keskustelut harjoituksissa olennaisia 13.1.2016 9
Viikkoharjoitukset Jos viikkoharjoituksiin ei pääse, mutta haluaa kuitenkin viikkoharjoituspisteitä, tarjolla on mahdollisuus tehdä rästitehtäviä joilla voi korvata puuttuvia viikkoharjoitussuorituksia 13.1.2016 10
Harjoitustyö Tehdään 3-5 opiskelijan ryhmissä Kaikki ryhmän osallistujat saavat saman pistemäärän harjoitustyöstä (mahdollisuus pisteiden jakoon epätasaisesti?) Työn aihe: arkkitehtuurin suunnittelu, dokumentointi ja arviointi Arkkitehtuuriin liittyy aina aihealuetietämys ja tekniikat, joten työhön kuuluu myös perehtymistä näihin (esim. toissa vuoden työnä taudin ennustamiseen liittynyt sairaalajärjestelmä-mukaelma alan määräyksiä/lainsäädäntöä, palvelimet, salaustekniikat, käyttäjien autentikoinnit) Vaiheita: Välipalautus (oman ratkaisun esittely) Arkkitehtuurin suunnitteludokumentti Arkkitehtuurin arviointi Arviointidokumentti Päivitetty arkkitehtuuridokumentti Yksityiskohdat tulevat 18.1.-- viikolla kurssin sivuille. 13.1.2016 11
Harjoitustyö, alustava aikataulu Työn esittely 27.1. Ryhmien muodostamisen deadline 22.1. klo 12 Välipalautus (oman ratkaisun esittely) ~20.2. Arkkitehtuurin suunnitteludokumentin palautus ~1.3. Korjauksia palautteen perusteella, parannellun version palautus arvioijaporukalle Arkkitehtuurin arviointi ~25.3.-- Arviointidokumentti: viimeistään viikko arviointitilaisuuden jälkeen Päivitetty arkkitehtuuridokumentti: 8.5. 13.1.2016 12
Luennot ja luentoaikataulu 13.1. Johdanto, käytännön jutut 15.1. Johdanto jatkuu 20.1. Arkkitehtuurin kuvaus, erilaiset kaaviot jne. kuvauksessa Suunnittelumalleista, Komponenttien vuorovaikutus komponentit ja rajapinnat, arkkitehtuurityylit Harjoitustyön tehtävänanto, jatkoa Ketterä arkkitehtuuri Arkkitehtuurien arviointi (ATAM DCAR, jne. arkkitehtuuriarviointimenetelmät) Arkkitehtuuritietämys, laatu ja arkkitehtuuri (sisäinen, ulkoinen) Viestipohjaisten yritystietojärjestelmien arkkitehtuurit Muunneltavuuden hallinta Referenssiarkkitehtuurit, arkkitehtuurit ja eri ympäristöt/toteutuskalut Ekosysteemit (miten vaikuttavat toteutustyöhön tietyssä ekosysteemissä/entä ekosysteemin suunnittelu?) Tuoterunkoarkkitehtuurit, Kehysohjelmistot Ohjelmistojen ylläpitoa ja arkkitehtuurien refaktorointia Kertaus, mitä tenttiin Ensimmäinen vierailuluento perjantaina 22.1. klo 14:15- Janne Viitala, Sandvik Potentiaalisia vierailuluentojen aihealueita: monikielijärjestelmät/ funktionaalisuus, avoin data, liikkuvat koneet, mikropalveluarkkitehtuurit. 13.1.2016 13
Kysyttävää?
Jokaisen yliopiston omat jutut/käytännöt
Käytännönjuttuja TTY:llä Henkilökunta: Samuel Lahtinen & Sampo Suonsyrjä Sähköposti: ohar@cs.tut.fi Yleisesti kaikki viestintä, Slack Harjoitustyöhön rekisteröityminen Harjoitustyön seuranhaku: https://ohar2016.slack.com/messages/harkkatyoseuranhaku/ 13.1.2016 16