Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik
|
|
- Johanna Mikkola
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik
2 Motivaatio Arkkitehtuureilla on väliä Aamulehti, pääkirjoitus: Avoin väylämalli myös Suomeen Viron potilastietojärjestelmä pohjautuu Enterprise Service Bus arkkitehtuurimalliin. Viro: 10M Suomi: 1800M Service Bus 2
3 Agenda Arkkitehdin arkipäivä Mikä ihmeen Sandvik? Käytönnön kokemuksia ja havaintoja arkkitehdin työstä teollisuudessa Suunnittelu Dokumentointi Kommunikointi Muutama nyrkkisääntö 3
4 Disclaimer T.s. Vastuu on kuulijalla Esitetyt mielipiteet ja näkemykset ovat esittäjän omia eivätkä vastaa Sandvikin, TTY:n, tai minkään muunkaan instanssin virallisia tai epävirallisia mielipiteitä. Tuskin tulee tentiin. 4
5 5 Mikä Sandvik? Lyhyt intro
6 Heritage Founded 1862 in Sandviken, Sweden Göran Fredrik Göransson redesigned the Bessemer furnace to mass-produce steel A breakthrough and an innovation started the company 150 years ago
7 Sandvik/Tamrock Historia Tampella 1856 Tamperelaista konepajaperinnettä Paineilmaporakoneita 50-luvulta Tampellan Porakoneyksikkö ==> Tamrock (1969) Myllypuroon -70 luvun alussa Tamrock ==> Sandvik (1997) Sandvik Mining ja Sandvik Construction 7
8 8 Tuotteita Sandvik Mining
9 Ohjelmistot Sandvikin laitteissa Esimerkkejä Porauksen ohjaus (painemittauksia ja -ohjauksia, pumppujen ohjausta, jne) Puomin ohjaus (asemamittaus, paikoitus erilaisissa koordinaatistossa, taipuma yms. kompensoinnint) GPS-pohjainen porakruunun paikannus ja paikoitus Graafiset käyttöliitymät operaattorille ja huollolle (mittarit/indikaattorit, porakaaviot, diagnostiikka,...) Tiedonkeruu ja raportointi SICA-platform! Lisäksi erilaisia off-board sovelluksia (etäoperointi, valvonta, porakaavioiden luonti/käsittely, kivianalyysi,...) 9
10 10 SW-arkkitehdin työstä Case Sandvik
11 Arkkitehti? Määritelmä Suunnittelee suurehkon ohjelmiston rakenteen komponenttitasolla Dokumentoi suunnitelman riittävällä tarkkuudella Toivottavasti osallistuu hommaan tämän jälkeenkin jollakin tavalla (koodaus, katselmoinnit, testaussuunnittelu, ) Eli mitä tässä esityksessä ei tarkoiteta arkkitehdistä puhuttaessa: Arkkitehtuurin dokumentoijaa Koodaria joka vastaa osaltaan toteuttamansa komponentin arkkitehtuurista 11
12 Arkkitehdin työ Yleiskatsaus 1)Suunnittelee ohjelmiston rakenteen tietyllä tasolla 2)Dokumentoi suunnitelman riittävällä tarkkuudella 1) 3) 3)Kommunikoi arkkitehtuurin sidosryhmille (kehittäjät, testaus, projektin vetäjät, johto,...) 2) Ja toivottavasti osallistuu hommaan tämän jälkeenkin jollakin tavalla (koodaus, katselmoinnit, testaussuunnittelu, ) 12
13 Järjestelmän suunnittelu Mitä se edellyttää? Yleinen sw-osaaminen Kyky hahmottaa ja hallita monimutkaisia kokonaisuuksia Järjestelmän arkkitehtuurin yhtenäisyys, unifying vision Sovellusalue-osaaminen! 13
14 SW osaaminen Mitä se on Vahva koodaustaito & -kokemus käytetyillä kielillä Arkkitehdin tulee osata koodata! Tärkeää koska: devil is in the details Oliomenetelmät, UML, yleiset patternit (GoF),... Arkkitehdin tulisi nähdä ja pystyä esittämään miten periaatteessa mikä tahansa toiminto järjestelmässä toteutetaan. 14
15 SW osaaminen UML, oliomenetelmät, jne UML on de-facto mallinnus-/kuvausmenetelmä UML käytännön tasolla ( 20% UML:stä riittää 80% tarpeisiin - Ivar Jacobson) Kannattaa huomioida että käytännössä UML-osaamisen taso vaihtelee! Management, wanhat parrat,... Sovellusspesialistit ja järjestelmäsuunnittelijat SysML vielä tuntematon Perus-design patternit (GoF) Vesi KahvinPorot Hyvä työkalupakki suunnitteluun. Myös tehokkaita kommunikaatiovälineenä! ( käyttöliittymätoiminnot toteutetaan Commandpatternia käyttäen ).
16 Sovellusalue (=Domain) osaaminen Mitä se on? Käytännön kokemusta kyseiseltä sovellusalueelta Tyypillisiä ongelmia Tyypillisiä ratkaisuita Tärkeää koska Vaatimukset eivät koskaan kerro kaikkea! Etenkään ei-toiminnalliset. Siksi ne tarvii haistaa. Muutoksiin varautuminen Vaikka vaatimukset kertoisivatkin kaiken, tulee tietää mikä toimii ja mikä ei (ja miksi). 16
17 Sovellusalue osaaminen Miten kartuttaa? Tekemällä oppii! Alakohtaisia pattern-kataloogeja, esim. TTY:n koneenohjauspatternit 17
18 Sovellusalueosaaminen Esimerkki Suunnittele yleiskäyttöinen työkoneen hälytysjärjestelmä Mistä asioista tehdään hälytyksiä? Miten ne esitetään käyttäjälle? API sovellusohjelmoijille? Vasteaikavaatimuksia? Pysyvä talletus? Siirto koneen ulkopuolelle? Miten konfiguroidaan eri kone-, väylä- ja ohjaintyypeille? Tulevaisuuden näkymiä? Mihin varautua? Yleisesti käytetyt/tunnetut ratkaisut? Miten petrata? ==>ja sitten suunnittelu 18
19 Sovellusalueosaaminen Esimerkki Työkoneiden elinkaarihalinta Sarjatuonannon vaatimukset? Huolto? Varaosat? Elektroniikan elinkaari < koneen elinkaari Elektroniikka tyypillisesti paranee ja halpenee koko ajan Vanhentuva elektroniikka puolestaan kallistuu Kuitenkin tarve kustannustehokkuuteen Tällaiset vaatimukset toisinaan nousevat esiin vasta kun laite on saatu valmiiksi 19
20 Järjestelmän suunnittelu Tyypillisiä ongelmia Pieleen mennyt arkkitehtuuri keskeisimpiä syitä projektin epäonnistumiseen. Tyypillisiä ongelmia: Norsunluutorni-arkkitehtuuri Ylisuunnittelu Väärät abstraktiot [N]IH ==> Antipatternit
21 Antipatternit Lyhyt intro viisas oppii toisten virheistä omiensa sijaan Huonoja toteutus- tai toimintamalleja Voivat liittyä sw-rakenteeseen, organisaatioon, projektinhallintaan yms. toimintatapoihin Vrt. Design patternit jotka liittyvät sw-rakenteeseen Vrt. Prosessi joka liittyy toimintatapoihin Antiprosessi? Idea: sovellusaluekohtaisia antipatterneja? Vrt. Sovellusaluekohtaiset design patternit
22 Norsunluutorni-arkkitehtuuri Arkkitehtuurisuunnittelu tehdään huomioimatta detaljeita joita käytännön työssä kuitenkin kohdataan. laatikkokuva == järjestelmä virhe? Tyypillisiä syitä: Liikaa työtä arkkitehdille devil is in the details Domain-osaamisen puutteet Kompetenssin puute 22
23 Overengineering Tarpeettoman monimutkainen rakenne, "excessive future-proofing" Spagettikoodin vastakohta (liikaa rakennetta vs. toiminnallisuus) Esimerkki; speksi sanooo 'tee C++ ohjelma joka tulostaa terve maailma '. Triviaali toteutus: #include <iostream> void main () { std::cout << terve maailma << end; } Vaihtoehto b: Celestial Object Greeter Framework (TM)
24 COGFrameWork +setcelestialobjectfactory (ICOFactory) +setgreetingfactory (ICOFactory) +greetcelestialobject () Common Framework CelestialObject +name (): string -printname (); Greeter +greet (): string -printgreeting (); IGreeterFactory +createcelestialobject (): CelestialObject ICelectialObjectFactory +createcelestialobject (): CelestialObject World HelloSayer MyGreeterFactory MyCelectialObjectFactory Greeter specific <<create>> <<create>> Application
25 #include <iostream> class ICelectialObjectFactory; class IGreeterFactory; class CelestialObject { friend class COGFrameWork; public: virtual const char *name () = 0; private: void printname () { std::cout << name (); } }; class Greeter { friend class COGFrameWork; public: virtual const char *greet () = 0; private: void printgreeting () { std::cout << greet (); } }; class ICelectialObjectFactory { public: virtual CelestialObject *createcelestialobject () = 0; }; class IGreeterFactory { public: virtual Greeter *creategreeter () = 0; }; class COGFrameWork { public: void setcelestialobjectfactory (ICelectialObjectFactory* f) { m_celestielobjectfactory = f; } void setgreeterfactory (IGreeterFactory* f) { m_greeterfactory = f; } void greetcelestialobject () { CelestialObject *o = m_celestielobjectfactory- >createcelestialobject (); Greeter *g = m_greeterfactory->creategreeter (); } g->printgreeting (); std::cout << " "; o->printname (); std::cout << std::endl; private : ICelectialObjectFactory *m_celestielobjectfactory; IGreeterFactory *m_greeterfactory; }; class World : public CelestialObject { public: const char *name () { return "maailma"; } }; class HelloSayer : public Greeter { public: const char *greet () { return "terve"; } }; class MyCelectialObjectFactory : public ICelectialObjectFactory { public: CelestialObject *createcelestialobject () { return new World; } }; class MyGreeterFactory : public IGreeterFactory { public: Greeter *creategreeter () { return new HelloSayer; } }; Lähdekoodi ~150LoC int main () { COGFrameWork *fw = new COGFrameWork; MyCelectialObjectFactory *cof = new MyCelectialObjectFactory; MyGreeterFactory *gf = new MyGreeterFactory; fw->setcelestialobjectfactory (cof); fw->setgreeterfactory (gf); fw->greetcelestialobject (); }
26 Overengineering Seurauksia Monimutkaisuus kasvattaa monimutkaisuutta, esim COGW: Puuttuu virhetarkistuksia ja pitää suunnitella miten virhetilanteet hallitaan Muistinhallinnassa bugeja Koodimäärä == Konfigurointimäärä > kovakoodauksen määrä jonka se korvaa (esim. 'muuta ohjelma tulostamaan lisäksi terve Mars ') 26
27 Virheelliset abstraktiot Suunnitteluongelmana Muutospyyntö: 'muuta ohjelma tulostamaan terve Belgia ' ==> taivaankappale nimeltä Belgia! T.s. Valittu väärä abstraktio, mikä haittaa uudelleenkäyttöä ja ylläpitoa. Tyyppillinen seuraus puutteellisesta domain-osaamisesta. 27
28 [Not] Invented Here Suunnitteluongelmana IH: Käytetään ratkaisua johon on tykästytty tyyppillisesti itse kehitettyä. Käyttö riippumatta siitä soveltuuko se tehtävään ensinkään NIH: Ei käytetä toimivaa valmista ratkaisua vaikka se teknis-taloudellisesti olisi perusteltua, koska oma toteutus on jotenkin maagisesti parempi. Korjataan toimiva valmis ratkaisu rikkinäiseksi
29 Muita yleisiä antipatterneita Organisaatioon/toimintaan liittyviä: Analysis Paralyzis (ei domain osaamista) Design by Committee ( unifying vision...) GodClass SW-suunnitteluun liittyviä: God class Fat interface Kirjallisuutta on, kannattaa tutustua.
30 Arkkitehtuurin dokumennista
31 Arkkitehtuurin dokumentointi Tarpeita ja haasteita Tarvittava taso riippuu täysin sidosryhmistä! Esim: Pieni kokenut teami samassa projektihuoneessa ==> kevyt Offshoring ==> raskas ja yksityiskohtainen dokumentaatio, tarkka seuranta! Pitkä elinkaari edellyttää parempaa dokumentaatiota. 31
32 Arkkitehtuurin dokumentointi Mitä dokumentoidaan? Pelkät UML-kaavit kertovat miten, tarviiko dokumentoida myös miksi? Jos tätä ei dokumentoida, kasvaa riski siihen että jatkossa tehdään tavoitteiden kanssa ristiriitaisia ratkaisuita. ==> unifying vision menetätään Yksi lähestymistapa on dokumentoida nimenomaan arkkitehtuuripäätökset ja niiden perustelut. 32
33 Arkkitehtuurin dokumentointi Mallipohjaisuus vai ei? Mallipohjainen: Luodaan UML-malli järjestelmästä vaatii CASE työkalun Myös suunnittelutyökalu, ei pelkkä dokumentaatio Tyypillisesti koodin generointi, round-trip engineering Nojaa vahvasti työkaluihin hyvässä ja pahassa (millaista koodia työkalu generoi, toimiiko round-trip, jne) Havainnollistaminen: Pelkkä kuva mikä tahansa piirto-ohjema UML-symboleilla toimii Joustava Ongelma: kuvan ja todellisuuden vastaavuus; ristiriitaisuudet 33
34 Arkkitehtuurin dokumentointi Design Patternit Tehokkaita ovat tehokkaita kommunikaatiovälineitä, kannattaa hyödyntää. Välittävät rakenteen lisäksi tietoa myös arkkitehtuurin tavoitteista, koska patternit (toivottavasti) valitaan niiden perusteella: käyttöliittymätoiminnot toteutetaan Command-patternia käyttäen ==> undo/redo, hajautus kenties mielessä Mona Lisa Ajoalustan GUI-toiminnot piilotetaan Bridge:n taakse ==> portattavuus vissiin tärkeää 34
35 Arkkitehtuurin dokumentointi Sandvik malli Ei mallinnusta, ei API dokumentaatiota arkkitehtuuridokumentaatiossa Kuvataan konsepteja - t.s. järjestelmän osatoimintoja. Rakenne komponenttien tasolla (komponentit, riippuvuudet, interaktiot) Selitetään miten ja miksi järjestelmä toimii tältä osin Toiminta käyttäjän näkökulmasta (sis. Kuvaruutumalleja, toimintakuvauksia) Komponettien tehtävät ja vastuut (vrt. API) Myös hylättyjä ratkaisuita ja perusteluita Tavoite luoda komponenti tekijälle ymmärrys siitä mitä pitää tehdä, sekä komponentin käyttäjille ymmärrys miten, miksi ja milloin sitä käytetään. Kuvaus läpi järjestelmän (koneenohjaimet, väylät, service-taso, GUI, liitynnät ulkomaailmaan), vrt. viipaleet (aspects). Esim. hälytykset, parametrit, varaosien asennus, lukitukset,... 35
36 36 Arkkitehtuurin kommunikointi
37 Arkkitehtuurin kommunikointi Mitä ja miten? Kuten dokumentaatiossa, taso riippuu täysin ihmisistä ja organisaatiosta Kokenut teami projektihuoneessa, tai yhden hengen projekti vs Offshore alihankkija projekti Keinoja: Dokumenttien läpikäynti, koulutus, osallistuminen tekemiseen, katselmoinnit, Jälleen: Design Patternit 37
38 Kommunikaatio-ongelmat Sidosryhmille ei välity käsitystä siitä mitä ollaan tekemässä. Tyypillisiä syitä: Kehno dokumentaatio/koulutus/esitystapa Ei seurantaa (esim. katselmointeja tai arkkitehdin osallistumista toteutukseen) Sidosryhmien fyysinen välimatka (off-site, off-shore) Kompetenssi (esim. maallikot) Aiempi kokemus (=oletukset) Asenne, kulttuurierot Usein vaikea arvioida miten onnistuttu kommunikoimaan.?? 38
39 39 Nyrkkisääntöjä
40 Nyrkkisääntöjä Käytännön tilanteisiin Uudelleenkäytettävän koodin tekeminen on 3 kertaa kalliimpaa kuin kertakäyttöisen Jos koodista tarvii uudelleenkäytössä muuttaa >20%, niin on halvempi kirjoittaa se tyhjästä uudelleen SW-teamien tuottavuudessa voi olla 26x eroja Tuntihinnassa voi olla 3x eroja (offshoring) Homma on 80% valmis 80% ajasta HUOM: nyrkkisääntö on vain nyrkkisääntö 40
41 41
42 Heading Subtitle text 42
Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik
Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik Motivaatio Arkkitehtuureilla on väliä Aamulehti, pääkirjoitus: Avoin väylämalli myös Suomeen Viron potilastietojärjestelmä pohjautuu Enterprise
LisätiedotArkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik
Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik Motivaatio Arkkitehtuureilla on väliä Aamulehti, pääkirjoitus (2013): Avoin väylämalli myös Suomeen Viron potilastietojärjestelmä pohjautuu Enterprise
LisätiedotOnnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti 2.12.2008 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt ja työkalut Tulevaisuuden
LisätiedotTIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
LisätiedotUudelleenkäytön jako kahteen
Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta
LisätiedotSisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 8. kesäkuuta, 2018 Agenda Ohjelmistokehitys Ohjelmistokehitys vs. konsultointi Vaatimukset Tietosuoja Tietosuoja ohjelmistokehityksessä kiteytettynä
LisätiedotJReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
LisätiedotHelia Ohjelmointitaito 14.3.2005 Tuomas Kaipainen Mermit Business Applications Oy. 2005 Mermit Business Applications
Helia Ohjelmointitaito 14.3.2005 Tuomas Kaipainen Mermit Business Applications Oy Esityksen sisältö Mermit yrityksenä Perustiedot Toimintamalli Mermit työpaikkana ohjelmistoinsinöörille Esimerkkiprojekti
LisätiedotHieman lisää malleista ja niiden hyödyntämisestä
Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotAgenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi
1. Luento: Sulautetut Järjestelmät Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite
2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto
LisätiedotSuunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
LisätiedotSisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotYksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotArkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä
Arkkitehtuuritietoisku eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä Esikysymys Kuinka moni aikoo suunnitella projektityönsä arkkitehtuurin? Onko tämä arkkitehtuuria?
LisätiedotAvoimen ohjelmistotuotteen hallinta julkisella sektorilla. Jukka Kääriäinen VTT Oy , Oskari-verkostopäivä
Avoimen ohjelmistotuotteen hallinta julkisella sektorilla Jukka Kääriäinen (jukka.kaariainen@vtt.fi) VTT Oy 19.5.2015, Oskari-verkostopäivä Esityksen sisältö Mitä on tuotteenhallinta? Mikä on avoimen tuotteenhallintamalli?
Lisätiedot2 Ohjelmistoarkkitehtuurien kuvaus
2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2010
Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotJohdantoluento. Ohjelmien ylläpito
Johdantoluento Ylläpito-termin termin määrittely Ylläpito ohjelmistotuotannon vaiheena Evoluutio-termin määrittely Muita kurssin aiheeseen liittyviä termejä TTY Ohjelmistotekniikka 1 Ohjelmien ylläpito
LisätiedotENG-A1002 ARTS-ENG-Projekti. B-kori
ENG-A1002 ARTS-ENG-Projekti B-kori 11.4.2017 Innovatiivinen kuljetin B-korissa pyritään löytämään: uusi tai paranneltu tuotekonsepti kappaletavaroiden tai materiaalien käsittelyyn, siirtelyyn tai kuljetukseen.
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotOhjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
LisätiedotTIE Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 12: Lokalisointia/kansainvälistystä TIE-20200 Samuel Lahtinen 1 Sisältöä Kansainvälistäminen/lokalisointi Mitä asioita voi liittyä kansainvälistämiseen/lokalisointiin?
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
LisätiedotYlläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito
Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective) testausvaiheessa
LisätiedotTT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus
LisätiedotOhjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 8 Suunnittelumallit käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Yleistä Suunnittelumalli on
LisätiedotMikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela 22.4.2015 Jukka.kaariainen@vtt.
Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela 22.4.2015 Jukka.kaariainen@vtt.fi Avoimen tuotteenhallinta Esityksen sisältö Mitä on tuotteenhallinta?
LisätiedotTestauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen
Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen 23 April 2018 1 Tavoitteet Yleiskuva seuraavista aiheista Testauksen organisointi Testaussuunnittelma Testauksen kustannukset Testausstrategia
LisätiedotTIE Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 8: Lokalisointia/kansainvälistystä TIE-20200 Samuel Lahtinen 1 Ajankohtaista Viimeiset viikkoharkat tarjolla, aiheena kansainvälistäminen/lokalisointi Viikkoharkkoja
Lisätiedot7. Tuoterunkoarkkitehtuurit
7. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen Kerrostyyli tuoterunkoarkkitehtuureille Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö opportunistinen:
LisätiedotJUnit ja EasyMock (TilaustenKäsittely)
OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip
Lisätiedot12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
LisätiedotKeskitetyn integraatiotoiminnon hyödyt
Keskitetyn integraatiotoiminnon hyödyt Janne Kangasluoma / Chief Enterprise Architect, Ilmarinen Teemu O. Virtanen / Director, Information Logistics, Digia 2013 IBM Corporation HUOLEHDIMME NOIN 900 000
LisätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
LisätiedotRekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
LisätiedotSudenkuoppia, yllätyksiä, pään vaivaa
Aika Rahoitus Sudenkuoppia, yllätyksiä, pään vaivaa Odotukset: Tilaaja(t), toteuttaja(t) Osaaminen: Liikaa tietoa/liian vähän tietoa Sopimusasiat (tekijänoikeus, tilauksen toimitussopimus, yhteistyösopimus)
LisätiedotS11-09 Control System for an. Autonomous Household Robot Platform
S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on
LisätiedotWeb Services tietokantaohjelmoinnin perusteet
ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...
LisätiedotOhjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
LisätiedotJava kahdessa tunnissa. Jyry Suvilehto
Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotIIO30100 Tietokantojen suunnittelu (6 op)
IIO30100 Tietokantojen suunnittelu (6 op) Opintojakson esittely Jouni Huotari K2008 http://student.labra.jypoly.fi/~huojo/opetus/iio30100/ Tavoitteena on, että opiskelija: Ymmärtää käsitteellisen mallintamisen
LisätiedotYlläpito. Ylläpidon lajeja
Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective)
LisätiedotEclipse ja JUnit-ohjelmoijatestit
Eclipse ja JUnit-ohjelmoijatestit Tarkoitus on tutustua Eclipsen käyttöön vähän lähemmin ja varsinkin JUnit-ohjelmoijatesteihin (ohjelmoijatesti on vanhalta nimeltä yksikkötesti). Ohjelmoijatestit ovat
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi
LisätiedotOhjelmistotekniikka - Luento 2
Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit
LisätiedotKääntäjän virheilmoituksia
OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:
LisätiedotChiller Service Next - palvelut: Urakointi Huolto ja varaosat Vuositarkastukset ja kartoitukset Etävalvonta ja energiaoptimointi
Chiller Service Next - palvelut: Urakointi Huolto ja varaosat Vuositarkastukset ja kartoitukset Etävalvonta ja energiaoptimointi HelpDesk - laitevalmistajan ammattitaidolla Jäähdytysalalla yy ominaista
LisätiedotTOIMINNALLINEN MÄÄRITTELY MS
TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa
LisätiedotReilun Pelin työkalupakki: Työkäytäntöjen kehittäminen
Reilun Pelin työkalupakki: Työkäytäntöjen kehittäminen Tavoite Oppia menetelmä, jonka avulla työyhteisöt voivat yhdessä kehittää työkäytäntöjään. Milloin työkäytäntöjä kannattaa kehittää? Työkäytäntöjä
LisätiedotMihin kaikkeen voit törmätä testauspäällikön saappaissa?
Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Arto Stenberg Copyright Kuntien Tiera Oy Kuntien Tiera Copyright Kuntien Tiera Oy Tiera on vuonna 2010 perustettu yli 200:n kuntatoimijan omistama
LisätiedotC++11 lambdat: [](){} Matti Rintala
C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n
LisätiedotJulkICTLab Eteneminen 2015. 4.3.2015 Mikael Vakkari, VM
JulkICTLab Eteneminen 2015 4.3.2015 Mikael Vakkari, VM JulkICTLab lyhyesti Kokoaa yhteen julkisen hallinnon eri projektien kehittämistoimintaa Edistää palveluiden kehittämistä ja referenssitoteutusten
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotADM Arkkitehtuuritason automaatio #tdarc
ADM Arkkitehtuuritason automaatio #tdarc Kalle Launiala http://abstractiondev.wordpress.com kalle.launiala@citrus.fi Ohjelmistoteollisuus elää murrosta Ohjelmistoteollisuudesta halutaan perusteollisuutta
LisätiedotPROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI 28.9.2009
PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI 28.9.2009 POHDINTAA Mitä asioita projektissa seurataan? Kuka vastaa ohjauksesta? Millä tavoin projektia seurataan ja ohjataan? Mitä asioita ohjaukseen kuuluu?
LisätiedotOhjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen
Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä Kari Suihkonen Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä Tuote Ohjelmisto Ulkoiset tekijät Sisäiset tekijät 2 Hissin ohjausjärjestelmä ohjelmistotuotteena
LisätiedotTestauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori
Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita
LisätiedotHajautettu Ohjelmistokehitys
Hajautettu Ohjelmistokehitys Maria Paasivaara Hajautuksen muotoja Yrityksen sisäinen hajautus Maan sisällä Maiden välillä, esim. offshore Yritysten välinen hajautus Alihankinta Lisenssointi Partnershipit
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotIIO30100 Tietokantojen suunnittelu (6 op)
IIO30100 Tietokantojen suunnittelu (6 op) Opintojakson esittely Jouni Huotari K2008 http://student.labranet.jamk.fi/~huojo/opetus/iio30100/ Tavoitteena on, että opiskelija: Ymmärtää käsitteellisen mallintamisen
LisätiedotTietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä
Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat
LisätiedotJulkICT Lab Stakeholder -työpaja Työpajan yhteenveto
JulkICT Lab Stakeholder -työpaja Työpajan yhteenveto Perjantai 23.5.2014 klo 9.00-12.00 CSC, Keilaniemi 14, Espoo 0 JulkICT Lab Sisällys 1 Alku 2 Prosessi 3 Roolit ja resurssit 4 Loppu 5 Sidosryhmät 6
LisätiedotKäytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy
Käytännön haasteita ja ratkaisuja integraation toteutuksessa Jukka Jääheimo Teknologiajohtaja Solita Oy 13.03.2008 Sisältö 2 Alustus Integraation haasteet Integraatioarkkitehtuuri Hyvän integraatioarkkitehtuurin
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Useampitasoiset ADT:t Käytetään esimerkkiohjelmaa Ratkaisuyritys 1 Ratkaisuyritys 2 Lopullinen ratkaisu Lopullisen ratkaisun toteutusyritys Lopullisen ratkaisun oikea toteutus
LisätiedotLuku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi
Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen
LisätiedotTutkittua tietoa. Tutkittua tietoa 1
Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.
LisätiedotSOA & Ajax Sanahelinää vai toimivaa käytäntöä sähköisessä asioinnissa? Fenix hankejohtaja Harri Juuti Projektipäällikkö Teemu Karvonen
SOA & Ajax Sanahelinää vai toimivaa käytäntöä sähköisessä asioinnissa? Fenix hankejohtaja Harri Juuti Projektipäällikkö Teemu Karvonen Agenda Fenix-hankkeen esittely Arkkitehtuuri lyhyesti Kuntalaistili
LisätiedotTehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki
Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,
LisätiedotSoftware engineering
Software engineering Alkuperäinen määritelmä: Naur P., Randell B. (eds.): Software Engineering: A Report on A Conference Sponsored by the NATO Science Committee, NATO, 1968: The establishment and use of
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n
LisätiedotOhjelmistoarkkitehtuurit. Kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet
LisätiedotOhjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista
582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)
LisätiedotTestaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:
Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,
LisätiedotTaulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu
Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on
LisätiedotTIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?
Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää
LisätiedotC++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi
1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,
LisätiedotJärjestelmän alasajon suunnittelu. Kullström Satu
Järjestelmän alasajon suunnittelu Kullström Satu 13.3.2016 Sisältö Yleistä alasajon suunnittelusta Case Fennia 2 Elinkaaren loppu Wikipediassa Ohjelma ei kuole koskaan. Ohjelma voi tulla tarpeettomaksi
LisätiedotKONEAUTOMAATION LAATU JA TURVALLISUUS. 4.6.2015 Marko Varpunen
KONEAUTOMAATION LAATU JA TURVALLISUUS 4.6.2015 Marko Varpunen TLJ ja automaatio Rautatie, metro, teollisuus-laitokset, kaivoskoneet, vesi, n. 90 henkeä Mikkeli Turvallisuusjohtaminen konsultointi riskienarviointi
LisätiedotOhjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento
LisätiedotC++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:
C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (
LisätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
LisätiedotOhjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit Tuoteperheet Tuoterunkoarkkitehtuurit Perinteisessä ohjelmistotuotannossa on keskitytty uusien ohjelmistojen laadukkaaseen tuottamiseen Erikoistuneista ainutlaatuisista vaatimuksista
LisätiedotRefecor Oy. Jyrki Portin. Sensoriverkot Massamarkkinoille Suunnittelun ja valmistuksen haasteita
Refecor Oy Jyrki Portin Sensoriverkot Massamarkkinoille Suunnittelun ja valmistuksen haasteita Esittelyni 11 vuotta suunnittelukokemusta RF, antennit ja radioteknologiat Systeemisuunnittelu Elektroniikka,
LisätiedotMatopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö
Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut
LisätiedotMerlin Systems Oy. Kommunikaatiokartoitus päätöksenteon pohjaksi. Riku Pyrrö, Merlin Systems Oy 8.11.2007
Merlin Systems Oy Kommunikaatiokartoitus päätöksenteon pohjaksi Riku Pyrrö, Merlin Systems Oy 8.11.2007 Merlinin palvelujen toimittaminen ja Asiakasratkaisuyksikön tehtäväkenttä Merlin Asiakasratkaisut
LisätiedotTarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen
Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,
LisätiedotTestauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia
Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia Nina Perta, Senior quality consultant Knowit Oy Elina Varteva, QA Specialist Knowit Oy Copyright Knowit Oy 2014 Nina Perta
LisätiedotSimulointi. Tapahtumapohjainen
Simulointi Tapahtumapohjainen Diskreettiaikainen simulointi 1 Tarkastellaan systeemejä, joissa on äärellisen monta komponenttia. Jokaisella komponentilla äärellisen monta tilaa. Komponentit vaikuttavat
Lisätiedot