fbpx

Programozási alapismeretek

A programozási alapismeretek egy igen népszerű alapozó tantárgy középiskolai és egyetemi szinten is. Magában foglalja azokat a modulokat, melyek a programírás és problémamegoldás alapjait jelentik. Jelentős részét képezi a programozás, azon belül is az algoritmikus gondolkodás és az alapvető nyelvi elemek megismerése. A program írásától kezdve egészen az elkészült program teszteléséig a teljes folyamatot lefedi, tervezéstől a megvalósításon át az ellenőrzésig.

Minden részletre kiterjedően nem tudunk segíteni egyetlen bejegyzéssel a sikeres vizsgádhoz, de jó tippeket és forrásokat találsz majd az oldalon, hogy fel tudj készülni és sikerrel abszolváld a tárgyat. További programozással kapcsolatos információkat pedig itt találsz: Programozás

Ha komolyabban érdekel a programozás és nem csak túl akarsz esni a tárgyon egy kettessel, ajánlom figyelmedbe Akadémiánk YouTube csatornáját és blogját, ahol nagyon sok érdekes és hasznos anyaggal találkozhatsz. Kérdezni pedig a hét minden napján tudsz vezető fejlesztőnktől, Andrástól, akár itt a blog alatti kommentben, vagy az info@ak-akademia.hu címen!

Nézzük meg, miben tudunk neked most segíteni:

  1. Alapfogalmak
  2. Hogyan írjunk programokat?
  3. A szoftverfejlesztés fő lépései
    1. Specifikáció
    2. Tervezés
    3. A programtervezés módszerei
  4. Programozás
  5. Tesztelés
    1. Típushibák a tesztelésben
    2. Tesztelési módszerek
  6. Hibakeresés és hibajavítás
  7. Hatékonyságvizsgálat
  8. Dokumentáció
  9. Karbantartás
  10. Ajánlott irodalom

Programozási alapismeretek – alapfogalmak

Programozási alapismeretek órán ülő diák a gép előtt
Te hol tartasz a programozási alapismeretek tanulásában?

Az összes egyetemi kurzusod alatt használatos fogalmat nem szeretném itt összefoglalni, de egy kis játékra hívlak azért ebben a programozási alapismeretek alapfogalmainak témakörében.

Nézd meg a 2 listát és keresd a párokat!

Írd meg kommentben a helyes megoldást, és beszélgessünk róla!

  1. algoritmus
  2. compiler
  3. dekompozíció
  4. implementáció
  5. szárazteszt
  6. szemantikai hiba
  7. szintaktikai hiba
  8. tesztelés
  • a.) a programnyelv leíró szabályainak megsértése
  • b.) feladat részekre bontása
  • c.) fordító
  • d.) hibakeresés
  • e.) logikailag értelmetlen művelet
  • f.) megvalósítás
  • g.) programterv gondolatban való ellenőrzése
  • h.) véges időn belül véget érő tevékenységsorozat

Hogyan írunk programokat?

A programozási alapismeretek tárgy keretein belül ismerned kell a fejlesztés menetét, részleteit is. Természetesen nem mindegy, hogy egy otthoni hobbi projekt készítéséről van szó, vagy szakemberek által nagyközönség elé szánt óriás szoftverről, melyen több fejlesztőcsapat napi 8 órában dolgozik. Míg otthon, mikor egy kis játékot összeraksz, pl. egy amőbát, átlátod a program működését, ismered minden osztály szerepét, akár metódus szinten érted a kódot, hiszen teljes egészében te írtad. Nagyvállalati környezetben azonban gyakori, hogy csak a számodra kiadott feladatot és annak közvetlen környezetét ismered csak, hiszen akkora szoftverekről van szó, hogy egy-egy részét is komplett szakember-csapatok fejlesztik, így képtelenség lenne egy embernek átlátnia a teljes rendszert, minden részletével. Ezeket a programokat már egyes területekre szakosodott, tapasztalattal rendelkező szakemberek írják és sok különböző eszközt használnak fel hozzá. A dokumentáció része egyszemélyes fejlesztés esetén is hasznos és értékes lehet számodra, de nagy rendszerek esetén a kommentek és utasítások végképp súlyponti helyen szerepelnek.

Na, de hogyan tudnak hatékonyan együttműködni csapatok úgy, hogy egy rajtuk túlnyúló nagy művet alkossanak? Megfelelő folyamatkövetéssel és jó kommunikációval. A szoftverek fejlesztésének folyamata az alábbi részekből áll:

  1. specifikáció
  2. tervezés
  3. programozás
  4. tesztelés
  5. hibakeresés és hibajavítás
  6. hatékonyságvizsgálat
  7. dokumentáció
  8. karbantartás
programkód notebook kijelzőjén
A hobbi projektedben melyik fázisban tartasz?

A szoftverfejlesztés fő lépései

1. Specifikáció

Programozóként (ahogy ez a regényíróknál is megfigyelhető) sokszor magával sodor a lendület. Alig várod, hogy az ujjaid érintsék a klaviatúrát és azonnal csodák jelenjenek meg a monitoron. Él a közhiedelemben egy kép, gondolom a népszerű krimiknek köszönhetően, hogy a jó programozó egy szemvillanás alatt megír akármit, a gondolkodásra szánt idő 2mp. Maximum. És persze úgy írja meg a kódsorokat, hogy egyetlen space-t sem nyom közben. Komolyan, figyeld meg!

Nos, a valóság ennél sokkal kevésbé látványos, de annál taktikusabb és praktikusabb. Minden fejlesztési munka első lépése (kellene, hogy legyen) a specifikáció. Ez nem jelent mást, mint a várható feladatok, az elvárt szoftver formális, matematikai leírását, valamint azt, hogy a megvalósított szoftvernek milyen feltételeknek kell majd megfelelnie és megvalósításához milyen eszközigény merül fel. Egyszóval egy kis előregondolkodás.

Ez egyszerűen hangozhat, de aki valaha próbált már laikus megrendelővel egyeztetni arról, hogy mire is van szüksége, tudja, hogy ez néha igencsak kihívásokkal teli időszak. Két „világ” találkozása ez, ahol érdemes mindkét „nyelvet” jól beszélni ahhoz, hogy gördülékenyen szülessen meg írásban a konkrét feladat. Ez tartalmazza a menüszerkezetet, az adatok ábrázolási módját, folyamatábrákat, struktúrákat, diagramokat.

2. Tervezés

A specifikáció megléte alapvető fontosságú ahhoz, hogy aztán elkezdődhessen a tervezés fázisa. Nem ritka, hogy a tervezési folyamat során derülnek ki további kérdések, melyeket a specifikációban pontosításra szorulnak, ekkor vissza kell lépni az első szakaszba, és megismételni a felmérést és megfogalmazást.

A programtervezés módszerei

Többféle megközelítés létezik: top-down, bottom-up, moduláris programozás, nyílt rendszerű felépítés, stb.

3. Programozás

Sok specifikáció és tervezési dokumentum a megvalósítás eszközeit is tartalmazza, ha nem, akkor általában a vezető fejlesztő vagy technológiai vezető dönt a használatos eszközökről, mint a megvalósítás nyelve. A programozás során a részfeladatokat fejlesztőkhöz rendelik, akik aztán a kapott leirat alapján megvalósítják a kívánt szoftvert. A megvalósítás során a projekten dolgozó szakemberek között gördülékeny kommunikáció az elvárt. A programozás során elképesztően fontos a megjegyzések használata, ezt a későbbi dokumentációs részben is említeni fogom. Sok fejlesztő kerüli, vagy csak apró megjegyzéseket tesz, melyeket szinte csak ő ért. Legyünk egyértelműek, mindenki munkáját megkönnyíti, ha így cselekszünk. Nem kell mindent kommentekkel ellátni. Sőt, ez káros is szoftverprojekt szempontjából! A jó programozó úgy ír kódot, hogy az önmagától is jól olvasható lesz más fejlesztők által, mert beszédes osztályneveket, változóneveket és metódusneveket használ. Azonban vannak olyan részei a programkódnak, amit minden esetben érdemes tömör, jól érthető kommenttel ellátni.

4. Tesztelés

A tesztelés folyamata értelemszerűen szükséges, ha megfelelő minőségű munkát szeretnénk kiadni a kezünkből. Nem véletlenül terjednek el internetes mémek formájában azok a képek, melyek a programok működését firtatják. Elsőre hibátlan programot írni? Majdhogynem lehetetlen. A tesztelés során próbaműködést végeztetünk az írt programmal. A tesztelés nem egy egzakt folyamat. Attól, hogy nem találtuk jeleit a hibás működésnek, még bőven előfordulhat a projekt későbbi szakaszaiban, hogy felmerülnek problémák. Ezek javítására a későbbi lépések során is szükség lehet.

Típushibák a programozók munkájában

Az egyik leggyakoribb probléma a sima, emberi figyelmetlenségből eredő elgépelés. Nincs ebben semmi meglepő, amikor több tízezer sor írásáról van szó, bizony az emberi tényező markánsan megjelenik az eredményben. Ezek gyorsan és könnyedén javítható hibák, általában nem okoznak fejtörést sem, legalábbis a többi hibához képest.

A változókat érintő hibák és a ciklushibák már sokkal komolyabb problémát képviselnek. Ha a kezdő érték nem megfelelő, vagy nem értelmezhető érték érkezik a ciklusba, a program méltatlankodni fog, és hibát dob. A végtelen ciklusról nem is beszélve.

Kérdés:

Neked milyen hiba okozta eddig a legnagyobb fejtörést? Mesélj nekünk kommentben itt a bejegyzés alatt, nagyon kíváncsiak vagyunk rá!

programozási alapismereteket tanul egy férfi az asztalnál
Szoktál jegyzetelni programozás tanulás közben?

Tesztelési módszerek

a.) statikus tesztelés

A statikus tesztelés során ún. száraztesztet végzünk, melyről már olvashattál az alapfogalmak bekezdésben is. Ha akkor nem tudtad a helyes választ, most megbizonyosodhatsz róla, hogy ez mit is jelent. A szárazteszt nem más, mint a program logikai ellenőrzése, ebben a részben még nem használunk segédeszközt a teszteléshez. Fogalmazhatunk úgy is, hogy megpróbáljuk eldönteni, hogy „ránézésre mennyire tűnik jónak” a program.

b.) dinamikus tesztelés

A dinamikus tesztelés során már nem elégszünk meg a program nézegetésével. Ún. fekete és fehér doboz tesztelésekkel ellenőrzik a szakemberek azt, hogy a program egyes részei hogyan viselkednek. Kipróbálási stratégia mentén haladnak a teszteléssel és a különböző útvonalakat és csomópontokat is átvizsgálják, módszeresen haladva.

c.) speciális tesztek

Speciális teszteket akkor érdemes futtatni, ha egy konkrét helyzetet szeretnénk értékelni, például a biztonság kérdését.

5. Hibakeresés

A tesztelés során felmerült rendellenes működési módokat a tesztelő jegyzőkönyvben rögzíti és átküldi a fejlesztők azon csoportjának, akik a hibák javításáért lesznek felelősek. A fejlesztők a hibás működés mögött megbújó hibákat keresik meg a projektnek ezen a pontján, és ha megtalálták, javítják annak okát. Ha kisebb hibáról van szó, akkor a kódban javítják is, de ha szerkezeti, felépítésbeli probléma merül fel, akkor akár nagyobb programrészek átírására szükség lehet. Ezek mindig kényes módosítások, megfontolást és együttműködést igényel a fejlesztőcsapat(ok) részéről. A hibajavítás folyamata után nem léphetünk tovább, szükséges újra tesztelni és újra értékelni a programot. Ez a 4. és 5. pont folyamatos kölcsönhatásban pörög a projekt szinte teljes ideje alatt.

6. Hatékonyságvizsgálat

A fejlesztésnek ebben a szakaszában vizsgálják meg a szakemberek azt, hogy megfelel-e az adott program a korábban elvártaknak, működésben, teljesítményben, időfelhasználásban, reakcióban, stb. Nyilvánvalóan minél kevesebb erőforrást használ, annál jobb.

7. Dokumentáció

A program születésének körülményeitől, a megvalósításon át a használat módjáig érdemes a teljes folyamatot és működést dokumentálni. Ez a kevésbé népszerű része a programozásnak, ezt tapasztalatból mondják nekem nap, mint nap, mert igazán száraz és egyhangú, de nélkülözhetetlen eleme a fejlesztésnek. Minden valamirevaló szoftverhez illik, hogy legyen User Guide, azaz felhasználói kézikönyv. Ha a szoftvert teljes egészében eladják annak fejlesztési jogával együtt, akkor mellékelni kell hozzá Programming Guide-ot is, azaz Fejlesztői kézikönyvet, mely minden, a fejlesztés során tett lépést tartalmaz.

8. Karbantartás

Természetesen minden rendszer, így a szoftverek is folyamatos karbantartást, figyelmet, egyfajta felügyeletet igényelnek a gördülékeny működésükhöz. Különösen, ha újabb és újabb frissítéseket és változtatásokat eszközölünk rajta az idő előrehaladtával. A megfelelő és átlátható dokumentáció és a clean code elvek követése a fejlesztés során elősegíti a könnyebb és stabilabb működtetést és fenntarthatóságot. A programozás alapjairól többet olvashatsz ebben a cikkünkben: A programozás alapjai

Ha kérdésed van a tartalommal kapcsolatban vagy valamiről szívesen olvasnál részletesebben is, jelezd nekünk kommentben, és hamarosan választ adunk!

Ha tetszett, ne felejtsd el megosztani másokkal is!


Ajánlott irodalom

A programozási alapismeretek tárgyhoz

  • Simon Gyula: A programozás alapjai, Typotex kiadó, 2011.
  • Szlávi Péter, Zsakó László: Módszeres programozás, ELTE IK, 2008.
  • Benkő László: Programozzunk C nyelven! – kezdőknek, Computerbooks Kiadó, 2008.