Ohjelmistoarkkitehtuurit, TTY. Vierailuluento. Mika Siikarla, 29.1.2014

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit, TTY. Vierailuluento. Mika Siikarla,

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Ohjelmistoprojekti projektipäällikön näkökulmasta

JS-kehitys - yleiskuvaus. TIEA255 - Juho Vepsäläinen

Liiketoimintajärjestelmien integrointi

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Kokemuksia ohjelmistokehityksestä. Kai Kulju & Heikki Naski

Integrointi. Ohjelmistotekniikka kevät 2003

ruovedellä pohjois-hämeessä. lepounit.com (yritys) lepo.net (oma)

Tapahtuipa Testaajalle...

Ohjelmistojen suunnittelu

HOJ J2EE & EJB & SOAP &...

Liiketoimintajärjestelmien integrointi

KAOS 2015: Integraatioiden standardointi suunnittelumallien avulla. Ilkka Pirttimaa, Chief ICT Architect, Stockmann ICT

TIE Ohjelmistojen suunnittelu

Tietojärjestelmän osat

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

HSMT J2EE & EJB & SOAP &...

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ketterä vaatimustenhallinta

Työkalut ohjelmistokehityksen tukena

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

KOODAAKO PROJEKTIPÄÄLLIKKÖ?

haltu..mobile.web.embedded

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Tietotekniikan Sovellusprojektit

T Loppukatselmus

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Microsoft Dynamics CRM 4.0. Jani Liukkonen

Kestävä kehitys - Lupa toimia eri tavalla Naantali Anssi Tuulenmäki, Yli-innovaatioaktivisti

make and make and make ThinkMath 2017

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Portaaliteknologiat mahdollistavat ajattelutavan muutoksen

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Käyttää pinsettiotetta, liikelaajuus rajoittunut, levoton. Suositellaan toimintaterapiaa, jonka tavoitteena on parantaa silmän-käden yhteistyötä ja

ASCII-taidetta. Intro: Python

statbeatmobile PROJECT REVIEW iteration 1

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Digitaalisen työvoiman asiantuntija. Jari Annala Digital (R)evolutionist

ecome Markkinoiden kehittynein julkaisujärjestelmä

Lääkinnällisten ja taloteknisten tietoverkkojen eriyttäminen Sairaalatekniikan päivät Hämeenlinnassa

Nimeni on. Tänään on (pvm). Kellonaika. Haastateltavana on. Haastattelu tapahtuu VSSHP:n lasten ja nuorten oikeuspsykiatrian tutkimusyksikössä.

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

PAREMPAA (ITSENSÄ) JOHTAMISTA = KIRKKAAMPI IDENTITEETTI

Dynamo-koulutus Omat laitteet oppimisessa

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Onnistunut ohjelmistoprojekti

Logistiikkakeskuspalveluiden mahdollisuudet Oulussa Jukka Lanu, HUB logistics

ICT-ALOJEN KOULUTUSTARVEKYSELY tammi-helmikuu Raportti 4/2011. Varsinais-suomen elinkeino-, liikenne ja ympäristökeskuksen julkaisuja

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Ihmisten johtaminen asiantuntijaorganisaatiossa. Heikki Wiik

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Test-Driven Development

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

KÄYTTÖOHJE PEL 1000 / PEL 1000-M

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Lisää tehoa kommunikointiin

Oleelliset vaikeudet OT:ssa 1/2

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Test-Driven Development

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Innovaatiokoulu Joulukuu Anssi Tuulenmäki

Totuus IdM-projekteista

VYPEdit verkkosivualusta SVY-toimijoille

Megaprojekti pysyi aikataulussa. Totta vai tarua?

Javan asennus ja ohjeita ongelmatilanteisiin

Prosessien hallinta. Lean-näkökulma laboratorion prosessien kehittämiseen ja hallintaan

Ohjelmistoarkkitehtuurit. Kevät

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

Ansioluettelo, Rauno Inkinen IT-asiantuntija. Esittely. Hei,

Lapin Rovaniemen moduuli 2 verkko-opiskelijoiden kysymyksiä tetoimiston virkailijoiden tapaamiseen AC-huoneessa:

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Mittaamisen maailmasta muutamia asioita. Heli Valkeinen, erikoistutkija, TtT TOIMIA-verkoston koordinaattori

Tutkittua tietoa. Tutkittua tietoa 1

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

Multisite -projektit uhasta mahdollisuus? Johtamiseväitä projektipäällikölle

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

ZENworks Application Virtualization 11

Digitalisaatio tehostaa opetusta! RIVERIA.FI

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

statbeatmobile FINAL PROJECT REVIEW

MATINE-projekti 2500M-0069: Tietotekniset harhautukset (ICT Illusions)

Rekisteröiminen - FAQ

Muutos mahdollisuutena Tuusula Anssi Tuulenmäki

Transkriptio:

Ohjelmistoarkkitehtuurit, TTY Vierailuluento Mika Siikarla, 29.1.2014

Teesi

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?)

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

Tamperelainen ohjelmistotalo Jotain IHAN muuta...

Bitwise pähkinänkuoressa

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ä)

Bitwise valittiin Suomen parhaaksi työpaikaksi 2012

Bitwiserit hoitavat projektit, joihin kukaan muu pysty haasteita mielenkiintoisia pulmia vaihtelevia tehtäviä jatkuvaa uuden oppimista yhdessä tekemistä onnistumisia sankaritarinoita tyytyväiset asiakkaat

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

Mm. näillä teknologioilla».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

Bitwise etsii ihmisiä, joilla on

Halu oppia Kyky oppia Rohkeutta hypätä uuteen Maalaisjärkeä Ammattiylpeyttä Input ja output Tiimipelitaitoja Pohojalaanen tekemisen meininki Rohkeutta olla oma itsensä

Bitwise houkuttelee opiskelijaa

Kukaan ei ole guru syntyessään meillä voit kasvaa sellaiseksi

Tarjolla Osa-aikaisia töitä Kesätöitä Lopputyöaiheita Bonuksena palkallinen päivä viikossa kirjoittamiseen

Hyvät kaverit vakinaistetaan, poikkeuksetta

Ryhdy bitwiseriksi! Lue lisää www.bitwise.fi Lähetä hakemus rekry@bitwise.fi

Vastuuvapauslauseke

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)

Arkkitehtuuri

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,?)

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

Arkkitehti

ARKKITEHTI En ole ammatiltani arkkitehti. Minun ammattini on ohjelmistosuunnittelija. Bitwisellä ei ole töissä ketään, jonka ammatti on arkkitehti. EI ASU TÄÄLLÄ

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)

ARKKITEHTI ArchitectAlsoImplements http://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

Vaatimukset Arkkitehtuuri

VAATIMUKSET Vaatimukset (Erityisesti ei-toiminnalliset) vaatimukset rajoittavat arkkitehtuuria. ta ut te to a Arkkitehtuuri Arkkitehtuuripäätösten perustelut vaatimuksista. PERUSTELEVAT ARKKITEHTUURIN

VAATIMUKSET Vaatimusten muutosten pitäisi näkyä arkkitehtuurin muutoksina. Vaatimukset Vaatimukset ta ut te to Ehkä otettu huomioon? a Arkkitehtuuri Arkkitehtuuri Ehkä vanha kelpaa? Ehkä kohta palataan takaisin? Massa: uutta vai parempaa? ELÄVÄT (elääkö arkkitehtuuri?)

VAATIMUKSET Jos Kun vaatimuksia ei tunneta kokonaisuudessaan, onko arkkitehtuurille kokonaisuudessaan perusteita??a??im?k?e? ta ut te to? a? Ar??it?h??uri Esim. suorituskyky, suoritustapa. Lukitaanko vastaus? EIVÄT AINA TIEDOSSA

VAATIMUSTEN KERUU Yksi tapa toimia:?a??im?k?e? Kiinitetään vain asiat, joille on perusteet. ta ut te to? a? Ar??it?h??uri Kerätään lisää/muuttuneita vaatimuksia käyttökokoemuksista. Kiinnitetään lisää asioita. Ohjelmisto on osin prototyyppi. VOI JATKUA KEHITYKSEN AJAN

Kurkistus oikeaan maailmaan

OHJELMISTO Asiakas J TYHJIÖSSÄ

OHJELMISTO Toimittaja J + YMPÄRISTÖSSÄÄN (muiden ohjelmistojen kanssa) Operaattori

OHJELMISTO Toimittaja J + YMPÄRISTÖSSÄÄN (laitteiden ja muiden ohjelmistojen kanssa) Operaattori

OHJELMISTO Toimittaja J + YMPÄRISTÖSSÄÄN (prosessien, laitteiden ja muiden ohjelmistojen kanssa) Operaattori

OHJELMISTO Toimittaja J Operaattori + YMPÄRISTÖSSÄÄN (integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)

Ekskursio ympäristöön

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

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)

Backtrack palluroihin

OHJELMISTO Toimittaja Operaattori Operaattori Operaattori Operaattori MONESSA YMPÄRISTÖSSÄ

OHJELMISTO Toimittaja J Operaattori + YHDESSÄ YMPÄRISTÖSSÄ (integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)

OHJELMISTO Toimittaja J Operaattori + TOISESSA YMPÄRISTÖSSÄ (integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)

OHJELMISTO Toimittaja J + Operaattori????????????? TULEVASSA YMPÄRISTÖSSÄ (integrointien, prosessien, laitteiden ja muiden ohjelmistojen kanssa)

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

MONTA TUOTETTA Prototyyppi Kypsä tuote ==> arkkitehtuuri?? Tuoterunko Suuri kannuste yhtenäistää. MONTAKO ARKKITEHTUURIA?

Tekninen ympäristö

KOMPONENTTIEN UUDELLEENKÄYTTÖ Bitwise Ympäristö J+K J ~200 kloc C# J'

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Ä

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Ä

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

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)

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)

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

Oikeahko esimerkki

J ja M neuvottelevat suoraan resurssin R käytöstä M L J

Olipa kerran väylä J M M-kanava BUS HÄK HÄK HÄK L

Joku muukin voisi käyttää väylää M-proxy protokolla kanava M J BUS Erotetaan väylän ja M:n käsittely L Uudelleen käytettävä

Uudelleen käytettävä J, M ja N neuvottelevat... M-proxy protokolla kanava M BUS HÄK HÄK HÄK J L N

Uudelleen käytettävä Voisi varmaan olla muitakin kuin J, M, N... välittäjä M-proxy protokolla kanava M J BUS Välittäjä hoitaa skeduloinnin. (mikä tahansa määrä neuvottelijoita; mille tahansa resurssille) L N

Loppuisipa jo!

Kysymyksiä?