Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi.

Koko: px
Aloita esitys sivulta:

Download "Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi."

Transkriptio

1 6. Suunnittelu Suunnittelun tulos Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja. Tavoitteena on kuvata tehtävä ohjelmisto sellaisella tarkkuudella, että sen toteutus on suoraviivaista. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 1 Suunnittelun tuloksena saadaan kuvaukset toteutettavasta ohjelmistosta, sen tarvitsemista ja tuottamista tiedoista, ulkomaailman rajapinnoista ja mahdollisesti käytetyistä algoritmeista. Tulokset kirjataan suunnitteludokumenttiin. Dokumentti on sekä suunnittelun että ylläpidon lähdeteos. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 2 Suunnitteluprosessi Suunnitteluprosessin työvaiheet Requirements analysis Requirements specification Design activities Architectural Abstract Interface Component design specification design design System Software Interface Component architecture specification specification specification Design products Kuvalla osittainen (C) I. Sommerville 2000 Data structure design Data structure specification Algorithm design Algorithm specification Oliopohjainen suunnittelu voidaan jakaa kuuteen osavaiheeseen: 1. Arkkitehtuurisuunnittelu (Architectural design) 2. Abstrakti määrittely (Abstract specification) 3. Rajapintasuunnittelu (Interface design) 4. Komponenttisuunnittelu (Component design) 5. Tietorakennesuunnittelu (Data structure design) 6. Algoritmisuunnittelu (Algorithm design) Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 3 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina Arkkitehtuurisuunnittelu Osajärjestelmät Käytännössä jokainen ohjelma rakentuu osajärjestelmistä, jotka ovat itsenäisiä yhteistyötä tekeviä järjestelmiä. Osajärjestelmiä käytetään erottamaan metsä (koko järjestelmä) puilta (yksittäiset komponentit). Ilman osajärjestelmiä saatava arkkitehtuuri luokkineen olisi niin laaja, että sitä ei voisi hahmottaa kunnolla. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 5 Osajärjestelmä on kokonainen järjestelmä, joka toimii itsenäisesti riippumatta muiden järjestelmien tarjamista palveluista. Osajärjestelmä rakentuu komponenteista ja sisältää rajapinnat muille osajärjestelmille. Osajärjestelmä saattaa rakentua useasta aliosajärjestelmästä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 6 Verkamo, Taina 1

2 Moduulit/komponentit Arkkitehtuurimallit Moduuli on komponentti, joka tarjoaa palveluita muille moduuleille. Moduuli ei ole itsenäinen kuten osajärjestelmä. Se on vahvasti sidottu muihin moduuleihin. Sommerville ei anna selkeitä määritelmiä osajärjestelmälle, moduulille ja komponentille. Jatkossa pidämme moduulia ja komponenttia synonyymeina. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 7 Osajärjestelmät tunnistetaan ja jaotellaan suunnittelun alkuvaiheessa. Apuna käytetään arkkitehtuurimalleja, kuten esimerkiksi seuraavia: Tietovarastomalli (Repository model) Osajärjestelmät erotellaan tehtävien mukaan. Kaikki osajärjestelmät käyttävät tietokantaosajärjestelmää, johon talletetaan yhteiskäytössä oleva tieto. Kukin osajärjestelmä pitää yllä omaa paikallista tietovarastoa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 8 Arkkitehtuurimallit - II Lisää osajärjestelmistä Asiakas-palvelin -arkkitehtuuri (Clientserver architecture) Osa osajärjestelmistä on palvelimia, jotka tarjoavat palveluja. Loput ovat asiakkaita, jotka käyttävät palvelimien tarjoamia palveluita. Abstraktin koneen malli (Abstract machine model) Osajärjestelmät ovat sisäkkäisiä. Jokainen tarjoaa abstraktiotason palveluihin. Mitä alemmalla abstraktiotasolla ollaan, sitä lähempänä ollaan laitteistotasoa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 9 Osajärjestelmien jaottelun täytyy olla sellainen, että sen tehtävällä ja tarjoamilla palveluilla on selvät rajat. Sitä mukaa kun osajärjestelmät tunnistetaan ja suunnitellaan, niiden täytyy toteuttaa seuraavat ehdot: Jokaisella osajärjestelmällä on hyvin määritelty rajapinta, jonka kautta se tarjoaa palveluja muille osajärjestelmille. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 10 Osajärjestelmälle asetetut ehdot Osajärjestelmiä on vain muutama. Osajärjestelmä voidaan osittaa sisäisesti aliosajärjestelmiksi, jos tällainen jaottelu on luonnollinen ja jos muussa tapauksessa osajärjestelmästä tulisi laaja ja vaikeaselkoinen. Osajärjestelmä rakentuu rajapinnan toteuttavista ulkoisista komponenteista ja palvelut toteuttavista sisäisistä komponenteista. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 11 Arkkitehtuurisuunnitelma Arkkitehtuurisuunnittelun tuloksena saadaan arkkitehtuurisuunnitelma. Se kuvaa löydetyt osajärjestelmät, niiden tehtävät, jaottelun moduuleiksi ja osajärjestelmien välisen yhteistyön. Arkkitehtuurisuunnitelma sisältää yleensä joukon kaaviokuvia ja yksityiskohdista kertovat kuvaustekstit Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 12 Verkamo, Taina 2

3 Esimerkkiarkkitehtuuri 6.2 Abstrakti määrittely Radar Transponder Position Backup processor position processor Aircraft simulation Weather map Accounting Kuvalla (C) I. Sommerville 2000 Data comms. Flight plan database Controller info. Comms. processor Aircraft comms. Activity logging Telephone Backup comms. processor Air Traffic Control architecture Controller consoles Löydetyille osajärjestelmille tehdään kuvaus, joka sisältää seuraavat kohdat: osajärjestelmän tehtävä, osajärjestelmän tarjoamat palvelut, osajärjestelmän säännöt ja rajoitukset, osajärjestelmän mahdollinen rinnakkaisuus muiden osajärjestelmien kanssa ja mahdolliset aliosajärjestelmät abstrakteine määrittelyineen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 13 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina Rajapintasuunnittelu Rajapintojen määrittely Rajapintasuunnittelu on ehkä suunnittelun tärkein työvaihe. Siinä jokaisen osajärjestelmän rajapinta muihin osajärjestelmiin suunnitellaan ja dokumentoidaan yksityiskohtaisesti. Osajärjestelmien rajapintojen pitää olla sellaiset, että osajärjestelmän tarjoamia palveluja voidaan käyttää tietämättä niiden toteutuksesta mitään. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 15 Osajärjestelmien rajapintojen määrittelyt tulee tehdä yksiselitteisiksi ja ristiriidattomiksi. Luonnollinen kieli ei moniselitteisyytensä vuoksi riitä rajapintojen määrittelyyn. Ohjelmointikielikään ei välttämättä ole paras tapa määritellä rajapintoja, sillä ohjelmointikieli menee helposti turhan matalalle abstraktiotasolle. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 16 Rajapintaformalismi Rajapinnan määrittelyyn voidaan käyttää jotain formalismia, kuten Sommervillen luvussa 9.2. Toisaalta formalismia tärkeämpää on valittu abstraktiotaso. Kuvauksesta täytyy selvitä tarvittavat tiedot ilman turhia toteutusriippuvia yksityiskohtia. Rajapinnan kuvaus Esimerkiksi seuraava kuvaustapa sopii rajapinnoille: Rajapinnan nimi: Nimi voi kuvata myös yhtä rajapinnan palvelua tai palvelujoukkoa. Yleinen kuvaus: Yleinen kuvaus on vapaamuotoinen selostus rajapinnan tarjoamista palveluista. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 17 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 18 Verkamo, Taina 3

4 Rajapinnan kuvaus - II Rajapinnan kuvaus - III Rajapinnan tarjoamat palvelut. Jokaisesta palvelusta nimi, yleinen kuvaus, sisään otettavat parametrit arvojoukkoineen, ulos annettavat tulokset arvojoukkoineen, poikkeustilanteet, alkuehdot ja loppuehdot. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 19 Sisään otettavat parametrit arvojoukkoineen vastaavat metodin parametreja. Ulos annettavat tulokset arvojoukkoineen vastaavat metodin tulosta. Poikkeustilanteet kertovat, mihin erikoistapauksiin palvelussa varaudutaan. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 20 Rajapinnan kuvaus - IV Alkuehto on jokin ehto, jonka on oltava voimassa ennen kuin palvelua voidaan käyttää. Loppuehto on jokin ehto, joka on voimassa, kun palvelu on suoritettu. Alku- ja loppuehdot eivät ole pakollisia. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 21 Rajapintaesimerkki Nimi: Juuri Kuvaus: Toisen asteen yhtälön ratkaisu. Palvelu Juuri Kuvaus: Toteuttaa rajapinnan Juuri Parametrit sisään: a,b,c : R (reaalilukuja) Parametrit ulos: r 1,r 2 : R (reaalilukuja) Poikkeustilanteet: a = 0 (ei toisen asteen yhtälö) Alku- ja loppuehdot: Ei ole Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 22 Rajapintaesimerkki javalla public interface Juuri { class result { double r1; double r2; // juuret int roots; // juurten määrä }; public result Juuri(double a, double b, double c) throws aiszeroexception; }; Kuvaukset, alku- ja loppuehdot pitää laittaa kommentteina. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina Komponenttisuunnittelu Kun osajärjestelmien rajapinnat on suunniteltu huolellisesti, rajapintojen tarjoamien palveluiden toteutus ei vaikuta rajapintoihin. Rajapinnalle voi olla monta toteutusta ja toteutus voi toteuttaa monta rajapintaa. Komponenttisuunnittelu on osajärjestelmien rajapinnan toteutusta. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 24 Verkamo, Taina 4

5 Komponentit Komponentti ei ole täysin itsenäinen. Se toimii yhteistyössä muiden osajärjestelmän komponenttien kanssa. Jokaisella komponentilla on rajapinta, jonka kautta päästään käsiksi komponentin tarjoamiin palveluihin, ja rajapinta, joka luettelee palvelut, jotka komponentti tarvitsee toimiakseen. Oliot Lopuksi jokainen komponentti rakentuu joukosta yhteistyötä tekeviä olioita, jotka komponenttien tapaan ovat joko sisäisiä tai ulkoisia olioita. Ulkoiset oliot toteuttavat komponentin määrittelemän rajapinnan. Sisäiset oliot tarjoavat palvelut, joita ulkoiset oliot tarvitsevat rajapinnan toteutukseen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 25 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 26 Suunnittelun ja toteutuksen suhde 6.5. Tietorakennesuunnittelu Suunnittelutasolla jaottelu järjestelmäosajärjestelmä-komponentti-olio toimii hyvin. Toteutuksessa osajärjestelmistä alaspäin oliot ovat kaikkien rajapintojen toteuttajina. Suoritettavassa ohjelmistossa on vain olioita ja osajärjestelmiä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 27 Kun järjestelmä on saatu jaettua osajärjestelmiin, komponentteihin ja olioluokkiin, voidaan miettiä kunkin elementin käyttämiä tietorakenteita. Tietorakenteet voivat olla ulkoisia, jolloin niitä käytetään osajärjestelmän sisällä useista komponenteista tai olioluokista, tai ne voivat olla sisäisiä, jolloin ne näkyvät vain tietylle olioluokalle. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina Algoritmisuunnittelu 6.7. Olioiden tunnistus Algoritmisuunnittelu on suunnitteluprosessin viimeinen vaihe. Siinä valituista ei-triviaaleista palveluista tehdään pseudokieliset kuvaukset. Kaikista palveluista ei kannata tehdä kuvauksia, sillä varsinkin sisäisiä palveluita on paljon ja useimmat niistä ovat kohtullisen suoraviivaisia toteutettavia. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 29 Ohjelmiston jako osajärjestelmiin, komponentteihin ja olioihin on hyvä idea, mutta mistä nämä hienot elementit löydetään? Osajärjestelmät löydetään yleensä vaatimusanalyysissa ja viimeistään arkkitehtuurisuunnittelussa. Samat arkkitehtuurit toimivat samantyyppisissä ohjelmistoissa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 30 Verkamo, Taina 5

6 Olioiden tunnistus - II Seuraavat menetelmät sopivat osajärjestelmien, komponenttien ja olioiden tunnistamiseen: Sanalistat (grammatical analysis). Järjestelmän kuvauksista etsitään substantiiveja ja verbejä. Substantiivit ovat luokka-, komponentti- ja osajärjestelmäehdokkaita. Verbit ovat palveluehdokkaita. Olioiden tunnistus - III Konkreettiset ehdokkaat. Järjestelmästä tunnistetaan konkreettisia kohteita (esim. koneita), toimijoita (esim. asiakkaita), tapahtumia (esim. palvelupyyntöjä), yhteistyötä (esim. tapaamisia), paikkoja (esim. toimistoja), organisaatiota (esim. yrityksiä) jne. Näitä käytetään analyysin pohjana. Analyysia täydennetään tietorakenteilla ja algoritmeilla. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 31 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 32 Olioiden tunnistus - IV Toiminnan ymmärrys. Ensin kootaan joukko näkemyksiä tehtävästä ohjelmistosta. Jokainen näkemys sisältää joukon palveluita, jotka tunnistetaan ja sijoitellaan osajärjestelmiin. Lisäksi tunnistetaan järjestelmän toimijat ja toiminnan tulokset. Olioiden tunnistus - V Skenaariolähtöinen analyysi. Jokainen löydetty skenaario analysoidaan. Skenaarion perusteella mietitään tarvittavat osajärjestelmät, komponentit ja luokat, joiden avulla skenaario on toteutettavissa. Skenaarioista eristetyt elementit yhdistetään yhteen koko järjestelmän kuvaukseksi. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 33 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 34 Olioiden tunnistus - VI 6.8. Uudelleenkäyttö Listatut menetelmät antavat raakaelementtejä, jotka on jalostettava lopullisiksi osajärjestelmiksi, komponenteiksi ja luokiksi. Kaikkia menetelmiä käytetään usein samaan aikaan, jolloin yhdessä saadaan kattava kuva järjestelmän komponenteista ja korkean tason olioluokista. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 35 Oliopohjaisten menetelmien aikakaudella ohjelmiston osien uudelleenkäyttö on lisääntynyt huomattavasti. Uudelleenkäyttö säästää suunnittelu- ja toteutuskustannuksia, mutta voi lisätä ylläpitokustannuksia. Muuttuvat vaatimukset vaikuttavat sekä rajapintoihin että toteutukseen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 36 Verkamo, Taina 6

7 Uudelleenkäytön prosessi Komponenttipohjainen suunnittelu Koko suunnitteluprosessi tehdään sellaiseksi, että toteutuksessa voidaan käyttää jo aiemmin suunniteltuja, toteutettuja ja dokumentoituja ohjelman osia; suunnittelussa voidaan eristää osia, jotka voidaan dokumentoida ja tallettaa käytettäväksi muissa projekteissa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 37 Komponenttipohjaisessa suunnittelussa pyritään yhtäältä käyttämään jo olemassaolevia komponentteja ja toisaalta eristämään uusia komponentteja yleiseen käyttöön. Pelkät olioluokat ovat huonoja eristettäviä. Luokat ovat erikoistuneita ja oliot ovat usein vahvasti kytkeytyneitä muihin olioihin. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 38 Komponentit uudelleenkäytössä Komponenttien tarjoamat palvelut Komponentti on abstraktimpi käsite kuin olio(luokka). Komponentti kapseloi yhden tai useamman yhteistyössä olevan olioluokan kokonaisuudeksi. Komponentti sopii hyvin uudelleenkäyttöön. Olioa korkeamman abstraktiotason käsitteenä se on toteutusriippumatomampi ja itsenäisempi kuin olio. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 39 Komponentit tarjoavat palveluja rajapintansa kautta. Palveluiden toteutus, käytetty ohjelmointikieli ja jopa suoritusalusta eivät näy palvelupyynnön esittäjälle. Komponenttien koko ja kompleksisuus voivat vaihdella yksinkertaisista funktioista täydellisiin järjestelmiin, kuten tietokannan hallintajärjestelmä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 40 Komponentin rajapinnat Komponentin rakenne Komponentilla on kaksi rajapintaa, sisään ja ulos: Komponentti tarjoaa rajapinnan, joka määrittelee komponentin tarjoamat palvelut. Komponentti tarvitsee rajapinnan, joka kuvaa järjestelmältä vaadittavat palvelut. Kuvalla (C) I. Sommerville 2000 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 41 Requires interface Component Provides interface Sommervillen mukaan komponentin lähdekoodi ei ole saatavilla - komponentti on määritelty rajapintansa mukaan. Todellisuudessa vain jotkut valmiina ostetut komponentit ovat vailla lähdekoodia. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 42 Verkamo, Taina 7

8 Ohjelmistojen tuoteperheet Esimerkkituoteperheitä Ohjelmistojen tuoteperhe (software product family) on joukko tuotteita, joilla on jokin suunnittelua helpottava yhteys. Tuoteperheen jäsenet voivat toteuttaa ohjelmistot, joilla on samankaltainen käyttöliittymä ja ulkonäkö (look and feel), saman ohjelmiston eri alustoille, saman ohjelmiston eri ulkoisille liittymille tai ohjelmistot, joilla on yhteinen ydin. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 43 Esimerkiksi seuraavat ovat ohjelmistojen tuoteperheitä: Microsoft Office (yhteinen ydin) Nokian kännyköiden käyttöohjelmistot (yhteinen ydin ja käyttöliittymä) Halo (videopeli) (sama ohjelmisto eri alustoille) ja ohjelmoitavien logiikoiden tuoteperheet (sama ohjelmisto eri ulkoisille liittymille) Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 44 Tuoteperheen edut Tuoteperheen tunnistaminen ja käyttö helpottaa vaatimusanalyysiä. Yhteisistä piirteistä seuraa yhteisiä vaatimuksia. suunnittelua. Yhteiset osat voidaan suunnitella kerralla. Vain sovellusriippuvat osat joudutaan suunnittelemaan erikseen. testausta. Testaus voidaan yhtenäistää ja yksinkertaistaa käyttämällä samoja testitapauksia sovellusten välillä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 45 Tuoteperheen haitat Toisaalta tuoteperheet vaikeuttavat vaatimusanalyysia. Aina ei ole selvää, mitkä tuotteet kuuluvat tuoteperheeseen. suunnittelua. Jotta tuoteperheestä on etua, perheen yhteiset osat on tunnistettava, rajapinnoista on tehtävä sellaiset, että tuoteperheen tuotteet voidaan toteuttaa ja ytimen toimintojen on sovittava kaikille tuotteille testausta. Hallintatyötä tulee lisää. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 46 Hyvä tuoteperhe Hyvän tuoteperheen edut ovat selvästi vahvemmat kuin haitat. Hyvä tuoteperhe: perheen tuotteilla on niin paljon yhteistä, että yhteisistä osista saatava säästö voittaa haitoista syntyvät kustannukset. Tuoteperheen suunnittelussa on oltava tarkkana, että ei yritetä tehdä tuoteperhettä tuotteista, joilla ei ole tarpeeksi yhteistä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 47 Tuoteperheen suunnittelu Tuoteperhe suunnitellaan vaiheittain: Ensin tunnistetaan ja suunnitellaan tuoteperheen yhteinen osa (ydin). Jatkossa tuotteita lisätään perheeseen yksitellen. Jokaisen tuotteen kohdalla tarkistetaan, että tuote voi käyttää tunnistettua ydintä. Riittää, että lisättävä tuote käyttää osaa ytimestä, jos ytimen käyttämättömät osat eivät häiritse sovelluskohtaisia osia. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 48 Verkamo, Taina 8

9 Suunnittelumallit Valmiiden komponenttien käyttö suunnittelussa onnistuu silloin, kun sopivia komponentteja on saatavilla. Vaikka komponentit olisi suunniteltava ja toteutettava itse, suunnittelussa voidaan käyttää hyväksi hyväksi havaittuja suunnitteluperiaatteita. Suunnittelumallit - II Hyväksi havaittuja suunnitteluperiaatteita kutsutaan suunnittelumalleiksi (design patterns). Suunnittelumallit lähtevät ajatuksesta, että samat perusrakenteet toistuvat oliopohjaisessa suunnittelussa jatkuvasti. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 49 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 50 Suunnittelumallit - III Malli tarjoaa nimensä mukaisesti hyväksi havaitun menetelmän ratkaista tunnettu suunnitteluongelma. Ratkaisu on yleensä esitetty sellaisella abstraktiotasolla, että sen perusteella voidaan tehdä sopivia toteutuksia erilaisiin sovelluksiin ja ympäristöihin. Suunnittelumallien edut ja haitat Vaikeinta suunnittelumalleissa on tunnistaa oikea malli oikeaan tehtävään. Yleisimmät mallit tulevat kuitenkin hyvin nopeasti tutuiksi ja käyttökelpoisiksi. Mallien hallinta ja käyttö helpottaa huomattavasti hyvien oliopohjaisten ratkaisujen suunnittelua. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 51 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 52 Suunnittelumallin rakenne Suunnittelumallin rakenne - II Suunnittelumallin kuvaus sisältää seuraavat osat: Mallin nimi Nimi on mallia kuvaava tunniste suunnittelumallille. Kuvaus Kuvaus selittää, mikä on mallin tehtävä ja miten malli toimii. Mallin nimi ja kuvaus yhdessä kertovat suunnittelijalle, onko mallille käyttöä suunnitelmassa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 53 Ongelmakuvaus Ongelmakuvaus selittää ongelmakentän, mihin malli tuo ratkaisun. Ratkaisukuvaus Ratkaisukuvaus selittää ratkaisussa tarvittavat osat, niiden tehtävät ja osien väliset suhteet. Ratkaisukuvaus astetta abstraktimmalla tasolla kuin yksityiskohtainen kieliriippuva toteutus. Seuraukset Seurauksissa kuvataan mallin käytön seuraukset ja mahdolliset sivuvaikutukset. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 54 Verkamo, Taina 9

10 Suunnittelumalliesimerkki Esimerkkinä suunnittelumalleista esitän Observer-suunnittelumallin (tarkkailija? no miten vaan). Observer-mallia käytetään, kun olion tilasta tarvitaan useita erilaisia esityksiä. Malli erottaa esitettävän olion esityksen toteuttavista olioista. Obsever-mallin avulla voidaan esimerkiksi kuvata samaa tietoa taulukkona, piirakkana tai käyränä. Kun tieto muuttuu, muutokset näkyvät automaattisesti kaikissa Observermallilla toteutetuissa tiedon esitysnäkymissä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 55 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 56 Suunnittelumalliesimerkki (jatkuu) C D B A Subject A B C D 0 Observer 1 A: 40 B: 25 C: 15 D: 20 Observer 2 Kuvalla (C) I. Sommerville 2000 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina Suunnittelumalli Observer Nimi Observer Kuvaus Eristää olion tilan esityksen itse oliosta Ongelmakuvaus Observer ratkaisee tilanteen, missä samasta oliosta tarvitaan automaattisesti muuttuvia erilaisia näkymiä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 58 Suunnittelumalli Observer - II Ratkaisukuvaus Observer Ratkaisukuvaus Seuraavalla kalvolla UML:lla. Seuraukset Tilan esitysten optimointi on epäkäytännöllistä. Subject Attach (Observer) Detach (Observer) Notify () for all o in observers o -> Update () Observer Update () ConcreteSubject ConcreteObserver GetState () subjectstate return subjectstate Update () observerstate observerstate = subject -> GetState () Kuvalla (C) I. Sommerville 2000 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 59 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 60 Verkamo, Taina 10

6. Suunnittelu. Suunnittelun tulos

6. Suunnittelu. Suunnittelun tulos 6. Suunnittelu Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja. Tavoitteena on

Lisätiedot

Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu.

Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu. 6. Suunnittelu Suunnittelun tulos Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja.

Lisätiedot

6. Suunnittelu. Suunnitteluprosessi

6. Suunnittelu. Suunnitteluprosessi 6. Suunnittelu Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja. Tavoitteena on

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen 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ätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe 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ätiedot

5. Järjestelmämallit. Mallinnus

5. Järjestelmämallit. Mallinnus 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

1. Johdanto. Ohjelmistotuotannon ongelmia

1. Johdanto. Ohjelmistotuotannon ongelmia 1. Johdanto Mitä ohjelmistotuotanto on? ohjelmointi + ohjelmisto + tekniikat + insinööritaito + kurinalainen työskentely Määritelmä (60-luvun ohjelmistokriisi): The establishment and use of sound principles

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmiston toteutussuunnitelma

Ohjelmiston toteutussuunnitelma Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,

Lisätiedot

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Suunnittelumalleja, MVC. Juha Järvensivu 2008 Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1 Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Rutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit

Rutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit 2. Rutiinin muodostaminen Rutiinin muodostaminen roolit 1. Rutiinin määrittely 2. Sopimuspohjainen ohjelmointi 3. Määrittelyjen kirjoittaminen 4. Erikoistilanteiden hallinta analysointi luokat rutiinit

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State 2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako 2. Ohjelmistotuotantoprosessi peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen 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ätiedot

Tietojärjestelmän osat

Tietojä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ätiedot

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

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Graafisen 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ätiedot

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä 1. Johdanto Termi Ohjelmistotuotanto (Software Engineering) esiteltiin ensimmäistä kertaa 1968 pidetyssä NATO:n konferenssissa. Termi määriteltiin näin: The establishment and use of sound engineering principles

Lisätiedot

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1. Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkä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ätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit 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ätiedot

9. Muunneltavuuden hallinta

9. Muunneltavuuden hallinta 9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden

Lisätiedot

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi Pietu Pohjalainen Geneerinen metaohjelmointi Syksy 2004 Tietojenkäsittelytieteen laitos Helsingin yliopisto Esityksen sisältö Oliopohjaiset

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä 1. Johdanto Termi Ohjelmistotuotanto (Software Engineering) esiteltiin ensimmäistä kertaa 1968 pidetyssä NATO:n konferenssissa. Termi määriteltiin näin: The establishment and use of sound engineering principles

Lisätiedot

1. Olio-ohjelmointi 1.1

1. 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ätiedot

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa 1 Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa Passion leads to design, design leads to performance, performance leads to SUCCESS! OLLI NIEMI Yoso Oy Mitä määrittelyltä

Lisätiedot

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta 1. Johdanto Termi Ohjelmistotuotanto (Software Engineering) esiteltiin ensimmäistä kertaa 1968 pidetyssä NATO:n konferenssissa. Termi määriteltiin näin: The establishment and use of sound engineering principles

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: 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ätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/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ätiedot

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit. Syksy 2010 Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin

Lisätiedot

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta 1. Johdanto Termi Ohjelmistotuotanto (Software Engineering) esiteltiin ensimmäistä kertaa 1968 pidetyssä NATO:n konferenssissa. Termi määriteltiin näin: The establishment and use of sound engineering principles

Lisätiedot

Suunnittelumallien käyttö ohjelmistosuunnittelussa

Suunnittelumallien käyttö ohjelmistosuunnittelussa Suunnittelumallien käyttö ohjelmistosuunnittelussa Mika Rantakeisu Rovaniemen ammattikorkeakoulu Avoin ammattikorkeakoulu mika.rantakeisu@edu.ramk.fi Tiivistelmä Tämä on selvitys suunnittelumallien käytöstä

Lisätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

Lisätiedot

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

Lisätiedot

T Henkilökohtainen harjoitus: FASTAXON

T 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ätiedot

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistoprojektien hallinta Vaihejakomallit Ohjelmistoprojektien hallinta Vaihejakomallit Vaihejakomallit TAVOITE: YMMÄRTÄÄ eri vaihejakomallien etujajahaittoja 2 Erilaisia malleja Tee ja korjaa (Code-and-Fix) Vesiputousmalli (Waterfall) Vesiputousmalli

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen 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ätiedot

Palveluperustaiset arkkitehtuurityylit

Palveluperustaiset arkkitehtuurityylit Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Kä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ätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkö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ätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

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

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3 Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2

Lisätiedot

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-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ätiedot

3. Komponentit ja rajapinnat

3. Komponentit ja rajapinnat 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ätiedot

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli T-76.611 Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli Lasse Lindqvist Lasse Lopperi llindqvi@cc.hut.fi lmlopper@cc.hut.fi Andrey Rusanovich

Lisätiedot

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit 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ätiedot

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PULSU Syksy 2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Heikki Manninen Noora Joensuu

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä:

Lisätiedot

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Syksy 2008 Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen

Lisätiedot

Ohjelmistotekniikan menetelmät, suunnittelumalleja

Ohjelmistotekniikan menetelmät, suunnittelumalleja 582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman

Lisätiedot

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. 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ätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

Ohjelmistotuotanto. Luento 9 23.4.2012

Ohjelmistotuotanto. Luento 9 23.4.2012 Ohjelmistotuotanto Luento 9 23.4.2012 Lisää suunnittelumalleja Olion rikastaminen dekoraattorilla Joskus eteen tulee tarve lisätä olioon jotain ekstraominaisuuksia, pitäen kuitenkin olio sellaisena että

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM 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ätiedot

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Tarjolla 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ätiedot

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman arkkitehtuurista. 1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

UML- mallinnus: Tilakaavio

UML- mallinnus: Tilakaavio UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista

Lisätiedot

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

12. Kehysarkkitehtuurit

12. Kehysarkkitehtuurit 12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto

Lisätiedot

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien

Lisätiedot

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

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

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä. 25.1.2010 Palaverin kysymyksien selvittelymuistio Mitä ominaisuuksia halutaan? Sopivat ajat sprinttien jälkeisiin demoihin/palavereihin. - mitkä ajat sopivat? Pekka : pe 12-16 Tommi : pe 8-16 Onko ohjelmointikielen

Lisätiedot

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä 1. Johdanto Termi Ohjelmistotuotanto (Software Engineering) esiteltiin ensimmäistä kertaa 1968 pidetyssä NATO:n konferenssissa. Termi määriteltiin näin: The establishment and use of sound engineering principles

Lisätiedot

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet 4. Vaatimusanalyysi Laadukkaiden ohjelmistojen tuottaminen ei ole helppo tehtävä. Sen lisäksi, että ohjelman täytyy toimia virheettömästi, sen täytyy täyttää sille asetetut implisiittiset ja eksplisiittiset

Lisätiedot

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset

Ohjelmistotuotanto, vaatimusanalyysi Syksy Vaatimusanalyysi. Implisiittiset vaatimukset. Eksplisiittiset vaatimukset 4. Vaatimusanalyysi Implisiittiset vaatimukset Laadukkaiden ohjelmistojen tuottaminen ei ole helppo tehtävä. Jos se olisi helppoa, kaikki tekisivät laadukkaita ja edullisia ohjelmia. Sen lisäksi, että

Lisätiedot

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Olioiden väliset yhteydet Yhteyden nimi Nimen lukusuunta pankkitili 0..10 Omistaja-> 1..3 asiakas

Lisätiedot

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Malliperustainen 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ätiedot

Tapahtuipa Testaajalle...

Tapahtuipa 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ätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Sopimuspohjainen olio-ohjelmointi

Sopimuspohjainen olio-ohjelmointi Sopimuspohjainen olio-ohjelmointi Jouni Smed Kevät 2007 Yleistä Laajuus: 5 op. (3 ov.) Esitiedot: Olio-ohjelmoinnin perusteet (tai ent. Ohjelmointi I) Ilmoittautuminen: https://www.it.utu.fi/kurssi-ilmo/

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot