Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi
Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat Ohjelmistokehitysvälineet kehitysympäristöt ohjelmointikielten kääntäjät Varusohjelmat käyttöjärjestelmät käyttöliittymät tietoliikenneohjelmistot, tietoturvallisuus tiedonhallinta J.Holvikivi 2
Käyttöjärjestelmä ja sovellukset Visual Studio CAD C++ Käyttöliittymä Tilastot Palkanlaskenta Käyttöjärjestelmä Tekstinkäsittely Pelit Operating Systems Varastokirjanpito Verkkoohjelmistot J.Holvikivi 3
Ohjelmointikielet (1) Konekieli, prosessorikohtainen Assembler (mnemoninen) Perinteiset proseduraaliset kielet: Fortran, Pascal, Cobol, BASIC Oliokielet (object oriented programming) C ++ Java, C# Visual Basic Visual C++ J.Holvikivi 4
Ohjelmointikielet (2) Skriptikielet (Internet - ohjelmointi) php, Python, Ruby (palvelimella) Javascript (selaimessa) VBScript Flash Sovelluskehittimet Delphi Oracle Funktionaalinen ohjelmointi (XSLT) ja deklaratiiviset kielet (SQL) J.Holvikivi 5
Ohjelmointikieli syntaksi toiminta (kääntäminen, tulkinta) logiikka (semantiikka) algoritmit oliot rakenne käyttöliittymäelementit kirjastot (libraries) Data eli tiedot ja ohjelmat käsitellään tietokoneessa samanarvoisina ja samassa muodossa - suoritin ei erota niitä toisistaan. Näin ollen ohjelmat voivat käsitellä toisiaan kuten dataa. J.Holvikivi 6
Ohjelmointi ongelmanratkaisuna Tietokoneen älykkyys on ohjelmissa Ohjelmointi on ihmisen kehittämän älykkään ratkaisun kertomista tietokoneelle niin, että se pystyy suorittamaan tehtävän toistuvasti ja itsenäisesti J.Holvikivi 7
Algoritmit Tarkasti ottaen algoritmi on äärellinen joukko täsmällisiä, suoritettavissa olevia ohjeita, jotka ohjaavat päättyvää tehtävän suoritusta. laulun nuotit koneen käyttöohje kokoamisohje Algoritmeilla ilmaistaan ohjelman toimintalogiikka. Algoritmi kertoo missä järjestyksessä toiminnot suoritetaan. tietokone noudattaa koodattua algoritmiä mekaanisesti Algoritmi voidaan esittää tekstinä, vuokaaviona tai niin sanottuna pseudokoodina ennen kuin se koodataan jollekin ohjelmointikielelle. J.Holvikivi 8
Ohjelmointi ongelmanratkaisuna (2) Tehtävä Algoritmi vuokaavio pseudokoodi Ohjelma Lähdekoodi Kääntäjä Tulkki Käännetty konekielinen ohjelma Konekielisiä komentoja J.Holvikivi 9
Aloita IF vertailulause ei jos ehto on tosi on Toiminta 1 Toiminta 2 Jatka Loppu J.Holvikivi 10
Tavalliset vuokaaviosymbolit Toiminta Dokumentti kyllä Vertailu ei Aliohjelma Toiminta Toiminta Päätepiste J.Holvikivi 11
Ohjelman logiikka pitää suunnitella ennen kuin sitä aletaan varsinaisesti ohjelmoida eli koodata. Seuraavassa esimerkki ohjelmalogiikasta, joka laskee keskiarvon annetuista luvuista. PRINT "Ohjelma laskee keskiarvon henkilöiden iästä" PRINT "Kuinka monta henkeä?" INPUT N LET S = 0 LET I = 0 SILMUKKA: PRINT "Kuinka vanha on henkilö" I+1 INPUT X LET S = S+X LET I = I+1 IF I < N GOTO SILMUKKA LET K = S/N PRINT "Joukon keski-ikä on " K END J.Holvikivi 12
Assembler- ohjelmointi Esimerkki kahden luvun yhteenlaskemisesta Step 1: Get the value from memory location 6C and place it in a register. =LOAD Step 2: Get the other value to be added from memory location 6D and place it in another register. =LOAD Step 3: Activate the addition circuitry with the registers used in steps 1 and 2 as inputs with another register designated to store the result. =ADD Step 4: Store the result in memory location 6E. =STORE Step 5: Stop. =HALT Muita mahdollisia käskyjä: MOVE, OR, AND, ROTATE, JUMP J.Holvikivi 13
Konekielinen ohjelma, teoreettinen esimerkki Adding values stored in memory Step 1: 156C Step 2: 166D Step 3: 5056 Step 4: 306E Step 5: C000 J.Holvikivi 14
Käyttöjärjestelmän tehtävät Käyttöjärjestelmä on ohjelmisto, joka ohjaa tietokoneen toimintaa. ohjaa laitteiston osia ohjaa suoritinta ja muisteja suorittaa ohjelmia Se on tavallisesti asennettuna mikrotietokoneen kiintolevyllä. Käyttöjärjestelmä käynnistyy automaattisesti, kun tietokoneeseen kytketään virta, ja se on muistissa eli käynnissä koko sen ajan, kun tietokonekin on käynnissä. Kommunikoi käyttäjän kanssa. Optimoi järjestelmän suorituskyvyn. Huolehtii tiedosta ja tiedostoista. Tietoturvallisuus. J.Holvikivi 15
Ohjelmien suorittaminen Batch processing - eräajo työt kerätään jonoon: ohjelma ja data niputetaan FIFO (first-in-first-out) tai prioriteetti Interaktivinen työskentely käyttäjän ja tietokoneen vuorovaikutus, välitön palaute Reaaliaikaprosessointi: automaatiojärjestelmät Multitasking - moniajo - time-sharing: prosessit odottavat vuoroaan muistissa J.Holvikivi 16
Käyttöliittymiä Teksti- ja komentopohjainen MS-DOS Unix Kaukosäätimet, kännykät Graafinen, ikkunointi Windows, Linux, Mac Graphical User Interface (GUI) Ikkunat, kuvakkeet, hiiren käyttö J.Holvikivi 17
Suunnittelun yleisperiaatteita Rakenteellinen suunnittelu: kokonaisuudesta osiin, topdown Määrittele toiminta, syötteet, tulosteet Selvitä mitä käyttäjä tarvitsee ja haluaa Jaa moduleiksi (yksi kokonainen tehtävä / moduli) Modulien välinen tiedonvaihto: globaalit ja lokaalit muuttujat Algoritmien määrittely (toiminta) kullekin modulille Osien suunnittelu, ohjelmointi ja testaus loogisessa järjestyksessä Kokonaisuuden testaus J.Holvikivi 18
Dokumentointi selkeä dokumentointi on avain ymmärrettävyyteen tarpeen ylläpidon ja edelleenkehittämisen vuoksi rakennekaaviot vuokaaviot, algoritmit tietoluettelot, taulukot; tietorakenne käsitekaaviot, olio-ohjelmointi käyttöohjeet J.Holvikivi 19
Testaus Testaamista suoritetaan monessa vaiheessa Käytettävyystestaus suoritetaan loppukäyttäjien kanssa: toiminnan läpikäyminen (löytääkö käyttäjä toiminnot ja osaako hän edetä) Ohjelmoinnin aikainen testaus poistaa koodivirheet Järjestelmätestaus käy koko järjestelmän toiminnan läpi osista kokonaisuuteen. Tavoitteena ohjelman oikeellisuuden todistaminen. J.Holvikivi 20