200 likes | 419 Views
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
E N D
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
Käyttöjärjestelmä ja sovellukset Visual Studio CAD Tilastot Käyttöliittymä C++ Käyttö- järjestelmä Verkko- ohjelmistot Varasto- kirjanpito Tekstinkäsittely Pelit Operating Systems Palkan- laskenta J.Holvikivi
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
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
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
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
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
Ohjelmointi ongelmanratkaisuna (2) Tehtävä Algoritmi vuokaavio pseudokoodi Ohjelma Lähdekoodi Kääntäjä Tulkki Käännetty konekielinen ohjelma Konekielisiä komentoja J.Holvikivi
Aloita IF vertailulause ei jos ehto on tosi on Toiminta 1 Toiminta 2 Jatka Loppu J.Holvikivi
Tavalliset vuokaaviosymbolit Toiminta Dokumentti kyllä ei Vertailu Ali- ohjelma Toiminta Toiminta Päätepiste J.Holvikivi
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 NLET S = 0LET I = 0SILMUKKA: PRINT "Kuinka vanha on henkilö" I+1INPUT XLET S = S+XLET I = I+1IF I < N GOTO SILMUKKALET K = S/NPRINT "Joukon keski-ikä on " KEND J.Holvikivi
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
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
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
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
Graafinen, ikkunointi • Windows, Linux, Mac • Graphical User Interface (GUI) • Ikkunat, kuvakkeet, hiiren käyttö Käyttöliittymiä Teksti- ja komentopohjainen • MS-DOS • Unix • Kaukosäätimet, kännykät J.Holvikivi
Suunnittelun yleisperiaatteita • Rakenteellinen suunnittelu: kokonaisuudesta osiin, top-down • 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
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
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