|
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
|