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

A 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

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

 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)
 Kettes számrendszer használata (az összes művelet, pl. összeadás, szorzás, kettes számrendszerbeli logikai műveletekre redukálható)
 Belső memória használata
 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.
 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)
 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)
 Szerkezet: öt funkcionális egység (aritmetikai egység, központi vezérlőegység, memóriák, bemeneti és kimeneti egységek)

Programrendszerek és nagyméretű adatbázisok tervezésének és fejlesztésének elvei 
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 

 
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:

 Folyamatábra (Control flow graph)
 Struktogram (Chapin-chart)
 Jackson-diagram (JSP diagram)

Szoftverfejleszté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:
 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
 Valamely programtervezési módszerrel a programszerkezet megalkotása és a használandó eszközök kiválasztása. (Hardver platform, nyelvek, adatok stb…)
 Forrásprogram elkészítése (kódolás)
 A kész program tesztelése
 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

Források 
 A programozási módszerek rövid történeti áttekintése, tig.kgk.uni-obuda.hu
 Programozási alapismeretek, progalap.elte.hu
 Az algoritmusok leírása, vmig.sulinet.hu

Kapcsolódó szócikkek 
 Program (informatika)

További információk 
 Programozás.lap.hu - linkgyűjtemény
 PROG.HU - Online Fejlesztői Portál