Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik
|
|
- Matilda Hakala
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Arkkitehdin arkipäivää Sandvikilla Janne Viitala Sandvik
2 Motivaatio Arkkitehtuureilla on väliä Aamulehti, pääkirjoitus (2013): Avoin väylämalli myös Suomeen Viron potilastietojärjestelmä pohjautuu Enterprise Service Bus arkkitehtuurimalliin. Viro: 10M Suomi: 1800M Service Bus
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ö
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ä. Tai jos vastaavat niin kyse on puhtaasta sattumasta. Tuskin tulee tentiin.
5 Kuka? DI TTY 1995, koneelta D-työnä mobilerobotin ohjausjärjestelmän koodaus ja mallipohjainen teleoperointi Microteam Oy ~10v Sandvik ~10v INT count: SEQ count := 0 CHAN OF INT chn: PAR WHILE TRUE SEQ count := count + 1 chn! count WHILE TRUE INT v: SEQ chn? v dostuff (v)
6 Mikä Sandvik? Lyhyt intro
7 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
8 Sandvik/Tamrock Historia Tampella 1856 Tamperelaista konepajaperinnettä Paineilmaporakoneita 50-luvulta Tampellan Porakoneyksikkö ==> Tamrock (1969) Myllypuroon -70 luvun alussa Hydrauliset poralaitteet -70 luvulla Tamrock ==> Sandvik (1997) Sandvik Mining, Sandvik Construction
9 Tuotteita Sandvik Mining ja Sandvik Construction
10 Ohjelmistot Sandvikilla Esimerkkejä Koneen ohjausjärjestelmät 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, ) SICA-platform koneenpäällisille ohjausjärjestelmille Desktop: Porakaavioiden luonti, poraus datan analysointi ja visualisointi, kaivoksen 3d-mallinnus, r&d työkalut Palvelinsovellukset: Tiedonkeruu ja raportointi Tabletti ja älypuhelinsovellukset Etäoperointi.
11 SW-arkkitehdin työstä Case Sandvik
12 Arkkitehti? Tässä esityksessä käytetty 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 Raja on veteen piirretty viiva
13 Arkkitehdin työ Yleiskatsaus 1)Suunnittelee ohjelmiston rakenteen tietyllä tasolla 2)Dokumentoi suunnitelman riittävällä tarkkuudella Abstraktio järjestelmästä 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, ) Voi olla myös iteratiivinen prosessi. Voi olla myös jaettu vastuu, esim. teamin kesken.
14 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!
15 SW osaaminen Mitä se on Vahva koodaustaito & -kokemus käytetyillä kielillä Arkkitehdin tulee osata koodata! Tärkeää koska: devil is in the details Käytettyjen kirjastojen, alustojen, työkalujen yms. tuntemus Oliomenetelmät, UML, yleiset patternit (GoF), Kyky dokumentoida ja kommunikoida Arkkitehdin tulisi nähdä ja pystyä esittämään miten periaatteessa mikä tahansa toiminto järjestelmässä toteutetaan - show me the code
16 SW osaaminen UML, oliomenetelmät, jne Kahvinkeitin 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 Command-patternia käyttäen ).
17 Sovellusalue (=Domain) osaaminen Mitä se on? Käytännön kokemusta kyseiseltä sovellusalueelta Tyypillisiä vaatimuksia etenkin ei-toiminnallisia Tyypillisiä ongelmia Tyypillisiä toimivia ratkaisuita ja myös tyypillisiä ei-toimivia (=sudenkuoppia) Tärkeää koska Vaatimukset eivät koskaan kerro kaikkea! Etenkään ei-toiminnalliset (jotka ovat arkkitehtuurin kannalta aivan keskeisiä!). Siksi ne tarvii haistaa. Muutoksiin varautuminen Vaikka vaatimukset kertoisivatkin kaiken, tulee tietää mikä toimii ja mikä ei (ja miksi).
18 Sovellusalue osaaminen Miten kartuttaa? Tekemällä oppii! Alakohtaisia pattern-kataloogeja, esim. TTY:n koneenohjauspatternikirja Designing Distributed Control Systems - a Pattern Language Approach
19 Sovellusalueosaaminen Esimerkki Suunnittele yleiskäyttöinen työkoneen hälytysjärjestelmä Mistä asioista tehdään hälytyksiä? Millon? 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
20 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
21 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
22 Antipatternit Lyhyt intro viisas oppii toisten virheistä omiensa sijaan Huonoja toteutus- tai toimintamalleja Voivat liittyä sw-rakenteeseen, mutta usein myös 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
23 Norsunluutorni-arkkitehtuuri Antipattern 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
24 Overengineering Antipattern 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 << std::endl; } Tai sitten...
25 Behold, the Celestial Object Greeter Framework ( ) Yleiskäyttöinen sovelluskehys taivaankappaleiden tervehtimiseen Laajennettavissa ja kustomoitavissa sovelluskohtaisilla taivaankappaleilla ja tervehdyksillä. Oliopohjainen ja kaikin puolin hieno
26 COGFrameWork +setcelestialobjectfactory (ICOFactory) +setgreetingfactory (ICOFactory) +greetcelestialobject () Common Framework CelestialObject +name (): string -printname (); Greeter +greet (): string -printgreeting (); IGreeterFactory +createcelestialobject (): CelestialObject ICelectialObjectFactory +createcelestialobject (): CelestialObject World HelloSayer HelloSayerFactory WorldFactory Greeter and object specific extensions <<create>> <<create>> Application Application
27 #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 (); }
28 Overengineering Seurauksia Monimutkaisuus kasvattaa monimutkaisuutta, esim COGFW : Puuttuu virhetarkistuksia ja pitää suunnitella miten virhetilanteet hallitaan Muistinhallinnassa bugeja Yksikkötestit? Koodimäärä == Konfigurointimäärä > kovakoodauksen määrä jonka se korvaa (esim. 'muuta ohjelma tulostamaan terve Mars ')
29 Over- vs underengineering Missä menee kultainen keskitie? Overengineering = Tarpeettoman monimutkainen rakenne, "excessive future-proofing" Underengineering = spagettikoodi nopea kirjoittaa tiettyyn koko-/monimutkaisuustasoon asti, ylläpito usein työlästä Mikä on oikea suunnittelun taso? Ei ole mitään kultaista keskitietä eikä Yhtä Oikeaa Tapaa Oikea taso riippuu ei-toiminnallisista vaatimuksista, ne taas heijastavat business-vaatimuksista. GUI prototyyppi? Kertakäyttöprojekti? Platform 20v elinkaarella? Aikataulu? Budjetti? Käytössä olevat resurssit (suunnittelu, kehitys, testaus)? jne
30 Virheelliset abstraktiot Suunnitteluongelmana Muutospyyntö: 'muuta COGFW pohjainen ohjelma tulostamaan terve Belgia ' ==> taivaankappale nimeltä Belgia! T.s. Valittu väärä abstraktio, mikä haittaa ymmärrettävyyttä, uudelleenkäyttöä ja ylläpitoa. Tyyppillinen seuraus puutteellisesta domain-osaamisesta. Myös liian korkea abstraktiotaso hämärtää koodin tarkoitusta esim. COGFW yleistäminen edelleen; framework joka tekee juttuja asioille
31 Muita yleisiä antipatterneita Organisaatioon/toimintaan liittyviä: Analysis Paralyzis (ei domain osaamista) Design by Committee ( unifying vision...) GodClass Koodin rakenteeseen liittyviä: God class Fat interface Kirjallisuutta on, kannattaa tutustua.
32 [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 muitten tekemä koodi ei kerta kaikkiaan voi toimia. Korjataan toimiva valmis ratkaisu rikkinäiseksi samasta syystä
33 Arkkitehtuurin dokumennista
34 Arkkitehtuurin dokumentointi Tarpeita ja haasteita Tarvittava taso riippuu täysin sidosryhmistä! Esim: Pieni kokenut teami samassa projektihuoneessa ==> kevyt tai olematon Offshoring ==> raskas ja yksityiskohtainen dokumentaatio, tarkka seuranta aina ei mikään riitä! Pitkä elinkaari edellyttää parempaa dokumentaatiota koska joku muu tulee kuitenkin ylläpitämään softaa.
35 Arkkitehtuurin dokumentointi Mitä dokumentoidaan? Koodi dokumentoi arkkitehtuuria Doxygen sun muut hyviä työkaluja. Pelkät UML-kaaviot 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, bugeja, työläs ylläpito Yksi lähestymistapa on dokumentoida nimenomaan arkkitehtuuripäätökset ja niiden perustelut.
36 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 tai vaikka ilmankin - toimii Joustava Ongelma: kuvan ja todellisuuden vastaavuus; ristiriitaisuudet dokumentaatiossa
37 Arkkitehtuurin dokumentointi Design Patternit 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ä Ajoalustan GUI-toiminnot piilotetaan Bridge:n taakse ==> portattavuus vissiin tärkeää Mona Lisa
38 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 komponentin 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,...
39 Arkkitehtuurin kommunikointi
40 Arkkitehtuurin kommunikointi Mitä ja miten? Kuten dokumentaatiossa, taso riippuu täysin ihmisistä ja organisaatiosta Kokenut teami projektihuoneessa, tai yhden hengen projekti kaikki muutenkin tietää mitä ollaan tekemässä vs Iso offshore alihankkija projekti mahdoton tehtävä? Keinoja: Dokumenttien läpikäynti, koulutus, osallistuminen tekemiseen, katselmoinnit (tällöin tosin on jo vähän myöhäistä), Jälleen: Design Patternit
41 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) Sidosryhmien henkinen välimatka Kompetenssi (esim. maallikot) Aiempi kokemus (=oletukset) Asenne, kulttuurierot Usein vaikea arvioida miten onnistuttu kommunikoimaan.
42 Nyrkkisääntöjä
43 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 Homma on 80% valmis 80% ajasta HUOM: nyrkkisääntö on vain nyrkkisääntö
44
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: Avoin väylämalli myös Suomeen Viron potilastietojärjestelmä pohjautuu Enterprise
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ä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ä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ä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ä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ä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ä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ätiedotTUOTTAVUUTTA LOUHINTAAN PROSESSIN TUKIOMINAISUUKSILLA
TUOTTAVUUTTA LOUHINTAAN PROSESSIN TUKIOMINAISUUKSILLA Tuomo Pirinen Sandvik Mining and Rock Technology 1 Louhinta- ja kalliotekniikan päivät 13.10.2016 DRILLER S OFFICE PORAUKSEN SUUNNITTELUUN JA SEURANTAAN
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ä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ä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ä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ä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ä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ä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ä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ätiedotTakki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010. 3.
Takki Nyt se sopii, tai sitten ei Jussi Vänskä Espotel Oy vierailuluentosarja OTM kurssi 2010 3. luento: tuote Lisää ot sik k o osoit t am alla Jussi Vänskä OTM kevät 2010 Tuote Mitä tuote voi olla? Tuote
Lisätiedot7. Tuoterunkoarkkitehtuurit
7. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen Kerrostyyli tuoterunkoarkkitehtuureille Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö opportunistinen:
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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ätiedotTapahtuipa Testaajalle...
Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman
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ätiedotOhjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1 Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2 Tiedonvälitys
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ä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ä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ä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ätiedot12. Kehysarkkitehtuurit
12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto
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ätiedotOhjelmistoarkkitehtuurit Kevät käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2014 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto
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ätiedotDIGITALISAATIO LOUHINNAN DIGITALISAATIO KIVIAINESTUOTANNOSSA Digitaalisen tietotekniikan yleistyminen arkielämän toiminnoissa [Wikipedia]
LOUHINNAN DIGITALISAATIO KIVIAINESTUOTANNOSSA Kiviaines- ja murskauspäivät 19.1.2018 Tuomo Pirinen Sandvik Mining and Rock Technology tuomo.pirinen@sandvik.com DIGITALISAATIO Digitaalisen tietotekniikan
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ätiedotOhjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit Tuoteperheet Tuoterunkoarkkitehtuurit Perinteisessä ohjelmistotuotannossa on keskitytty uusien ohjelmistojen laadukkaaseen tuottamiseen Erikoistuneista ainutlaatuisista vaatimuksista
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ätiedotTeliaSonera Identity and Access Management
TeliaSonera Identity and Access Management 22.10.2009 EMC Forum Juha Arjoranta 1 TeliaSonera Identity and Access Management Alustus käyttövaltuushallintaan IAM kokonaisratkaisun elementit Nykytilaa ja
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ä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ä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ä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ätiedotTämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:
Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus
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ä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ä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ätiedotTehtävä 1. TL5302 Olio-ohjelmointi Koe Malliratkaisuja. Tässä sekä a)- että b)-kohdan toimiva ratkaisu:
TL5302 Olio-ohjelmointi Koe 19.4.2005 Malliratkaisuja Tehtävä 1 Tässä sekä a)- että b)-kohdan toimiva ratkaisu: #include using namespace std; int main() int taul[5]=1,2,3,4,5; int *p,&r=taul[0];
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ätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
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ä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ä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ätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä
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ätiedotTest-Driven Development
Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia
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ä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ätiedotKäyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
LisätiedotUML:n yleiskatsaus. UML:n osat:
UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän
LisätiedotIIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)
IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI S2009 - K2010 http://homes.jamk.fi/~huojo/opetus/iio30100/ TAVOITTEENA ON, ETTÄ OPISKELIJA: Ymmärtää käsitteellisen mallintamisen
LisätiedotKoodimalli Code Model
Koodimalli Code Model Luento 6 10.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Koodimalli Arkkitehtuurisuunnittelun ja implementaation välinen kuilu ja sen hallitseminen Arkkitehtuuria
LisätiedotOleelliset vaikeudet OT:ssa 1/2
Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet
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ätiedotCase: Isoisänsilta. Ville Alajoki / Aki Kopra
Isoisänsilta Case: Isoisänsilta Ville Alajoki / Aki Kopra 15.2.2017 2 Sovellettuna hankintaan - tiedonvaihtoa Suunnittelu Havainnollisuus Tarkastaminen Malli + piirustuksia Urakkatarjous Malli Määrät laskettu
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ätiedotTest-Driven Development
Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole
LisätiedotMalliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki
Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,
LisätiedotScrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.
Scrum is Not Enough Scrum ei riitä Ari Tanninen & Marko Taipale Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.2009 Ari Tanninen Vanhempi ohjelmistoinsinööri Marko Taipale Teknologiajohtaja,
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ätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
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ä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ä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ä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ätiedotT Henkilökohtainen harjoitus: FASTAXON
T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä
LisätiedotTietojärjestelmän osat
Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto
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ätiedotTyökalut innovoinnin tehostamiseen valmiina käyttöösi. Microsoft SharePoint ja Project Server valmiina vastaamaan organisaatioiden haasteisiin
Työkalut innovoinnin tehostamiseen valmiina käyttöösi Microsoft SharePoint ja Project Server valmiina vastaamaan organisaatioiden haasteisiin Terve! Pieni, nopea kysely kiitos! Lyhyt katsaus osallistujiin
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ätiedotProjektin suunnittelu
Projektin suunnittelu Sami Kollanus TJTA330 Ohjelmistotuotanto 15.3. Projektin suunnittelu - CMMIkäytänteet Projektin estimaatit: Määritellään projektin laajuus (scope) Määritellään tehtävien ja tuotosten
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
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ätiedotLiikkuvien työkoneiden etäseuranta
Liikkuvien työkoneiden etäseuranta TAMK IoT Seminaari 14.4.2016 2 1) IoT liiketoiminnan tukena 2) Iot ja liikkuvat työkoneet 3) Case esimerkit 4) Yhteenveto, johtopäätökset, tulevaisuuden näkymät Cinia
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ätiedotProjektisuunnitelma. Radio-ohjattavan pienoismallin mekatroniikan ja ohjelmiston kehitys
1 Radio-ohjattavan pienoismallin mekatroniikan ja ohjelmiston kehitys Muutoshistoria Versionumero Pvm Selitys Tekijä(t) 0.1 18.9.2012 Otso Saarentaus 2 Sisällysluettelo 1 PROJEKTIN SISÄLTÖ... 3 1.1 TAUSTA......3
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ätiedotOhjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
Lisätiedot10. Tuoterunkoarkkitehtuurit
10. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen: liiketoiminta, organisaatio, prosessi, tekninen Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö
LisätiedotProjektin tavoitteet
VBE II, vaihe 1: 2005-2006 Data yrityksistä ja rakennushankkeista TUT Tekniset ratkaisut RAK (VRLab)+ARK iroom validointi Työpajat Seminaarit Esitelmät Osallistuvat yritykset VTT Käyttöönotto- ja hyötymallit,
LisätiedotOnnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt
Lisätiedot