A blokk · Bevezetés, környezet, Git · 8. tananyag
Kétféle „hogyan” létezik a szoftverkészítésben: hogyan gondolkodik a kód (paradigma), és hogyan szervezzük a munkát (folyamatmodell). Ez a fejezet megmutatja, milyen alapvető szemléletmódok léteznek a szoftverfejlesztésben a kódállomány és a munka szervezésére.
A paradigma gondolkodásmód: milyen alapegységekből épül fel a program. A nagy családok — és hogy hol találkozol velük ebben a tanévben:
| Paradigma | Alapegység | Lényege | Hol találkozol vele? |
|---|---|---|---|
| procedurális | utasítás, eljárás | a program lépések sorozata, felülről lefelé | az I. félév programjai |
| objektumorientált (OOP) | objektum | adatok + a rájuk vonatkozó műveletek együtt | a II. félév — és az egész C# |
| eseményvezérelt | eseménykezelő | a kód eseményekre válaszol | WPF (L blokk) |
| funkcionális | függvény | mellékhatás nélküli függvények kombinálása | LINQ-ízelítő (J blokk); F# (A3) |
Két fontos igazság:
A klasszikus, lépcsőzetes modell: minden fázis az előző teljes befejezése után jön.
A fejlesztés körökben halad: minden kör egy kis vízesés (tervezés → építés → kiértékelés), és minden kör végén működő, egyre teljesebb változat van. Kulcseleme a kockázatelemzés: minden körben azt építjük meg először, ami a legkockázatosabb — hogy ha baj van, korán derüljön ki.
A mai ipari gyakorlat: rövid, 1–2 hetes iterációk, mindegyik végén működő, bemutatható termékrészlet; a visszajelzések azonnal beépülnek. (Az „agilis” ennek a szemléletnek a gyűjtőneve — leghíresebb keretrendszere a Scrum.)
A gondolat betetőzése: a szoftver soha nincs kész — apró változtatások mennek ki folyamatosan, akár naponta többször. Ehhez automatizált fordítás és tesztelés kell (a szakma CI/CD-nek — Continuous Integration / Continuous Delivery — hívja az eszközparkját). A böngésződ és a telefonod alkalmazásai így frissülnek — észre sem veszed, és már az újat használod.
| Modell | Mikor van működő program? | Mikor derül ki a hiba? |
|---|---|---|
| vízesés | a legvégén | a legvégén |
| spirális | minden kör végén | az adott kör végén |
| iteratív/agilis | 1–2 hetente | napokon belül |
| folyamatos | mindig | órákon belül |
Döntsd el mindegyik állításról, melyik fejlesztési modellt írja le!
A tanévünk munkamódszere spirális-iteratív, kicsiben:
A Mastermind (G blokk) is így épül majd: először csak kiírja a táblát → aztán fogad egy tippet → aztán kiértékeli → aztán színes lesz → aztán nehézségi szintet kap. Minden állapota működik — sosem „félkész minden, de semmi sem megy”. Pont ezért tanultuk a Gitet a kódolás legelején: a spirál minden köre egy commit.
Ezért nem érdemes „egyben megírni az egészet, aztán majd kipróbáljuk”: az a kicsinyített vízesés, minden hátrányával. A profi is kis lépésekben dolgozik — csak gyorsabban lépked.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás
Párosítsd a paradigmákat a leírásokkal: procedurális · OOP · eseményvezérelt · funkcionális — „lépések sorozata” · „adat és művelet együtt” · „kattintásra válaszol” · „mellékhatás nélküli függvények”.
Miért kockázatos a vízesésmodell egy olyan projektben, ahol a megrendelő maga sem tudja pontosan, mit akar?
A telefonod egyik alkalmazása hetente frissül, apró változásokkal. Melyik fejlesztési modellben készülhet? Milyen előnye van ebből neked mint felhasználónak — és mi lehet a hátránya?
Gondold végig a leendő Mastermind-projektet! Írj 5 „spirálkört”: mi legyen az 1., 2., 3., 4., 5. működő változat tudása? (Az órán összevetjük — a G blokkban pedig tényleg így építjük majd meg.)
Minden kérdésnél egy válasz helyes. A végén pontszámot kapsz.
| Fogalom | Jelentés |
|---|---|
| paradigma | gondolkodásmód: milyen alapegységekből épül fel a program |
| procedurális programozás | a program utasítások és eljárások sorozata |
| objektumorientált programozás (OOP) | adatok és műveleteik objektumokba szervezése |
| eseményvezérelt programozás | a kód eseményekre (kattintás, gépelés) válaszolva fut |
| funkcionális programozás | mellékhatás nélküli függvények kombinálása |
| vízesésmodell | lépcsőzetes fejlesztés: minden fázis az előző teljes lezárása után |
| spirális modell | körökben haladó fejlesztés, körönként működő változattal és kockázatelemzéssel |
| iteráció | rövid fejlesztési kör, a végén működő, bemutatható eredménnyel |
| agilis fejlesztés | az iteratív, visszajelzés-vezérelt szemlélet gyűjtőneve |
| folyamatos fejlesztés | a szoftver apró lépésekben, folyamatosan frissül (CI/CD-eszközökkel) |