ohjelmistoarkkitehtuurit, tty vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · •...
TRANSCRIPT
![Page 1: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/1.jpg)
Ohjelmistoarkkitehtuurit, TTY
Vierailuluento
Mika Siikarla, 29.1.2014
![Page 2: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/2.jpg)
Teesi
![Page 3: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/3.jpg)
ARKKITEHTUURI
Arkkitehtuuri on todella tärkeä osa ohjelmistoa.
Arkkitehtuurisuunnittelu pitää tehdä perustellusti ja huolellisesti.
Joskus ei ole riittävästi tietoa päätöksen tekemiseksi.
Silloin ehkä kannattaa ensin tehdä toiminnallisuus ja vasta sitten suunnitella se osa arkkitehtuuria.
Ei oikeuta ”unohtamaan” suunnitella arkkitehtuuria!
SUUNNITELLAAN PERUSTELLUSTI(vain?)
![Page 4: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/4.jpg)
ASIAKKAAN TAVOITTEET
Ettei ensimmäinen pääsääntö unohtuisi...
TÄRKEINTÄ on auttaa asiakasta saavuttamaan tavoitteensa.
Ohjelmisto (ja sen arkkitehtuuri) on vain tapa, ei itsetarkoitus.
Arkkitehtuuripäätös, ominaisuus, tms., joka ei johdu tavoitteista on perusteeton.
OVAT ARKKITEHTUURIN TAVOITTEITA
![Page 5: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/5.jpg)
Jotain IHAN muuta...
Tamperelainen ohjelmistotalo
![Page 6: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/6.jpg)
![Page 7: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/7.jpg)
Bitwise pähkinänkuoressa
![Page 8: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/8.jpg)
• Sopivan kokoinen (51 henkeä)
• Kannattavan kasvava, AAA
• Koko tuplaantui laman aikana
• Vuonna 2013 palkattu 8 henkeä, (12 hlö 2012)
• Hyvässä paikassa (Viinikan ympyrässä)
![Page 9: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/9.jpg)
Bitwise valittiin Suomen parhaaksi työpaikaksi 2012
![Page 10: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/10.jpg)
Bitwiserit hoitavat projektit, joihin kukaan muu pysty
• haasteita• mielenkiintoisia pulmia• vaihtelevia tehtäviä• jatkuvaa uuden oppimista• yhdessä tekemistä
onnistumisia sankaritarinoita tyytyväiset asiakkaat
![Page 11: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/11.jpg)
• Kaikki on helppoa (=lean)
• Ketterät menetelmät
• Markkinoiden parhaat välineet ja työkalut
• Jokaisella mahdollisuus vaikuttaa
• Kaikki mukana asiakasrajapinnassa
• Projektikierto
• Mukana koko elinkaaressa
• Tiimi istuu samassa huoneessa
• Mentori valmentaa
• Illaksi kotiin
![Page 12: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/12.jpg)
» .NET, C#, C++
» JavaEE, Spring 3, EJB3, GWT, JSF2, PrimeFaces, JPA2, JTA, JCA, JMS, OSGi, Play 2.0...
» sulautetut järjestelmät, C
» Python, Django
» JavaScript, node.js, CoffeeScript
» HTML5, CSS3, LESS, Jquery
» PHP, Perl, TCL
» Web Services, REST, SOAP, CORBA, Remoting, RMI
» SOA, ESB
» PostgreSQL, Oracle, SQLServer, MySQL, MongoDB, CouchDB, light-tietokannat, ORM-kehykset
» WPF, Qt, Java FX2, Swing, AWT, Windows Forms...
» Linux, Windows, Unix, Solaris, reaaliaikaytimet
» Scrum, Kanban, CI, TDD, BDD
» Git, SVN, Jenkins, Bamboo, JIRA, Trac
Mm. näillä teknologioilla
![Page 13: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/13.jpg)
![Page 14: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/14.jpg)
![Page 15: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/15.jpg)
![Page 16: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/16.jpg)
![Page 17: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/17.jpg)
Bitwise etsii ihmisiä,
joilla on
![Page 18: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/18.jpg)
• Halu oppia
• Kyky oppia
• Rohkeutta hypätä uuteen
• Maalaisjärkeä
• Ammattiylpeyttä
• Input ja output
• Tiimipelitaitoja
• Pohojalaanen tekemisen meininki
• Rohkeutta olla oma itsensä
![Page 19: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/19.jpg)
Bitwise houkuttelee opiskelijaa
![Page 20: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/20.jpg)
Kukaan ei ole guru syntyessään
– meillä voit kasvaa sellaiseksi
![Page 21: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/21.jpg)
Tarjolla
• Osa-aikaisia töitä
• Kesätöitä
• Lopputyöaiheita
Bonuksena palkallinen päivä viikossa kirjoittamiseen
![Page 22: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/22.jpg)
Hyvät kaverit vakinaistetaan, poikkeuksetta
![Page 24: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/24.jpg)
Vastuuvapauslauseke
![Page 25: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/25.jpg)
MIELIPIDE
Omia henkilökohtaisia mielipiteitäni.
Tietysti ovat ainoita oikeita!
Ehkä joku muukin on joskus ollut samaa mieltä joistakin kohdista.
”These are my principles. If you don’t like them I have others.”
- Groucho Marx (ilmeisesti ei)
Aivot päälle.
RIIPPUU VASTAAJASTA JA KYSYJÄSTÄ(ja ehkä aiheestakin)
![Page 26: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/26.jpg)
Arkkitehtuuri
![Page 27: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/27.jpg)
ARKKITEHTUURI
Suunnittelijan näkökulmasta joukko suunnittelua rajoittavia sääntöjä.
Se mitä suunnittelija mielestään saa tehdä.
Se mitä arkkitehdin mielestä suunnittelija saa tehdä.
Subjektiivisia! Ei ole olemassa ”todellista” arkkitehtuuria.
Ei RTFC, ei takaisinmallinnettavissa.
ON (ja vaatii) KOMMUNIKOINTIA(dokumentointi, keskustelu, … ?)
![Page 28: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/28.jpg)
ARKKITEHTUURI
Teknisessä mielessä koodista voidaan löytää komponentteja ja niiden välisiä suhteita, mutta mitkä ovat säännöt?
Vrt. pelinappulat ja -lauta ilman pelin sääntöjä.
Tai ainakin pelinappuloilta näyttäviä osia...
ON (ja vaatii) KOMMUNIKOINTIA
![Page 29: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/29.jpg)
Arkkitehti
![Page 30: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/30.jpg)
![Page 31: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/31.jpg)
ARKKITEHTI
En ole ammatiltani arkkitehti. Minun ammattini on ohjelmistosuunnittelija.
Bitwisellä ei ole töissä ketään, jonka ammatti on arkkitehti.
EI ASU TÄÄLLÄ
![Page 32: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/32.jpg)
ARKKITEHTI
Hän, joka tekee arkkitehtuurin (osan)...
sillä hetkellä, kun hän tekee {}...
siltä osin kuin hänen tekemisensä liittyy {}.
Rooli, tietyssä suhteessa ja tietyssä kontekstissa.
Kuten kuuntelija, puhuja, veli, opettaja, oppilas, ajaja, ...
ON ARKKITEHTI TOIMIESSAAN ARKKITEHTINA(da Vinci)
![Page 33: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/33.jpg)
ARKKITEHTI
ArchitectAlsoImplementshttp://orgpatterns.wikispaces.com/ArchitectAlsoImplements
”The Architect [...] should himself or herself write code.”
”[...] it is crucial that the architect have a strong feel for the application needs. It is by understanding recurring application needs that the architect can build long-term robust frameworks. If architects work only on infrastructure […] there will be a disconnect between the infrastructure (framework, middleware) and the application.”
OSS: Eat your own dog food.
TOIMII MYÖS TOTEUTTAJANA
![Page 34: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/34.jpg)
Vaatimukset → Arkkitehtuuri
![Page 35: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/35.jpg)
VAATIMUKSET
PERUSTELEVAT ARKKITEHTUURIN
(Erityisesti ei-toiminnalliset) vaatimukset rajoittavat arkkitehtuuria.
Arkkitehtuuripäätösten perustelut vaatimuksista.
Vaatimukset
Arkkitehtuuri
toteuttaa
![Page 36: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/36.jpg)
VAATIMUKSET
ELÄVÄT(elääkö arkkitehtuuri?)
Vaatimusten muutosten pitäisi näkyä arkkitehtuurin muutoksina.
Ehkä otettu huomioon?
Ehkä vanha kelpaa?
Ehkä kohta palataan takaisin?
Massa: uutta vai parempaa?
Vaatimukset
Arkkitehtuuri
toteuttaa
Vaatimukset
Arkkitehtuuri
toteuttaa
Vaatimukset
Arkkitehtuuri
toteuttaa
![Page 37: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/37.jpg)
VAATIMUKSET
EIVÄT AINA TIEDOSSA
Jos Kun vaatimuksia ei tunneta kokonaisuudessaan, onko arkkitehtuurille kokonaisuudessaan perusteita?
Esim. suorituskyky, suoritustapa.
Lukitaanko vastaus?
?a??im?k?e?
Ar??it?h??uri
toteuttaa??
![Page 38: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/38.jpg)
VAATIMUSTEN KERUU
VOI JATKUA KEHITYKSEN AJAN
Yksi tapa toimia:
Kiinitetään vain asiat, joille on perusteet.
Kerätään lisää/muuttuneita vaatimuksia käyttökokoemuksista.
Kiinnitetään lisää asioita.
Ohjelmisto on osin prototyyppi.
?a??im?k?e?
Ar??it?h??uri
toteuttaa??
![Page 39: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/39.jpg)
Kurkistus oikeaan maailmaan
![Page 40: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/40.jpg)
OHJELMISTO
TYHJIÖSSÄ
J
Asiakas
![Page 41: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/41.jpg)
OHJELMISTO
YMPÄRISTÖSSÄÄN(muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 42: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/42.jpg)
OHJELMISTO
YMPÄRISTÖSSÄÄN(laitteiden ja muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 43: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/43.jpg)
OHJELMISTO
YMPÄRISTÖSSÄÄN(prosessien, laitteiden ja muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 44: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/44.jpg)
OHJELMISTO
YMPÄRISTÖSSÄÄN(integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 45: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/45.jpg)
Ekskursio ympäristöön
![Page 46: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/46.jpg)
TOIMINTAYMPÄRISTÖ
Ohjelmistoja: ohjaus, turvallisuus, tarkkailu
Koneita: autom., ajettuja, etäohjattuja, autom.+etä
Tilaa: 3D, jaettua, neuvoteltua
Esineitä: siirrettäviä
Esteitä: pysyviä, tilapäisiä
Rajoitteita: kulku, käyttö; loogisia, osittaisia
Infraa: antureita, kytkimiä, verkkoja
Ihmisiä
Suurin osa operaattorin hallinnassa, pieni osa ei...
ON MONIMUOTOINEN
![Page 47: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/47.jpg)
MITÄ EI VAADITA
Ei (suoranaista) (yksin)vastuuta ihmisten hengestä tai terveydestä.
Ei kovia reaaliaikavaatimuksia.
Suurin osa toiminnallisuudesta ei vaadi resursseihin nähden intensiivistä laskentaa, muistia tai tallennusta.
ON OSA VAATIMUKSIA(ja siksi vaikuttaa arkkitehtuurin prioriteetteihin)
![Page 48: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/48.jpg)
Backtrack palluroihin
![Page 49: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/49.jpg)
OperaattoriOperaattoriOperaattoriOperaattori
OHJELMISTO
MONESSA YMPÄRISTÖSSÄ
Toimittaja
![Page 50: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/50.jpg)
OHJELMISTO
YHDESSÄ YMPÄRISTÖSSÄ(integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 51: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/51.jpg)
OHJELMISTO
TOISESSA YMPÄRISTÖSSÄ(integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 52: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/52.jpg)
? ? ? ?
? ? ? ? ?? ? ?
?
OHJELMISTO
TULEVASSA YMPÄRISTÖSSÄ(integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)
J +
Toimittaja Operaattori
![Page 53: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/53.jpg)
TOIMINTAYMPÄRISTÖ
Toimitukset eri laajuisia: toimittajan ja operaattorin järjestelmien osuus vaihtelee
Toimitukset eri vaiheissa: määrittely, osatoimitus, lopputoimitus, ylläpito.
Tuotteet eri vaiheissa.
Opitaan ympäristöstä lisää; vaatimukset muuttuvat.
Simulaatio kokeilu aito ympäristö↔ ↔
VAIHTELEE
![Page 54: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/54.jpg)
MONTA TUOTETTA
Prototyyppi
Kypsä tuote ==> arkkitehtuuri??
Tuoterunko
Suuri kannuste yhtenäistää.
MONTAKO ARKKITEHTUURIA?
![Page 55: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/55.jpg)
Tekninen ympäristö
![Page 56: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/56.jpg)
KOMPONENTTIEN UUDELLEENKÄYTTÖ
Ympäristö
J+K
J
J'
Bitwise
~200 kloc C#
![Page 57: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/57.jpg)
VAATIMUSTEN KYPSYYS
Prototyyppi: vaatimukset ovat arvauksia, arkkitehtuuri on arvaus
Kypsä tuote: vaatimukset (melko hyvin) tiedossa, arkkitehtuuri (melko) vakaa
Tuoterunko: vaatimukset olemassaolevista ja ennakoiduista tuotteista
RAJOITTAA ARKKITEHTUURIN KYPSYYTTÄ
![Page 58: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/58.jpg)
VAATIMUSTEN KYPSYYS
Prototyyppi:
arvaus (kehitys kokeilu oppiminen)+ OK→ → → →
Syklin nopeus tärkein ei-toiminnallinen vaatimus!
Ymmärrettävyys ja muunneltavuus erittäin tärkeitä.
Muilta osin arkkitehtuuriin panostaminen menee hukkaan.
Kypsä tuote:
Uudelleenkäytön mahdollistamiseksi olisi kiva olla lähellä muiden tuotteiden arkkitehtuuria.
MÄÄRÄÄ ARKKITEHTUURIN KYPSYYTTÄ
![Page 59: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/59.jpg)
ASIAKKAAN TAVOITTEET
Uusi ominaisuus, optimointi, laite tai palvelu:
Nopea kehityssykli. Fail fast. Feasibility study. Demo. One-off.
Rajapintakehitys. Simulaattorikehitys. Smoke tests.
Toteutus tarvitaan oikeasti vasta myöhemmin (1v? 2v?)
Kokeillaan tuotteessa, sitten tuetaan tuoterungossa.
Järjestelmätason integraatio >> yksittäinen ohjelmisto
Arkkitehtuuri menisi ”hukkaan”, viivästäisi kokonaisuutta tai ei ole tarpeen pitkään aikaan
=> Tehdään jotain tärkeämpää ensin.
MÄÄRÄÄVÄT TÄRKEYSJÄRJESTYKSEN
![Page 60: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/60.jpg)
HYVIN TEHTY ARKKITEHTUURI
Ensin ominaisuuden kehityssykli. Kun OK ja ETV tiedossa, tehdään arkkitehtuuri kunnolla, kun päätökset perusteltavissa. Ei hätäillä arkkitehtuurin kanssa.
Arkkitehtuuri laahaa perässä, ei täysin yhtenäinen.
Ryhdin parantaminen perustellusti: roi, hidastavuus, yhtenäistys (J, J*, J+K, ...)...
Kevyet analyysit: takaraivossa todo-list, wtf/min, pelkokerroin, jne.
ON TEHTY HYVIEN TIETOJEN PERUSTEELLA(garbage in, garbage out)
![Page 61: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/61.jpg)
ARKKITEHTUURI
Ei lupa luopua arkkitehtuurisuunnittelusta.
Ei vähennetä arkkitehtuurin tärkeyttä – kasvatetaan sitä!
Poikkeuksia: muutokset ytimeen, liikaa hidasteita
Viivästetään? Häkätään silti?
Poikkeuksia: keskeiset, esim. käynnistys, failover, toipuminen, tiedon pysyvyys, ...
HALLITUSSA KAAOKSESSA(how and why to fake it)
![Page 62: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/62.jpg)
PELASTA YDIN
Tuoterunko ja yhtenäistys vs. (?) muokattavuus.
Suojele ydintä! Keskeinen sovellusalalogiikka.
Suojele pikkuytimiä!
”Kypsyyskerrokset”: muutoksille alttiit ulompana. Aika kypsyttää.
Abstrahointi, ryhmittely, sovittimet, sillat, samaistus, rajapinnat,
PELASTAT ARKKITEHTUURIN
![Page 63: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/63.jpg)
Oikeahko esimerkki
![Page 64: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/64.jpg)
J
J ja M neuvottelevat suoraan resurssin R käytöstä
M L
![Page 65: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/65.jpg)
Olipa kerran väylä
HÄK HÄK HÄK
MJ
L
BUS
M-kanava
![Page 66: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/66.jpg)
”Joku muukin voisi käyttää väylää”
Erotetaan väylän ja M:n käsittely
MJ
Lkanava
protokolla
M-proxy
BUS
Uudelleenkäytettävä
![Page 67: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/67.jpg)
J, M ja N neuvottelevat...
HÄK HÄK HÄK
MJ
Lkanava
protokolla
M-proxy
BUS N
Uudelleenkäytettävä
![Page 68: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/68.jpg)
”Voisi varmaan olla muitakin kuin J, M, N...”
Välittäjä hoitaa skeduloinnin.(mikä tahansa määrä neuvottelijoita; mille tahansa resurssille)
MJ
Lkanava
protokolla
M-proxy
BUS
välittäjä
N
Uudelleenkäytettävä
![Page 69: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/69.jpg)
Loppuisipa jo!
![Page 70: Ohjelmistoarkkitehtuurit, TTY Vierailuluentoohar/luennot_materiaali/ohar2014_siikarla.pdf · • Sopivan kokoinen (51 henkeä) • Kannattavan kasvava, AAA • Koko tuplaantui laman](https://reader034.vdocuments.net/reader034/viewer/2022050121/5f515cb0e5f918157102d826/html5/thumbnails/70.jpg)
Kysymyksiä?