Számítógép-programozás

A Wikipédiából, a szabad enciklopédiából
Részlet egy programból, amely a Commodore 64 mikroszámítógép saját BASIC nyelvén íródott

Számítógép-programozás (vagy egyszerűen programozás) egy vagy több absztrakt algoritmus megvalósítását jelenti egy bizonyos programozási nyelven. A programozásban megtaláljuk a művészet, a tudomány, a matematika és a mérnöki tudomány elemeit.

A rendszerfejlesztés a programozást (az implementációt) a szoftverfejlesztés egyik lépéseként kezeli. A rendszerfejlesztés eszköztárát a feladat nagyságától, illetve céljától függően használják fel a programozás során: a szabványos modellező és rendszerfejlesztési módszertanok, projektmenedzsment, gyors alkalmazásfejlesztés, programverifikáció, stb.

Története[szerkesztés]

Neumann-elvek, a tárolt programú számítógép[szerkesztés]

A. M. Turing angol matematikai logikus 1927-ben kimutatta (és a számológépi technika számos szakértője azóta különféle módokon gyakorlatilag is bebizonyította), hogy olyan programutasításokat is ki lehet dolgozni egy számológép számára, amelyek arra késztetik, hogy valamely más - pontosan meghatározott működésű - számológép módjára viselkedjék. Az ilyen utasításrendszereket, amelyek révén egy gép utánozza egy másik gép viselkedését… programoknak nevezzük.”

- Neumann János: A számológép és az agy, 1945[1]

Neumann János a mai modern Neumann-elvű számítógépek építéséhez 1946-ban dolgozta ki az alapelveket
  1. Teljesen elektronikus működés (ez Neumann idejében elektroncsöves felépítést jelentett, amit később a tranzisztoros, majd az integrált áramkörös felépítés követett)
  2. Kettes számrendszer használata (az összes művelet, pl. összeadás, szorzás, kettes számrendszerbeli logikai műveletekre redukálható)
  3. Belső memória használata
  4. Tárolt program elve. A számításokhoz szükséges adatokat és programutasításokat a gép azonos módon, egyaránt a belső memóriában (operatív tár) tárolja.[2]
  5. Soros utasításvégrehajtás (az utasítások végrehajtása időben egymás után történjen; ennek egy alternatívája a párhuzamos utasításvégrehajtás, amikor több utasítás egyidejűleg is végrehajtható: ezt a lehetőséget Neumann elvetette)
  6. Univerzális felhasználhatóság, Turing-gép (programozhatóság; a különböző feladatok programokkal legyenek megoldva, nem pedig erre a célra épített hardverrel)
  7. Szerkezet: öt funkcionális egység (aritmetikai egység, központi vezérlőegység, memóriák, bemeneti és kimeneti egységek)[3]

Programrendszerek és nagyméretű adatbázisok tervezésének és fejlesztésének elvei[szerkesztés]

A számítógép-programozás mai tudománya az 1980-as évektől kezdett kialakulni, amikor már komplett programrendszerekre volt szükség, amelyek nagyméretű adatbázisokat használtak.

Szabványos programtervezési, algoritmusleíró eszközök, módszertanok[szerkesztés]

Jackson-diagram - Lineáris szerkezet (szekvencia), az utasításokat balról jobbra haladva kell végrehajtani
Jackson-diagram - Elágazás (szelekció), jobb felső sarkában kis karikával (o) jelölt téglalap
Jackson-diagram - Ismétlés (iteráció, ciklus), amíg a feltétel teljesül, a jobb felső sarkában csillaggal (*) jelölt téglalap

A különféle programtervező, algoritmusleíró és vezérlő szerkezetek a programozási feladat műveletekre bontását, és az elemi műveletek végrehajtási sorrendjét írják le.

A módszertanok mindegyike abból indul ki, hogy egy program algoritmusa háromféle típusú vezérlési szerkezet segítségével írható le:

  • Szekvencia: a sorban egymást követő elemi utasítások végrehajtása
  • Szelekció: feltétel(ek)től függő tevékenység(ek) végrehajtása, több irányban folytatva az előrehaladást
  • Iteráció: ismétlési szerkezet, elemi utasítások ciklikus végrehajtása feltétel alapján

Az idők során különféle módszertanok és grafikus - a program algoritmusának vizuális leírására alkalmas - tervezési eszközök jöttek létre:

Szoftverfejlesztés[szerkesztés]

A szoftver egy gyűjtőnév a számítógépes programokra és adatokra. A dokumentáció is a szoftver szerves részét képezi, bár ez nincs benne a programban.

A szoftvertervezés részei:

  1. A megoldandó probléma meghatározása, felmérése a majdani felhasználók igényei alapján, specifikáció készítése
  2. Valamely programtervezési módszerrel a programszerkezet megalkotása és a használandó eszközök kiválasztása. (Hardver platform, nyelvek, adatok stb…)
  3. Forrásprogram elkészítése (kódolás)
  4. A kész program tesztelése
  5. Dokumentáció készítése, mely tartalmazza a szoftvertervezés fázisaiban keletkezett adatokat (felhasználói leírás, igényfelmérés, programtervek, algoritmusok, forráskód, tesztelési jegyzőkönyvek stb.), fő célja a szoftver későbbi fejlesztésének elősegítése.

A fenti pontok a program elkészültéig ismétlődnek. A „megoldandó probléma” és a „platform” a nehezebb döntések közé tartozik, mert ezeken a későbbiek során nehéz változtatni. A program kódolása, a tesztelés és a dokumentáció írása (jó esetben) egymást felváltva, a program elkészültéig zajlik.

A nagyobb rendszerfejlesztési projektek sikerét nagyban megnöveli a szabványos rendszerfejlesztési módszertanok (például SSADM) és a gyors alkalmazásfejlesztés használata.

Jegyzetek[szerkesztés]

  1. Neumann János. A számológép és az agy (magyar nyelven). Maple Press Company (1831) 
  2. A program-, és adatmemória fizikailag közös, ebből származik az architektúra legnagyobb hátránya: a sebezhetőség. (A memóriában tárolt bájtokról nem tudjuk eldönteni, hogy adatot vagy programkódot tartalmaznak, ezt csak a felhasználás módja dönti el!) Ezt használják ki a vírusok, amikor a felhasználó számára adatnak tűnő állományt (például kép) tölt le, miközben a gép a benne található káros kódot futtatja.
  3. A Neumann-elv (magyar nyelven), 2003. (Hozzáférés: 2014)

Források[szerkesztés]

Kapcsolódó szócikkek[szerkesztés]

További információk[szerkesztés]