TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique
|
|
- Tiina Ranta
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 TEKNINEN MÄÄRITTELY PROJEKTITYÖ Tik
2 SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria JOHDANTO Tarkoitus ja kattavuus Tuote ja ympäristö Määritelmät, merkintätavat ja lyhenteet Viitteet Yleiskatsaus dokumenttiin JÄRJESTELMÄN YLEISKUVAUS Sovellusalueen kuvaus Järjestelmän liittyminen ympäristöönsä Laitteistoympäristö(n kuvaus) Ohjelmistoympäristö(n kuvaus) Toteutuksen keskeiset reunaehdot Sopimukset ja standardit ARKKITEHTUURIN KUVAUS Ratkaisun "filosofia" (suunnitteluperiaatteet) Tietokanta-arkkitehtuuri Ohjelmistoarkkitehtuuri, moduulit ja prosessit MODUULI (JA PROSESSI) KUVAUKSET Kustakin moduulista (ja prosessista) kuvataan WC Rajapinta Toteutus Virhekäsittely MUUT ERITYISET TEKNISET RATKAISUT HYLÄTYT RATKAISuVAIHTOEHDOT VIRHEKÄSITTELY VERSIOHISTORIA Versio Päivämäärä Laatija Kuvaus JDu Ensimmäinen versio.
3 TEKNINEN MÄÄRITTELY 3 (7) 1. JOHDANTO Tässä dokumentissa kerrotaan kuinka tekninen osuus projektityöstä on tehty. 1.1 Tarkoitus ja kattavuus 1.2 Tuote ja ympäristö Tekninen osuus pitää sisällään -ohjelman rakenteellisen selvityksen ja kuinka sen osat toimivat ja kommunikoivat eri moduulien kesken. Dokumentti on tarkoitettu projektin tekijöille sekä henkilöille jotka ovat kiinnostuneet ohjelman toiminnasta. Tuote joka tässä projektissa tehdään on -ohjelma, mikä toimii Unix ja Linux ympäristössä. 1.3 Määritelmät, merkintätavat ja lyhenteet : Projektityön kohde. Ohjelma jonka tarkoituksena on etsiä haluttuja ominaisuuksia annetuista graafeista. Ohjelma kirjoitetaan isolla jos ohjelmasta puhutaan yleisesti tai viitataan projektityön nimeen. Kun varsinainen ohjelma koodataan, puhutaan wcliquesta pienellä alkukirjaimella. Tällöin tarkoitetaan ohjelman käynnistystiedostoa. Graafi: Useissa yhteyksissä tarkastellaan joukkoa solmuja tai tiloja, joista joko on tai ei ole mahdollista siirtyä välittömästi toinen toisiinsa. Tyypillisiä esimerkkejä tällaisista ovat kartta, johon on merkitty kaupunkeja, sekä näiden väliset suorat liikenneyhteydet, tietokoneohjelman kulkua kuvaava vuokaavio ja sukupuut. Graafi, eli verkko G = ( V, E ) muodostuu äärellisistä joukoista V ja E, joista V on ns. solmujen joukko (solmuista käytetään myös joissain yhteyksissä nimityksiä kärki tai piste), ja E on sivujen joukko (käytössä myös nimitykset kaari ja haara). Algoritmi: Algoritmilla voidaan ratkaista olemassa olevasta graafista asioita, joista ollaan kiinnostuneita. Algoritmi jonka ympärille ohjelma rakennetaan on julkinen. Algoritmin toimintaa on kuvattu Internetissä seuraavissa dokumenteissa: "A Fast Algorithm for the Maximum Clique Problem" ~ pat/paper1.ps "A New Algorithm for the Maximum-Weight Clique Problem" ~ pat/paper2.ps Klikki: Klikki tarkoittaa yhteyttä usean solmun välillä Ansi c: Ohjelmointikieli, jolla ohjelma toteutetaan UML: "Unified Modeling Language" on ohjelmistotuotekehityksen standardikuvaamismenetelmä.
4 TEKNINEN MÄÄRITTELY 4 (7) 1.4 Viitteet [Vaat] [Toim] [Patrik1] Vaatimusmäärittely Toiminnallisen määrittelyn mallidokumentti Patrick Östergårdin toimittama ensimmäinen dokumentti algoritmeista. [Patrik2] Patrick Östergårdin toimittama toinen dokumentti algoritmeista. [Patrik3] vaatimuksista Patrick Östergårdin kirjoittama dokumentti wcliquen Yleiskatsaus dokumenttiin Johdanto osuudessa luodaan yleiskatsaus dokumenttiin. Siinä selvitetään termit, lyhenteet ja viitteet jotka auttavat lukijaa tutustumaan tähän dokumenttiin ja -ohjelmaan. Toinen luku tarkentaa ohjelmaa yleisellä tasolla. Jos lukija ei ole kiinnostunut pikkutarkasta ohjelman kuvauksesta, niin usein riittää tämän luvun lukeminen ohjelman idean ymmärtämiseksi. Arkkitehtuuri osuus kertoo tarvittavien tietokantojen osuudesta tähän projektiin. Työn luonteesta johtuen, tietokannat eivät ole suuressa merkityksessä tämän projektin missään suoritusvaiheessa. Neljännessä luvussa tarkennetaan toisessa luvussa esitettyjä ohjelman moduulien ominaisuuksia ja toimintoja. Luvut 5,6,7 eivät sisällä varsinaista hyötyinformaatioita ohjelman teknisen ratkaisun kannalta. Tämä siksi koska ohjelma ei sisällä mitään varsinaista käyttöliittymää. 2. JÄRJESTELMÄN YLEISKUVAUS Tavoitteena -ohjelmassa on koodata jo olemassa olevalle algoritmille toimiva ympäristö, jolloin algoritmin käyttö helpottuu ja algoritmille voidaan luoda uusia käyttötapoja. 2.1 Sovellusalueen kuvaus Sovellus toimii standardi Unix/Linux ympäristössä.
5 TEKNINEN MÄÄRITTELY 5 (7) 2.2 Järjestelmän liittyminen ympäristöönsä Ohjelma ei sisällä mitään liityntöjä ympäristöönsä. 2.3 Laitteistoympäristö(n kuvaus) Standardi Unix / Linux käyttöympäristö. 2.4 Ohjelmistoympäristö(n kuvaus) Ohjelma toimii Linux ympäristössä, käyttöjärjestelmänä RedHat 7.0 kernel versio Kääntäjänä standardi C kääntäjä. 2.5 Toteutuksen keskeiset reunaehdot Vaatimusmäärittelyn ehdot pätevät. Ohjelma sisältää seuraavat ominaisuudet: Painottamattomien graafien vaatimukset: Painottamattoman maksimiklikin koko Yhden maksimiklikin laskeminen Kaikkien maksimiklikkien laskeminen Yhden klikin laskeminen kokoa S Kaikkien klikkien laskeminen kokoa S Yhden klikin laskeminen vähintään kokoa S Kaikkien klikkien laskeminen vähintään kokoa S Verticeitten järjestäminen Ensisijaiset "olisi hienoa" -ominaisuudet Klikkien laskenta annetulla vertexien määrällä ja Windows Painotettujen graafien vaatimukset Painotetun maksimiklikin koko Yhden maksimiklikin laskeminen Kaikkien maksimiklikkien laskeminen Yhden klikin laskeminen kokoa S Kaikkien klikkien laskeminen kokoa S Yhden klikin laskeminen vähintään kokoa S Kaikkien klikkien laskeminen vähintään kokoa S Eri syöteformaattien lukeminen Vertexien järjestely 2.6 Sopimukset ja standardit Standardit jota noudatetaan: Koodaus (Juha K) Sopimukset: Vaatimusmäärittely ja tekijänoikeus sopimus.
6 TEKNINEN MÄÄRITTELY 6 (7) 3. ARKKITEHTUURIN KUVAUS Alla oleva Kuva 1 esittää eri ohjelman rakenteen karkealla tasolla. Myöhemmissä luvuissa tätä tarkennetaan. Syöte Järjestäminen Tulostaminen Tuloste 1. Painottamattoman maksimiklikin koko 2. Yhden maksimiklikin laskeminen 3. Kaikkien maksimiklikkien laskeminen 4. Yhden klikin laskeminen kokoa S 5. Kaikkien klikkien laskeminen kokoa S 6. Yhden klikin laskeminen vähintään kokoa S 7. Kaikkien klikkien laskeminen vähintään kokoa S 8. Verticeitten järjestäminen 9. Klikkien laskenta annetulla vertexien määrällä 10. Painotetun maksimiklikin koko 11. Yhden maksimiklikin laskeminen 12. Kaikkien maksimiklikkien laskeminen 13. Yhden klikin laskeminen kokoa S 14. Kaikkien klikkien laskeminen kokoa S 15. Yhden klikin laskeminen vähintään kokoa S 16. Kaikkien klikkien laskeminen vähintään kokoa S Kuva 1. Ohjelman rakenne.
7 TEKNINEN MÄÄRITTELY 7 (7) 3.1 Ratkaisun "filosofia" (suunnitteluperiaatteet) - perinteinen tapa, ei olioita, mallinnus pseudokoodilla. - kussakin moduulissa paikalliset muuttujat, moduulien/funktioiden nimet kaikki alkavat wcxxx tai wc_xxx - c-kieli, asiakkaan vaatimus 3.2 Tietokanta-arkkitehtuuri syötetiedoston tarkka määrittely tulostiedostojen tarkka määrittely 3.3 Ohjelmistoarkkitehtuuri, moduulit ja prosessit Ohjelma sisältää kahdeksan erillistä moduulia jotka ovat (suluissa moduulin nimi): 1. Painottamattoman maksimiklikin koko (wc1) 2. Yhden maksimiklikin laskeminen (wc2) 3. Kaikkien maksimiklikkien laskeminen (wc3) 4. Yhden klikin laskeminen kokoa S (wc4) 5. Kaikkien klikkien laskeminen kokoa S (wc5) 6. Yhden klikin laskeminen vähintään kokoa S (wc6) 7. Kaikkien klikkien laskeminen vähintään kokoa S (wc7) 8. Verticeitten järjestäminen (wc8) 9. Klikkien laskenta annetulla vertexien määrällä (wc9) 10. Painotetun maksimiklikin koko (wc10) 11. Yhden maksimiklikin laskeminen (wc11) 12. Kaikkien maksimiklikkien laskeminen (wc12) 13. Yhden klikin laskeminen kokoa S (wc13) 14. Kaikkien klikkien laskeminen kokoa S (wc14) 15. Yhden klikin laskeminen vähintään kokoa S (wc15) 16. Kaikkien klikkien laskeminen vähintään kokoa S (wc16) 4. MODUULI (JA PROSESSI) KUVAUKSET Jokaista moduulia kutsutaan moduulin nimellä. Ohjelmakoodin rakenteessa ollaan huomioitu Kenneth Oksasen C-ohjelmointiopasta. Koodi-mallit sijoitetaan aluksi NT hakemistoon josta ne tarpeen mukaan voidaan myös jakaa Patrik Östergårdille.
8 TEKNINEN MÄÄRITTELY 8 (7) Aloitus Komentorivi: graafin syöte, kutsuttava funktio Tulkitse komentorivi 4 Jokin muu 1,2 tai 3 Etsi maksimiklikki 1 tai 2 3 Etsi yksi klikki / kaikki klikit kokoa S Lopetus Kommentteja: Tässä käsitelty tapaukset 1-4 (painottamaton). Ensimmäisessä moduulissa kutsutaan parametrilla annettua funktiota, joka esim. tulostaa klikin koon tai solmut. Toisessa moduulissa samoin. Lisäksi tutkitaan ehtoa, jonka perusteella päätettä, etsitäänkö vielä ensimmäisen löytyneen jälkeen loputkin. Tapaukset: 1. Painottoman maksimiklikin koko 2. Yhden maksimiklikin laskeminen 3. Kaikkien maksimiklikkien laskeminen 4. Yhden klikin laskeminen kokoa S
9 TEKNINEN MÄÄRITTELY 9 (7) Kuva 2. Painottamattomien graafien laskeminen 4.1 Kustakin moduulista (ja prosessista) kuvataan /**** UW etsii ei-painotetusta graafista YHDEN annetun kokoisen klikin *****/ /* huom.: kaikissa tapauksissa funktioiden niminä ovat new ja clique muutettava */ function clique(u; size) 1: if size = S then 2: talleta / funktio X 3: found = true 4: return 8: end if 9: while U!= 0; do 10: if size + U < S then 11: return 12: end if 13: i := min { j v j E U } 14: if size + c[i] < S then 15: return 16: end if 17: U := U & {v i } 18: clique (U & N(v i ); size + 1) 19: if found = true then 20: return 21: end if 22: end while 23: return function new
10 TEKNINEN MÄÄRITTELY 10 (7) 24: max := 0 25: for i := n downto 1 do 26: found := false 27: clique (S i & N(v i ); 1) 28: if found = true then 29: end 30:end if 31: c[i] :=max 32: end for 33: return
11 TEKNINEN MÄÄRITTELY 11 (7) /**** UW etsii ei-painotetusta graafista KAIKKI annetun kokoiset klikit *****/ /* huom.: kaikissa tapauksissa funktioiden niminä ovat new ja clique muutettava */ function clique(u; size) 1: if size >= S then 2: talleta / funktio X 3: return 8: end if 9: while U!= 0; do 10: if size + U < S then 11: return 12: end if 13: i := min { j v j E U } 14: if size + c[i] < S then 15: return 16: end if 17: U := U & {v i } 18: clique (U & N(v i ); size + 1) 19: if found = true then 20: return 21: end if 22: end while 23: return function new 24: max := 0 25: for i := n downto 1 do 26: found := false 27: clique (S i & N(v i ); 1)
12 TEKNINEN MÄÄRITTELY 12 (7) 28: if found = true then 29: end 30:end if 31: c[i] :=max 32: end for 33: return
13 TEKNINEN MÄÄRITTELY 13 (7) /**** UW etsii ei-painotetusta graafista KAIKKI VÄHINTÄÄN annetun kokoiset klikit *****/ /* huom.: kaikissa tapauksissa funktioiden niminä ovat new ja clique muutettava */ function clique(u; size) 1: if size >= S then 2: talleta / funktio X 8: end if 9: while U!= 0; do 10: if size + U < S then 11: return 12: end if 13: i := min { j v j E U } 14: if size + c[i] < S then 15: return 16: end if 17: U := U & {v i } 18: clique (U & N(v i ); size + 1) 19: if found = true then 20: return 21: end if 22: end while 23: return function new 24: max := 0 25: for i := n downto 1 do 26: found := false 27: clique (S i & N(v i ); 1) 28: if found = true then
14 TEKNINEN MÄÄRITTELY 14 (7) 29: end 30:end if 31: c[i] :=max 32: end for 33: return uw_maxclique uw_sclique uw_allsclique uw_nlessclique w_maxclique w_sclique w_allsclique w_nlessclique uw_max uw_s uw_alls uw_nless w_max w_s w_alls w_nless
15 TEKNINEN MÄÄRITTELY 15 (7) WC Rajapinta Toteutus Kutsu tapahtuu wc1 kutsulla. Moduuli sisältää algoritmin painottamattomalle klikille, josta lasketaan maksimiklikin koko. Järjestämis-rajapinta ja tulostamis-rajapinta Virhekäsittely Ei sisällä vieheenkäsittelyä. 5. MUUT ERITYISET TEKNISET RATKAISUT Tähän kommentteja Ossilta ja Juha L:ltä. 6. HYLÄTYT RATKAISUVAIHTOEHDOT Onko näitä? 7. VIRHEKÄSITTELY Virhekäsittelyt virhetilanteissa kutsutaan aina virhekäsittelijää, jolle annetaan virhekoodi parametrina esim. void errorhandler(int errno); virhenumerot listataan jossakin, ja listaa päivitetään voisi olla että moduulin 1 virheet ovat välillä , moduulin 2 välillä jne. Liitä kuvaus joka tehty palaverin 5.12 pohjalta, tarkenna error handleriä.
16 TEKNINEN MÄÄRITTELY 16 (7) 1. JOHDANTO Antaa yleiskuvan suunnittelusta. 1.1 Tarkoitus ja kattavuus Dokumentin tarkoitus, miksi tehty ja mihin tarkoitukseen, kenelle (oman firman toteutusporukka vaiko alihankkija vai kuka) tarkoitettu. Mitä asioita dokumentissa kuvataan. Varsinkin jos lukija ei ole tottunut lukemaan suunitteludokumentteja. Suunnittelun kattavuus suhteessa määrittelyyn. Esimerkiksi jos tämä suunnittelu kattaa määrittelyn poislukien käyttöliittymä ja tietokanta. 1.2 Tuote ja ympäristö Tuotteen nimi, tarkoitus ja tavoitteet. Tuotteen toimintaympäristö yleisesti. 1.3 Määritelmät, merkintätavat ja lyhenteet Sanat ja käsitteet jotka eivät ole lukijalle (tilaaja/toimittaja) tuttuja tai joiden voidaan ajatella tuottavan sekaannuksia erikoisella käytöllään tai jotka eivät yleisesti ole tiedossa. Nämä kannattaa esittää aakkosjärjestyksessä. Esim. ASCII-merkistöstä ilmoitetaan onko se 7-bittinen (esim. ISO 10646) tai 8-bittinen (esim. ISO ). 1.4 Viitteet Viittaukset muihin lähteisiin (dokumentit, standardit, käsikirjat). Viitteen mukaan aakkosjärjestyksessä Ne dokumentit joihin on viitattu tai jotka liittyvät systeemiin tai sen rakentamiseen, mikäli tarpeen (nimi, versio, päiväys, mistä löydettävissä). Lisätietoja. Koodaustyyliohje merkittäisiin tähän. Se tämän järjestelmän määrittelydokumenttihan on tärkein lisätietojen ja selvennysten lähde. Mikäli suunnittelu ei kata koko määrittelyä tulee se mainita tässä (eli mitä muita suunnitteluvaiheen dokumentteja on olemassa, jos on; esim. jos käyttöliittymän tai tietokannan suunnittelu on irrotettu omiksi dokumenteikseen). Luettelo aakkosjärjestyksessä. 1.5 Yleiskatsaus dokumenttiin Rakenteen kuvaus; sisältö ja organisointi; mitä missäkin luvussa käsitellään, tärkeää varsinkin mikäli lukija ei ole tottunut lukemaan em. sisällysluettelon mukaisia määrittelyjä.
17 TEKNINEN MÄÄRITTELY 17 (7) Mikäli ensimmäinen luku on kokonaisuudessaan samalla sivulla kuin tämä kohta (1.6 yleiskatsaus) tai jos 1. luku on muutoin kovin lyhyt, ei sitä tarvitse tässä kohdassa (1.6 yleiskatsaus) mainita vaan voidaan aloittaa 2. luvun asioista. Tässä mainitaan kustakin luvusta hieman enemmän kuin mitä pelkkä sisällysluettelon selaaminen kertoo. 2. JÄRJESTELMÄN YLEISKUVAUS Tässä voidaan mainita ohje dokumentin ja koodin kommenttien sekä muuttujien ja funktioiden yms. kielisyydestä. 2.1 Sovellusalueen kuvaus Se laajempi kokonaisuus johon tuote tai järjestelmä liittyy. Esimerkiksi TTKK:n opintotoimiston salivarausjärjestelmä. 2.2 Järjestelmän liittyminen ympäristöönsä Mitä järjestelmä tässä ympäristössä tekee. Käyttääkö kuvattu järjestelmä muita ohjelmia tai järjestelmiä, eli onko jonkin suuremman systeemin osa. 2.3 Laitteistoympäristö(n kuvaus) Laitteistoympäristö jossa ohjelma toimii. Esimerkiksi mitä oheislaitteita tarvitaan, mitä keskusyksiköltä odotetaan, mitä laitteiden ominaisuuksia ohjelma hyödyntää, mitkä laitteiston ominaisuudet rajoittavat teknisiä ratkaisuja, liittymät muihin tietokoneisiin. 2.4 Ohjelmistoympäristö(n kuvaus) Ohjelmistoympäristö jossa ohjelma toimii. Esimerkiksi käyttöjärjestelmä, kääntäjä, muut apuvälineet, tietokantaohjelmisto, tietoliikenneohjelmisto, www-selain, littymät muihin ohjelmistoihin/sovelluksiin, muut laitteistossa yhtä aikaa ajettavat ohjelmat. Luonnollisesti tarkkoine versioineen. 2.5 Toteutuksen keskeiset reunaehdot Jos asiakas on asettanut ohjelmalle huomattavan tärkeitä ehtoja (tai sellaisia on muista syistä) jotka on syytä ottaa huomioon suunnitelussa niin ne mainitaan tässä. Esimerkiksi laitteisto, ohjelmisto, lait tai asetukset, vasteajat. 2.6 Sopimukset ja standardit Jos käytetään standardien ja/tai eri sopimusten mukaisia suunnittelumenetelmiä, kuvaustapoja, dokumentointimalleja tms. niin ne mainitaan tässä. Samoin valmisosien käyttö ja niiden nimeämissäännöt.
18 TEKNINEN MÄÄRITTELY 18 (7) Myös erilaiset direktiivit, viranomaismääräykset ja ohjeistot mainitaan tässä, mikäli ne vaikuttavat suunnitteluun. Siis tässä voi mainita nimeltä ja kohdassa 1.5 näkyy koko lähde tarkasti. 3. ARKKITEHTUURIN KUVAUS Suunnittelutavoitteet sekä perusteet valitulle arkkitehtuurille eli miksi juuri tällainen arkkitehtuuri. Tässä kuvataan ohjelmiston arkkitehtuuri yleisellä tasolla: ylimmänkäsitetason (abstraktiotason) moduulit ja niiden väliset liittymät. 3.1 Ratkaisun "filosofia" (suunnitteluperiaatteet) Suunnitteluperiaatteet eli "ratkaisun filosofia" alkaa valinnasta teettekö "perinteistä" rakenteellista suunnittelua (SD) vaiko oliosuunnittelua (OOD) vai jotakin muuta. Tuon valinta ratkaisee millaista ajattelutapaa (lähestymistapaa ongelmaan) käytätte jatkossa. Eli millä tavalla ryhmänne lähestyy ongelmaa ja ratkaisee sen, yleinen lyhyt selostus. Perustelut mukaan kaikkiin ratkaisuihin ja päätöksiin. Tärkeätä ovat myös yhtenäiset moduulien kutsutavat sekä yhtenäiset suunnitteluratkaisut eli perusteet moduulijaolle. RATKAISUN FILOSOFIA tarkoittaa mm. seuraavaa (ei suoraan koodaamaan vaan mietitäänpä hetki mitä tehdään ettei tehdä mitä vaan): olioita vai "perinteinen" rakenteinen tapa mikäli oliokeskeinen toteutus niin mikä mallinnusmenetelmä merkkipohjainen vai graafinen näyttö asiakas-palvelin-arkkitehtuuri vai "perinteinen" asiakas-palvelin työnjako globaalit vai lokaalit muuttujat valmis TKHJ vaiko oma tietokanta vai pelkkä tiedosto tietokanta: relaatiokanta vaiko jokin muu tietorakenteet (esim. linkitetty lista vaiko kiinteä taulukko) moduuli/lohkojako (esim. käyttöliittymä, tulostustoiminnot) yleiskäyttöiset komponentit (esim. KL, toolbar, tiedostojen-käsittely), jos sellaisia on kaikkien syötteiden tarkastus heti vaiko oma virhetarkistusmoduuli muistin käsittely (RAM, levymuisti, välimuisti,...) ohjelmointikieli (vasteaika/reaaliaikaisuus/rinnakkaisuusvaatimukset?) käyttöliittymä: 4GL vai näyttökehitin vai rutiinikirjasto. Modulaarinen ohjelma koostuu osista, jotka voidaan poistaa tai vaihtaa ja joita voidaan lisätä. Kiinnitetty ohjelmointikieli voidaan se mainita tässä (periaatteessa suunnittelu voi vieläkin olla ohjelmointikieliriippumaton). Perusteluna ei kelpaa "ainoa jota osaan". 3.2 Tietokanta-arkkitehtuuri
19 TEKNINEN MÄÄRITTELY 19 (7) Kuvataan tietokanta-arkkitehtuuri yleisellä tasolla. Esimerkiksi jako tiedostoihin tai tietokantoihin, tiedostojen/tietokantojen väliset liittymät, tiedostojen/tietokantojen organisointi, käytettävät tietokantaohjelmistot (jos on), suojaukset, toipuminen, varmistukset, huolto, ylläpito. Perustelut mukaan luonnollisesti. Tietokannat sekä niiden rakenne (eli esim. taulut eli relaatiokuvaukset (mikäli toteutus tehdään relaatiotietokannalla!)). Muutama sana tietokanta-arkkitehtuurista. Suunnitteludokumentissa (viimeistään) määrätään tietokannan rakenne. Määrittelydokumentin kolmosluvussahan jo määritettiin kentät pituuksineen. Nyt sitten tarkennetaan tietokannan rakenne selväksi. Mikäli käytetään valmista tietokannan hallintajärjestelmää (TKHJ, engl. DBMS), osaisi systeemin käyttäjä alustaa tietokannan eli luoda ne tietokannan taulut. Mikäli käytössä on relaatiomallin mukainen tietokanta, taululla voi ymmärtää yhtä relaatiota. Yksi tietokanta voi sisältää useita relaatioita. Tietokannan taulussa on tietenkin useita rivejä. Relaatiolla tarkoitetaan sarakkeita. Kahden sarakkeen taulu on pienin relaatio. Tietokannan rakentaminenhan on tasapainoilua tietokannan koon ja hakunopeuden välillä. Ratkaisu on aina kompromissi. Tietokantaratkaisu kuvataan yksityiskohtaisesti ellei sitä ole tehty jo määrittelyssä. tietokantaratkaisun yleiskuva, tiedostot ja niiden väliset liittymät tietokantaa käyttävät muut ohjelmistot tai järjestelmät tietokannan tukiohjelmisto (esim. varmistukset, toipuminen, testaus) kustakin tietokannasta tai tiedostosta rakenne/organisointi tietuekuvaus tietokuvaus tyyppi käsittely- tai laskentasäännöt suhteet muihin tietoihin suhteet muihin tiedostoihin tai tietokantoihin päivityskriteerit ja -tavat tilavaatimukset ylläpitonäkökohdat varmistusnäkökohdat suojausnäkökohdat. Tietokannan kenttien kuvaus tarkasti; kentän nimi tai tunniste kentän merkitys kentän pituus ja muoto sallitut arvot. 3.3 Ohjelmistoarkkitehtuuri, moduulit ja prosessit
20 TEKNINEN MÄÄRITTELY 20 (7) Tämä kohta on ehkäpä tärkein suunnitteludokumentin asia. Älkää ohittako tätä kevyesti. Satunnaiselle dokumentin lukijalle tämä kohta kuvaa parhaiten suunnitteluanne (tarkat moduulikuvaukset selviävät selkeästä koodistakin). Usein kirjataan yksityiskohdat pikkutarkasti ylös, mutta laajempaa ja tärkeämpää kokonaiskuvaa ei anneta. Ohjelmistojako osajärjestelmiin / ohjelmiin / proseseihin / moduuleihin / pakkauksiin / luokkiin sekä niiden väliset liittymät yleisellä tasolla. Perustelut käytettyyn jakoon tulee selvittää. Tähän ennnen moduulikuvauksia kannattaa oheistaa kaavio, joka selvittää moduulien keskinäiset suhteet, eli mikä kutsuu mitäkin. Moduuli- eli arkkitehtuurikaavio voidaan esittää tässä tai mieluummin luvun 4 alussa, ennen moduulikuvauksia. Suunnitteludokumentin luvun 4 alkuun kannattaa liittää jonkinlainen moduulikutsukaavio, josta selviävät yhdellä silmäyksellä ohjelman sisältämät moduulit ja niiden riippuvuussuhteet (kutsusuhteet, sisältyminen (moduuli voi koostua moduuleista)) toisistaan. Mikäli toteutus on suunniteltu tehtäväksi jollakin oliokielellä, luokkahierarkia on selventävä lisäkaavio. Oliotekniikoissa voidaan käyttää selventävinä kaavioina luokkakaaviota, periytymiskaaviota ja kutsukaaviota (käyttökaavio). Vaikka tuotteen voisikin tehdä yksi ohjelmoija, tulee työ silti jakaa moduuleihin (muutosten ja myöhemmän käytön varalta). Moduuleihin jakohan mahdollistaa rinnakkaisen toteutustyöskentelyn 4. MODUULI (JA PROSESSI) KUVAUKSET Se moduulikaavio voisi sijaita tässä kohtaa (mieluummin kuin kohdassa 3.3). Moduulikaavio helpottaa ohjelman rakenteen ja toiminnan hahmottamista, etenkin jos ohjelma koostuu useammista kymmenistä moduuleista tai luokista. Siitä nähdään mikä vaikuttaa mihinkin. Haluttaessa voidaan moduulikaavioon lisätä selventäviä tekstejä kutsunuolien lisäksi mutta se ei ole välttämätöntä. Tekstin luettavuutta voidaan parantaa erilaisilla korostus- ja tehostuskeinoilla. Esimerkiksi aliohjelmien/funktioiden nimien kirjoittaminen eri kirjasinmallilla tai tekstin lihavointi (bold) tai kursivointi (italic). Eri seikkojen nimeämiseen kannattaa kiinnittää huomiota jo nyt (~tyyliohje). Esimerkiski moduulien, luokkien, funktioiden ja muuttujien nimeämiskäytäntöön.
21 TEKNINEN MÄÄRITTELY 21 (7) Mikäli joitakin nimiä (komennon parametrit, muuttuja, tiedosto, hakemisto) on jo kiinnitetty, niin ne mainitaan perusteluineen. Jokaisesta moduulista kuvataan sen tehtävä, liittymät muihin osiin sekä toteutusnäkökohdat. Moduuleista/luokista/pakkauksista tms. erotellaan valmisosat, eli muualta sellaisenaan tai muokaten napatut osat. Nämä seikat voisi helposti kuvata esim. moduulikaaviossa erilaisilla korostuskeinoilla. Tekniset yksityiskohdat tulee selvittää koodausta varten tarvittavalla tasolla Hyvin tehdyn moduulin tunnusmerkkejä; toteutustapa ei näy ulkopuolelle suorittaa vain yhden tehtävän mahdollisimman vähän, ja löyhiä kytkentöjä toisiin moduuleihin tiedonvälitys vain parametreilla, ei globaalia dataa mahdollisimman vähän parametreja aina selitetään selvästi, mikäli kuitenkin joudutaan käyttämään globaalia dataa parametreina vain sellaista tietoa, jota moduuli käyttää yksinkertainen sisäinen rakenne yksinkertaiset loogiset lausekkeet haarautumiskohdissa moduuli mahtuu yhdelle tai enintään kahdelle sivulle kaikilla moduuleilla samannäköinen vakionimiö (alkumerkintä eli header) esittelyt on kommentoitu koodi on kommentoitu vähintään lohkoittain. Älä tee liian rajoittuneita tai yleisiä moduuleja. Moduuli on rajoittunut, jos se suorittaa tarpeettoman yksityiskohtaisen tehtävän käsittelee rajoittuneita arvoja tai tyyppejä toimii vain tiettynä aikana (vuosiluvut kahdella numerolla...). Liian rajoittunutta moduulia ei voida käyttää muualla. Moduuli on liian yleinen, jos tekee tarpeettoman laajan tehtävän käsittelee liian monia arvoja tai tyyppejä saa parametrinaan tiedon, joka ei muutu. Liian yleistä moduulia ei voida hyödyntää riittävästi. 4.1 Kustakin moduulista (ja prosessista) kuvataan Moduulikuvauksissa on hyvä käyttää jotakin yhtenäistä merkintätapaa, "TYYLIOHJETTA", esim. muuttujien ja funktioiden nimeämiskäytännöissä (suomi/englanti, iso/pieni AlkuKirjainKäytäntö, alaviivoja_vaiko_ei,... ) Yleiskuvaus Nimi:
22 TEKNINEN MÄÄRITTELY 22 (7) Heti ensimmäiseksi kerrotaan moduulin nimi. "Standardimuotoiset"moduulien otsikot eli nimiöt (header). Malleja on paljon, eräs esimerkki on tämän tiedoston loppupuolella. Tyyppi: Tyyppi ilmoitetaan esim. pääohjelma, funktio, aliohjelma, pakkaus,luokka, prosessi. Yleinen kuvaus: Yleisesti mitä moduuli tekee Rajapinta Liittymät muihin moduuleihin. Joka moduulilla täytyy olla formaali rajapintamäärittely (black box- tyyliin). Kaikki rajapinnat ovat erittäin tärkeä alue, jo virhemahdollisuuksienkin takia. Luettelo ohjelmista, joita tämä ohjelma kutsuu (jos käyttää) tai jotka kutsuvat tätä (jos kutsuvat). parametrit nimi moodi (IN, OUT, INOUT) tyyppi tarkoitus mahdolliset arvot pakollisuus rajoitukset Esim. milloin moduuli on kutsuttavissa tai ajoitukset Toteutus Ohjeita moduulisuunnittelua ja toteutusta varten; tyypillisestitoimintaa on hahmoteltu pseudokoodilla tai hankalat kohdat jopaohjelmakoodilla. Tietorakenteet: Mikäli on tarpeen selostaa moduulin sisäisiä tietorakenteita. Algoritmit Mikäli on käytetty erikoisia ratkaisuja. Myös käytetyt vakioalgoritmit mainitaan (esim. quicksort) Virhekäsittely Poikkeus- ja virhetilanteet Tärkeää on selvittää miten moduulin tulee reagoida erivirhetilanteisiin. Tässä kohtaa viimeistään
23 TEKNINEN MÄÄRITTELY 23 (7) määritelläänvirheilmoitustekstien tarkka sisältö ja sanamuoto (jollei ole jomäärittelyssä), sekä ohjelman toiminta virheen jälkeen. Myös havaitut/oletetut virhetilanteet kannattaa rehellisyyden jadokumentin käytettävyyden nimissä kirjata. Mm.testaussuunnitelmaatehtäisiin rinnan määrittelyn ja suunnittelun kanssa. Virhetilanteista selvitetään mihin tilanteisiin varaudutaan miten toimitaan, kun tilanne kohdataan miten virheestä ilmoitetaan käyttäjälle mistä tilanteista yritetään toipua ja miten kerätäänkö virhetilastoa. 5. MUUT ERITYISET TEKNISET RATKAISUT Esimerkiksi seuraavia asioita, mikä tarpeellista. suojaukset, turvallisuus varmistukset toipumiset ylläpidettävyys joustavuus siirrettävyys tai kannettavuus. 6. HYLÄTYT RATKAISVAIHTOEHDOT Ne mietityt mutta hylätyt ratkaisuvaihtoehdot kannattaa kirjataperusteluineen johonkin sopivaan lukuun tai kohtaan. Seuraavadokumentin lukija näkee, että tuotakin on mietitty. Samoinjos te itsesattumoisin lukisitte omaa dokumenttianne puolen vuoden päästä, ette varmaankaan muistaisi mitä asioita on sitä tehtäessä mietitty. 7. VIRHEKÄSITTELY Virheilmoitusten tekstit tulee kiinnittää viimeistään nyt suunnittelussa (parempi olisi miettiä ne jo määrittelyssä). yleiset virhekäsittelysäännöt yleiset moduulit virheiden käsittelemiseksi virheilmoitusten tunnistaminen virheilmoitusten tallettaminen (muistiin, levylle) virheilmoitusten ryhmittely (vakavuus, käyttäjän vaiko järjestelmän) virheilmoitustekstit.
24 TEKNINEN MÄÄRITTELY 24 (7) Toiminta epänormaaleissa tilanteissa kuuluisi jo määrittelyyn, mutta viimeistään suunnittelussa on asiaan otettava kantaa. Esim. miten järjestelmä käyttäytyy virtakatkoksissa? "Nouseeko itse pystyyn" vai "jääkö jumiin"? Kannattaa panostaa siihen virheilmoitusten yhtenäisyyteen! Käyttäjä näkee ohjelmasta vain sen ja arvioi ohjelman "hyvyyttä" paljolti käyttöliittymän perusteella.
TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik-76.115 Wclique
TEKNINEN MÄÄRITTELY PROJEKTITYÖ Tik-76.115 SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria... 2 1. JOHDANTO... 3 1.1 Tarkoitus ja kattavuus... 3 1.2 Tuote ja ympäristö... 3 1.3 Määritelmät, merkintätavat
LisätiedotTOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik-76.115 Wclique
TOIMINNALLINEN MÄÄRITTELY PROJEKTITYÖ Tik-.115 SISÄLLYSLUETTELO Sisällysluettelo... Versiohistoria... 1. JOHDANTO... 4 1.1 Tarkoitus ja kattavuus... 4 1. Tuote... 4 1. Määritelmät, termit ja lyhenteet...
LisätiedotVAATIMUSMÄÄRITTELY. PROJEKTITYÖ Tik Wclique
VAATIMUSMÄÄRITTELY PROJEKTITYÖ Tik-76.115 SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria... 3 1. JOHDANTO... 4 1.1 Algoritmi... 4 1.2 Graafi... 4 1.3 Nauty... 5 1.4 Mermaid... 5 2. YLEISKUVAUS...
LisätiedotVAATIMUSMÄÄRITTELY. PROJEKTITYÖ Tik Wclique
VAATIMUSMÄÄRITTELY PROJEKTITYÖ Tik-76.115 SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria... 3 1. JOHDANTO... 4 1.1 Algoritmi... 4 1.2 Graafi... 4 1.3 Nauty... 5 1.4 Mermaid... 5 2. YLEISKUVAUS...
LisätiedotDigi-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ätiedotTOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique
TOIMINNALLINEN MÄÄRITTELY PROJEKTITYÖ Tik-7.115 SISÄLLYSLUETTELO Sisällysluettelo... Versiohistoria... 1. JOHDANTO... 4 1.1 Tarkoitus ja kattavuus... 4 1. Tuote... 4 1. Määritelmät, termit ja lyhenteet...
LisätiedotTOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique
TOIMINNALLINEN MÄÄRITTELY PROJEKTITYÖ Tik-.115 SISÄLLYSLUETTELO Sisällysluettelo... Versiohistoria... 1. JOHDANTO... 4 1.1 Tarkoitus ja kattavuus... 4 1. Tuote... 4 1. Määritelmät, termit ja lyhenteet...
LisätiedotTEKNINEN MÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (Luonnos 2)
TEKNINEN MÄÄRITTELY Edited by Checked by Approved by Tuomo Marttila Luonnos 1 Tekninenmäärittely i Sisällysluettelo 1. JOHDANTO 2 1.1. Tarkoitus ja kattavuus 2 1.2. Tuote ja ympäristö 2 1.3. Määritelmät,
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ätiedotTEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique
TEKNINEN MÄÄRITTELY PROJEKTITYÖ Tik-76.115 SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria... 3 1. JOHDANTO... 4 1.1 Tarkoitus ja kattavuus... 4 1.2 Tuote ja ympäristö... 4 1.3 Määritelmät, merkintätavat
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ätiedotKÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014. Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0
KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014 Käyttäjätutkimus ja käsitteellinen suunnittelu Järjestelmän nimi versio 1.0 Jakelu: Tulostettu: 201543 Samuli Hirvonen samuli.hirvonen@student.tut.fi
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ä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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotOhjelmiston 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ä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ä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ä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ätiedotMäärittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
LisätiedotYlläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
LisätiedotWCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma
TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/jekahkon/wclique/testplan.html WCLIQUE Ohjelmistoprojekti Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com, 75014C,
LisätiedotTiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas
Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä
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ätiedotHakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
LisätiedotIDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotGroupDesk Toiminnallinen määrittely
GroupDesk Toiminnallinen määrittely Tilanne: Paikallinen oppilaitos, kuvitteellinen WAMK, tarvitsee ryhmätyöhön soveltuvan sähköisen asioiden hallintajärjestelmän ja ryhmätyöohjelmiston, jonka ajatuksena
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
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ätiedot- painottamattoman graafin solmujen järjestäminen. - painotetun graafin solmujen järjestäminen
1. DEMO TUOTTEEN OMINAISUUKSISTA Tuotteesta demotaan seuraavat asiat: - käyttöliittymä - painottamattoman graafin solmujen järjestäminen - painotetun graafin solmujen järjestäminen - yhden maksimiklikin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotTestaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:
Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,
LisätiedotTietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
LisätiedotTIEDONKULKU. PROJEKTITYÖ Tik-76.115 Wclique
TIEDONKULKU PROJEKTITYÖ Tik-76.115 SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria... 2 1. JOHDANTO... 3 1.1 Tämän dokumentin tarkoitus... 3 1.2 Projekti... 3 2. Tiedonkulku... 3 2.1 Yleistä... 3
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
LisätiedotTietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
LisätiedotOhjelmistotuotanto 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ätiedotEMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille 13.6.2008. Meeri Nieminen
EMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille 13.6.2008 Meeri Nieminen Asiakkaan vaihtoehdot Asiakkaan vaihtoehdot EMCS-järjestelmän käyttöön XML-sanomarajapinta oman järjestelmän
LisätiedotL models. Tekninen määrittely. Ryhmä Rajoitteiset
Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Tekninen määrittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotCopyright 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ätiedotTIETOKANNAN SUUNNITTELU
TIETOKANNAN SUUNNITTELU HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 2 JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS TIETOJEN MALLINNUKSESTA TIETOKANTAAN Käsiteanalyysin
LisätiedotUutisjä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ätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
Lisätiedot4.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ätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotZeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
LisätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
LisätiedotTietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
LisätiedotMaastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
LisätiedotSOVELLUSALUEEN KUVAUS
Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu SOVELLUSALUEEN KUVAUS LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 2.1 Tila: hyväksytty Päivämäärä: 12.12.2000
LisätiedotPerinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.
TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä
LisätiedotSisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.
Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotJohdatus rakenteisiin dokumentteihin
-RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotA274101 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ätiedot83450 Internetin verkkotekniikat, kevät 2002 Tutkielma <Aihe>
83450 Internetin verkkotekniikat, kevät 2002 Tutkielma TTKK 83450 Internetin verkkotekniikat Tekijät: Ryhmän nro:
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
LisätiedotVisual Case 2. Miika Kasnio (C9767) 23.4.2008
Visual Case 2 Miika Kasnio (C9767) 23.4.2008 Työn tarkasti: Jouni Huotari 24.4.2008 1 SISÄLTÖ 1. TYÖN LÄHTÖKOHDAT... 2 2. PERUSTIEDOT... 2 3. ASENTAMINEN... 2 4. OMINAISUUDET... 3 4.1. UML-kaaviot... 4
LisätiedotSisä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ätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Lisätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
LisätiedotT Testiraportti - järjestelmätestaus
T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria
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ätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
LisätiedotWCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma
TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/~jekahkon/wclique/testplan.pdf WCLIQUE Ohjelmistoprojekti WCLIQUE_TP Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com
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ätiedot13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
LisätiedotOhjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
LisätiedotTietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
LisätiedotKontrollipolkujen määrä
Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät
LisätiedotT Testiraportti - integraatiotestaus
T-76.115 Testiraportti - integraatiotestaus 16. huhtikuuta 2002 Confuse 1 Tila Versio: 1.1 Tila: Päivitetty Jakelu: Julkinen Luotu: 19.03.2002 Jani Myyry Muutettu viimeksi: 16.04.2002 Jani Myyry Versiohistoria
Lisätiedot2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.
Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen
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ätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotPoikkeustenkäsittely
1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on
LisätiedotHeuristisen arvioinnin muistilista - lyhyt versio
Alla oleva kymmenkohtainen muistilista on sovellettu Jakob Nielsenin heuristisen arvioinnin muistilistasta (Nielsen, 1994), hyödyntäen Keith Instonen wwwpalveluiden arviointiin muokattua samaista listaa
LisätiedotDokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi
Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-3500 Ohjelmistotuotannon projektityö LOGO:) Ryhmä XXX: Projektiryhmän nimi Projektin nimi Dokumentin nimi Jakelu: (Ryhmä) (Kurssihenkilökunta)
LisätiedotDigi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Toiminnallinen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Versio Päiväys Tekijä Kuvaus 0.01 7.11.01 Pekka Koskinen Alustava sisällysluettelo 0.1 12.11.01 Pekka
Lisätiedotohjelman 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ätiedot18. 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Lisätiedot1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:
Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return
LisätiedotAS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
LisätiedotOhjelmiston testaus ja laatu. Testausmenetelmiä
Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa
LisätiedotPong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana
Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia
LisätiedotHarjoitus 3 -- Ratkaisut
Harjoitus 3 -- Ratkaisut 1 ' '-merkki kirjoitetaan =, ' '-merkki!=, ' '-merkki ==. Yhtälöiden ratkaisusta puhutaan lisää myöhemmin. a f x, y : If ehtolauseke x y, y tämä palautetaan, jos
Lisätiedot