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

(Programozás szócikkből átirányítva)
Ez a közzétett változat, ellenőrizve: 2023. szeptember 25.

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.

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

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.

  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)

Kapcsolódó szócikkek

szerkesztés

További információk

szerkesztés
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy