Ohjelmistoarkkitehtuurit, TTY. Vierailuluento. Mika Siikarla, 31.1.2012

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit, TTY. Vierailuluento. Mika Siikarla,

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

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

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

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

Liiketoimintajärjestelmien integrointi

HOJ J2EE & EJB & SOAP &...

Kokemuksia ohjelmistokehityksestä. Kai Kulju & Heikki Naski

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

Liiketoimintajärjestelmien integrointi

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

TIE Ohjelmistojen suunnittelu

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

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

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

HSMT J2EE & EJB & SOAP &...

Työkalut ohjelmistokehityksen tukena

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

Ohjelmistojen suunnittelu

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

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

Ihmisten johtaminen asiantuntijaorganisaatiossa. Heikki Wiik

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Integrointi. Ohjelmistotekniikka kevät 2003

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

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

make and make and make ThinkMath 2017

Tapahtuipa Testaajalle...

ASCII-taidetta. Intro: Python

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

Choose Finland-Helsinki Valitse Finland-Helsinki

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

Portaaliteknologiat mahdollistavat ajattelutavan muutoksen

ZA5901. Flash Eurobarometer 386 (The Euro Area, 2013) Country Questionnaire Finland (Finnish)

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

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

LANSEERAUS LÄHESTYY AIKATAULU OMINAISUUDET. Sähköinen jäsenkortti. Yksinkertainen tapa lähettää viestejä jäsenille

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

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Capacity Utilization

Information on preparing Presentation

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

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

Sähköinen. ylioppilastutkinto.fi

Oleelliset vaikeudet OT:ssa 1/2

SIMULINK S-funktiot. SIMULINK S-funktiot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

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

Käytön avoimuus ja datanhallintasuunnitelma. Open access and data policy. Teppo Häyrynen Tiedeasiantuntija / Science Adviser

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Westin Lisätty luku 6, käyttötapauskuvaukset.

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

Sähköinen. ylioppilastutkinto.fi

KOODAAKO PROJEKTIPÄÄLLIKKÖ?

Strategiset kumppanuushankkeet

Digitaalinen haavoittuvuus MATINE Tampere

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Horisontti 2020 mistä on kyse? Marja Nykänen

oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen

SOA & Ajax Sanahelinää vai toimivaa käytäntöä sähköisessä asioinnissa? Fenix hankejohtaja Harri Juuti Projektipäällikkö Teemu Karvonen

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

Counting quantities 1-3

Operatioanalyysi 2011, Harjoitus 4, viikko 40

Ohjelmistoarkkitehtuurit. Kevät

Projekti toteuttaa muutostarpeen

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

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

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

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

Web Service torilla tavataan!

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Toiminnallinen turvallisuus

ESITTELY. Valitse oppilas jonka haluaisit esitellä luokallesi ja täytä alla oleva kysely. Age Grade Getting to school. School day.

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

Efficiency change over time

T Loppukatselmus

Muutos mahdollisuutena Tuusula Anssi Tuulenmäki

Rekisteröiminen - FAQ

Tähtitieteen käytännön menetelmiä Kevät 2009

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2008

ToteutusDokumentaatio. FotMana17

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto

Sosiaalisen median liiketoimintamallit ja käyttöön oton suunnitelma 9/23/2012

VYPEdit verkkosivualusta SVY-toimijoille

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Megaprojekti pysyi aikataulussa. Totta vai tarua?

HOITAJAN ROOLI TEKNOLOGIAVÄLITTEISESSÄ POTILASOHJAUKSESSA VÄITÖSKIRJATUTKIJA JENNI HUHTASALO

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013!

Vuoden Kokki 2016 Kysymyksiä ja vastauksia

Työryhmä 1: Opiskelijan aikaisemmin hankittu osaaminen tunnistatko ja tunnustatko?

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Transkriptio:

Ohjelmistoarkkitehtuurit, TTY Vierailuluento Mika Siikarla, 31.1.2012

Tamperelainen ohjelmistotalo Jotain IHAN muuta...

Bitwise pähkinänkuoressa

Sopivan kokoinen (43 henkeä) Kannattavan kasvava, AAA Koko tuplaantui laman aikana Vuonna 2012 palkattu 12 henkeä 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 pelinappulalta vaikuttavia 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

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Ä

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)

HYVIN TEHTY ARKKITEHTUURI Poikkeuksia: muutokset ytimeen, liikaa hidasteita Viivästetään? Häkätään silti? Ei lupa luopua arkkitehtuurisuunnittelusta. Ei vähennetä arkkitehtuurin tärkeyttä kasvatetaan sitä! 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ä?