ATK

OHJELMOINTI










ATK:n aiheita ja alueita missä tietotekniikkaa sovelletaan:

  • Globaali-, Kansallinen-, Yritys- ja Yhteisöhallinto
  • Tuotannonohjaus
  • Toiminnanohjaus
  • Yksityinen toiminta
  • Viestintä
  • Koulutus
  • Tutkimus
  • Lääketiede
  • Liikenne
  • Sodankäynti
  • Viihde
  • Sulautettu ATK

  •  
     

    Esa Vitikka OHJELMISTOJEN TEKEMINEN JA INTEGROINTI

  • SAATESANAT
  • OHJELMISTON KEHITYS VAIHEET
  • ASSEMBLER
  • LAUSEKIELET
  • OLIO OHJELMOINTI
  • KOMPONENTTI OHJELMOINTI
  • SOVELLUSKEHITTIMET
  • TIETOKANNAT
  • RAJAPINNAT
  • CASE OHJELMOINTI
  • TEKOÄLY OHJELMOINTI
  • INTERNET ym. VERKOT OHJELMOINTI
  • ASIAKAS/PALVELIN (Client/Server) OHJELMOINTI
  • TIEDOSTOPALVELIN (Fileserver) OHJELMOINTI
  • MONIKANTA ARKKITEHTUURI OHJELMOINTI
  • RINNAKKAISPROSESSOINTI
  • VALMISOHJELMAT
  • MITÄ OHJELMISTOJA MARKKINOILLA TEHDÄÄN
  • OHJELMOINTI ESIMERKKI
  • SAATESANAT

     

    Ohjelmointi kieliin ja erilaisiin kehittimiin on saatavana paljon kirjoja, mutta Sovellusten rakentamisessa törmää eri kielien ja kehittimien yhdistämiseen (eli integrointiin) ja siihen on saatavana vähän ohjeita.

    Nämä ohjeet on tehty helpottamaan vähän Sovellusten tekoa ja tässä keskitytään PC-tietokoneisiin saatavilla oleviin käyttöjärjestelmä- ja sovellusten kehitys ohjelmiin. Ohjeita on pyritty yksinkertaistamaan.

    Tietoja tähän olen saanut omasta kokemuksesta, opettajilta, kirjoista ja lehdistä. Soveltamalla käytäntöön.

    Ohjelmia on Tietokoneita lähinnä olevia alustus ohjelmia kutakin prosessori perhettä koskevia esim. Bios, käyttöjärjestelmiä joita on neljää eri tyyppiä 1.eräajo missä ohjelmat ajetaan yhdessä erässä määrätyssä järjestyksessä 2. aikajako missä prosessori aikaa jaetaan tasavertaisesti eri ohjelmille yhdelle kerrallaan 3. Reaaliaika käyttöjärjestelmä missä ohjelmat jaetaan eri tehtäviin ja kukin tehtävä saa aikaa prosessorilta tärkeys järjestyksen mukaan tehtävät keskeyttävät prosessorin ja saavat suoritus järjestyksen niille määrätyn ohjauksen mukaan. 4. Verkko käyttöjärjestelmät mitkä jakavat verkon resursseja.

    Sitten on varusohjelmia esim. eri ohjelmointi kielten kääntäjät ja lähimpänä käyttäjää ovat sovellukset jotakin ATK- tarkoitusta varten ohjelmoidut ohjelmistot.

    Ohjelmia on merkkipohjaisia missä kaikki editointi tehdään näppäimistöllä mutta, tänä päivänä on myös grafiikkapohjaisia missä editointi komentoja voi antaa myös hiirellä ns. visuaaliset ohjelmat ohjelmistot WYSIWYC sen minkä näet niin saat.

    Ohjelmoinnissa on pääsääntöisesti kolme rakennetta:

    PERÄKKÄISRAKENNE: laitetaan ohjelma käskyjä peräkkäin ja käskyt suoritetaan siinä järjestyksessä.

    HAARAUTUMINEN: suoritetaan käsky tai käskyt, kahden tai useamman eri haaran mukaan.

    SILMUKKA: suoritetaan käsky tai käskyt ja hypätään suorittamaan ne uudelleen.

    Joissakin assemplereissa on vielä toisto mutta silmukka tarkoittaa samaa.

    Näillä rakenteilla suoriudutaan ohjelmoinnista olettaen että tunnetaan käskyt, funktiot, luokat ja komponentit joita on paljon eri kielissä ja kehittimissä plus että, niitä voi tehdä itse.

    Täytyy myös osata edellä mainituilla rakenteilla tekemään algoritmeja eli ratkaisemaan matemaattiset ja tiedon siirto ongelmat.

    Eri ohjelmien rajapinta ja kirjasto käskyt on tiedettävä integroitaessa ohjelmistoja, tämä onkin ongelmallinen tehtävä koska ohjelma versiot muuttuvat ja rajapintoja on paljon ja näin ollen myös käskyjä on paljon.

    Täytyy tuntea ohjelmat ja niiden rajapinnat (eli käskyt miten rajapintaa käytetään) hyvin että, pystyy yhdistelemään niitä, sovelluksia tehtäessä.

    Sovelluksen voi toki tehdä vain yhdellä kielellä tai kehittimellä mutta, usein tarvitaan useamman työkalun yhdistämistä varsinkin monipuolisemmissa sovelluksissa mikä on tehokas ohjelmointi tapa kun voi käyttää valmista materiaalia. Tai kun tietää, että ohjelma tai ohjelmisto on jo valmiina niin käyttää sitä eikä tarvitse tehdä muuta kuin opetella ohjelman käyttö.

    Täytyy myös tuntea ohjelmistojen tekoprosessiin käytetyt vaiheet ja menetelmät.

    TIETOKONE voi laskea, siirtää ja lajitella tietoa sellaista on ATK ja ohjelmointi tehtävät.

    OHJELMISTON KEHITYS VAIHEET

    SELVITYS

    Selvitys vaiheessa tiedustellaan mikä on tehtävä ja kannattaako sitä alkaa tehdä sekä mitä se mahdollisesti maksaa.

    Määrittely

    Tehtävän täsmentäminen rajataan mitä ohjelman tulee tehdä ja mitä ei.

    Käyttöliittymän suunnittelu.

    Syöttö/Tulostus tietojen määrittely tietotyypit ja esitysmuoto.

    Virhetilanteiden suunnittelu.

    Ympäristovaatimukset käytettävät koneet, ohjelmat ja Käyttäjät.

    SUUNNITTELU

    Jäsentely ja jako osatehtäviin tai olioiden suunnittelu.

    Tietorakenteiden suunnittelu.

    algoritmien suunnittelu ja ratkaisujen tarkentaminen.

    Testauksen suunnittelu.

    TOTEUTUS

    TESTAUS

    KÄYTTÖÖNOTTO

    YLLÄPITO

    ASSEMBLER
     
     

    Tietokone ymmärtää vain "ykkösiä" tai "nollia" näillä ohjelmien tekeminen on työlästä ja vaatii paljon tietoa ja aikaa.

    Edellisestä johtuen kehitettiin symbolinen konekieli ASSEMBLER, missä ohjelmakäskyjä kuvataan symboleilla esim. ADD=laske yhteen MOV=siirrä jne. näin voitiin helpottaa ohjelmointia mutta tietoa koneesta tarvittiin edelleen.

    Jokaisella keskusyksiköllä (prosessorilla) on oma assembler kieli, joka käännetään kääntäjällä ja saadaan koneen ymmärtämää koodia.

    Assembler kieli on tehokasta mutta vieläkin aikaa vievää.
     
     

    LAUSEKIELI

    Lausekieliä kehitettiin nopeuttamaan ja helpottamaan ohjelmien tekoa, niitä on Basic, Cobol, Fortran, C ja ym. Lausekielinen ohjelma koostuu lauseista ja on vähemmän aikaa vievää ja helpompaa tehdä ohjelmia niillä kuin assemblerilla.

    Joskus kuitenkin kun halutaan tehdä joistakin ohjelman osista tehokkaampia tai kun lausekielellä ei voi niin yhdistetään assembler osia lausekieleen esim. C:ssä yhdistäminen tapahtuu ASM käskyllä.

    Usein käyttöjärjestelmiä tehtäessä kirjoitetaan osia assemblerilla.

    Lause kielet tukevat rakenteista ohjelmointia siinä tehtävä jaetaan pienempiin osiin tai tehtäviin ja kootaan ohjelma niistä.

    Lausekielissä käytetään paljon valmiita tai itse tehtyjä funktioita niillä on nopea tapa rakentaa käyttöliittymiä tai muuta sovellukseen liittyvää.

    OLIOOHJELMOINTI

    Olio ohjelmointia alettiin kehittää helpottamaan suurempien ohjelmistojen kehittämistä. Olio ohjelmointia tukevia kieliä on esim. C++, JAVA, SMALTALK ja eri sovelluskehittimiä.

    Ohjelmaa suunniteltaessa jaetaan tehtävä Olioihin ja ohjelmaa tehtäessä kirjoitetaan niistä luokkia.

    Olio ohjelmoinnissa kirjoitetaan lähde koodiin luokkia tai suoritettavassa lähdekoodissa kutsutaan kirjastoista valmiita luokkia. Olioksi luokka muuttuu kun muuttuja määritellään kyseiseksi luokka tyypiksi. Oliolle voidaan myös varata muistia RAM:mista.

    Olio ohjelmoinnissa voidaan luoda luokkia jossa on tietoja ja toimintoja samassa paketissa. Näin ollen paketti hoitaa sille kuuluvat tehtävät tarvitsematta tietää, miten se on tehty. Ohjelma rakennetaan näistä luokista, ne voi periytyä isäntä luokasta, niin ei tarvitse tehdä koko luokkaa uudelleen. Suurempien ohjelmien suunnittelu ja tekeminen pysyy paremmin käsissä tosi elämää kuvaavien olioiden avulla.
     
     

    KOMPONENTTIOHJELMOINTI

    Komponentti ohjelmoinnissa ohjelmat rakennetaan ohjelmointi rakenteilla ja eri komponenttia koskevilla kutsuilla. Komponentteja ovat esim. Aktivx ja javabeans jotka ovat samanlaisia paketteja kuin luokatkin niihin voi ohjelmoida tietoja ja toimintoja mutta, komponentti on paljon käytetty sana elektroniikassa elektroninen kortti rakennetaan eri tehtävää suorittavista komponenteista.

    Valmiita komponentti kirjastoja on olemassa ja niitä voi myös ohjelmoida itse, komponentti voi olla toisille helpommin ymmärrettävä kuin olio.
     
     

    SOVELLUSKEHITTIMET

    Sovellus kehittimiä on saatavana erin tyyppisiin sovelluksiin, useimmat ovat kuitenkin kehitetty tietokantapohjaisiksi, niillä on nopeampaa kehittää sovelluksia

    kun lause ja olio kielillä kun ei tarvi itse tehdä vamiiksi hyväksi koettuja esim. tiedon tallennus, haku tai valmiiden ohjelmien tulosteiden käsittely tapoja.

    Sovellus kehittimiä on esim. Acces, Paradox, Oracle ja Director näissä ohjelmat rakennetaan ohjelma rakenteilla ja Tehokkailla ohjelmaa rakentavilla olioilla, komponenteilla ja käskyillä.

    Ohjelma rakenteita tehdään edellä mainituilla kielillä tai sovelluskehittimen omalla samoja rakenteita kuvaavalla kielellä.
     
     

    TIETOKANNAT

    Tietokannat Ohjelmoidaan joko kokonaan ohjelmointi kielellä mutta, tarkoitukseen sopivalla sovelluskehittimellä ohjelman rakentaminen on paljon nopeampaa kun, ei tarvitse itse tehdä kaikkea tai kun ei osata tehdä kaikkea itse.

    Tietokannoissa on myös oma strukturoitu kyselykieli SQL millä tehdään kyselyt ja päivitykset tietokantaan.

    Tietokantaan voi myös liittyä toisesta kielestä tai sovelluskehittimestä erityisen rajapinta ohjelmiston välityksellä esim. ODBC, kyselyt tai päivitykset tehdään yleensä SQL kielellä ja rajapintaa käyttävillä käskyillä (funktioilla).

    Tietokannan rakenne on seuraava:

    Tietokanta nimi indeksi

    Tiedosto

    Taulu

    Kenttä

    Merkki

    Bitti

    RAJAPINNAT

    Rajapintoja on olioilla, komponenteilla, eritietokantoihin liittymisillä ja eri ohjelmilla.

    Niiden käyttämisessä tarvitsee tietää käskyt ja objektit.
     
     

    CASE OHJELMOINTI

    CASE on Tietokone avusteista ohjelmistojen tekoa ja ohjelmistot suunnitellaan jarakennetaan jollakin kehitetyllä menetelmällä niitä on useampia.

    CASE tukee koko ohjelmistojen kehitys menetelmää määrittelyä, suunnittelua ja ohjelman tekemistä. Ohjelmistot määritellään ja suunnitellaan graafisesti, lomakkeilla, ohjauksilla ja tuloksesta CASE ohjelma koodaa automaattisesti valmiin ohjelman sen tukemalle kielelle.

    TEKOÄLYOHJELMOINTI

    Tekoäly on ihmisen älyn soveltamista tietokoneen ymmärtämään muotoon.

    Tekoäly sovelluksia voi yksinkertaistettuna rakentaa if ten else ja logiikka rakenteilla.
     
     
     
     

    INTERNET ym. VERKOT OHJELMOINTI

    Verkossa voidaan siihen kytkettyjen Tietokoneiden laitteet ja ohjelma resurssit jakaa toistensa kesken.

    ASIAKAS/PALVELIN (Client/Server) OHJELMOINTI

    Ohjelmat on jaettu palvelin ja asiakas ohjelmiin ne voivat sijaita joko samalla koneella tai samaan verkkoon kytketyillä eri koneilla. Kun asiakas ohjelma ottaa yhteyttä palvelin ohjelmaan niin asiakas ei välttämättä tiedä mistä palvelin ohjelman ajaa tiedoston tai palvelun hakee.

    TIEDOSTOPALVELIN (Fileserver) OHJELMOINTI

    Kun tietokoneeseen tai verkkoon liitetty ohjelma tai käyttäjä hakee tiedostoa tai palvelua niin, se tietää tarkan osoitteen tiedosto tai palvelu polulle.

    MONIKANTA ARKKITEHTUURI OHJELMOINTI

    On samanlaista kuin asiakas/palvelin kuitenkin siihen väliin lisättynä sovelluspalvelin minkä kautta ohjelma tiedot prosessoidaan. Näin voidaan samaa sovellusohjelmistoa käyttää eri koneista.

    RINNAKKAISPROSESSOINTI

    Ohjelmat jaetaan eri säikeisiin ja niitä ajetaan joko saman koneen useammassa prosessorissa tai verkkoon kytketyissä koneissa yhtä aikaa.

    Jos säikeet on rakennettu yhdelle prosessorille niin ajetaan vuorotellen prosessorissa ja vaihdetaan tietoja niiden välillä jos on tarpeen.

    Rinnakkaisprosessoinnissa ajetaan yhtä pääsovellusta joka hoitaa tietojen vaihdon ja tehtävien jaon muille verkon tai koneen prosessoreille.

    Rinnakkaisprosessoinnissa on kahta tekniikkaa siinä joko prosessorit käyttävät samaa muistia tai omia muisteja.
     
     
     
     

    VALMISOHJELMAT

    Valmisohjelmat ovat edellisillä tekniikoilla valmistettuja sovelluksia mitkä palvelevat jotakin tarkoin rajattua tehtävää tai tehtäviä.

    MITÄ OHJELMISTOJA MARKKINOILLA TEHDÄÄN

    Ohjelmointi kohteita on rajaton määrä, mutta kohteita voi ryhmitellä seuraavasti.

    Itse tietokoneeseen liittyviä ohjelmia on käyttöjärjestelmät ja erinlaiset työkaluohjelmat kuten kääntäjät eri kielille, tekstinkäsittely, kuvan ja äänen käsittely.

    Seuraavaksi tulee sulautetut ohjelmat jotka liittyvät suurelta osin hardwareen elierinlaisia elektronisia laitteita mihin tarvitaan prosessori tai logiikka ohjelmia.

    Sitten tulee erinlaiset tietoliikenne ohjelmat, melkein aina lisäksi laskennan joudutaan siirtämään tietoa paikasta toiseen.

    Seuraavaksi tulee toimisto ohjelmistot joita voi yleensä käyttää myös kotioloissa.

    Sitten on yrityksien tarvitsemat ohjelmat esim:

    Taloushallinto kirjanpito ja reskontrat ym.

    Materiaalihallinto varastokirjanpito ja siihen liittyvää.

    Henkilöstöhallinto Palkanlaskenta.

    *Toiminnanohjaus mikä kuvaa yrityksen toimintaa.

    *Tuotannonohjaus missä yhdistetään automaatio ja perinteinen ATK.

    *Tietokannat melkein kaikki yrityksiin liittyvä voidaan tehdä tietokantakehittimillä.

    *Multimedia

    *Inter-, Intra- ja Ekstranet

    *Asiantuntijajärjestelmät

    *Simulointi

    *Wap matkapuhelin verkko