Podcast
Questions and Answers
Milyen két szót kell összeolvasni a Software Engineering kifejezés pontos magyar fordításához?
Milyen két szót kell összeolvasni a Software Engineering kifejezés pontos magyar fordításához?
Szoftvermérnökség
A szoftverbevezetés milyen főbb részekből áll?
A szoftverbevezetés milyen főbb részekből áll?
A szoftverfejlesztés egy megoldott feladat?
A szoftverfejlesztés egy megoldott feladat?
False
Milyen problémák merülnek fel a szoftverek elkészítésének sajátosságai miatt?
Milyen problémák merülnek fel a szoftverek elkészítésének sajátosságai miatt?
Signup and view all the answers
Mi a különbség a programozás és a szoftverfejlesztés között?
Mi a különbség a programozás és a szoftverfejlesztés között?
Signup and view all the answers
Mi a szoftvermérnök fő feladata a többszereplős szoftverfejlesztés során?
Mi a szoftvermérnök fő feladata a többszereplős szoftverfejlesztés során?
Signup and view all the answers
Milyen tipikus problémák merülnek fel a szoftverek fejlesztése során?
Milyen tipikus problémák merülnek fel a szoftverek fejlesztése során?
Signup and view all the answers
Melyek a szoftverfejlesztés főbb szakaszai?
Melyek a szoftverfejlesztés főbb szakaszai?
Signup and view all the answers
Mit jelent a Definition of Done koncepció?
Mit jelent a Definition of Done koncepció?
Signup and view all the answers
Melyik módszertant használják tipikusan beágyazott, kritikus rendszereknél?
Melyik módszertant használják tipikusan beágyazott, kritikus rendszereknél?
Signup and view all the answers
Melyik módszertan illeszkedik a legal jobban a gyorsan változó felhasználói igényekkel rendelkező webes alkalmazásokhoz?
Melyik módszertan illeszkedik a legal jobban a gyorsan változó felhasználói igényekkel rendelkező webes alkalmazásokhoz?
Signup and view all the answers
Mit jelent a trade-off koncepció?
Mit jelent a trade-off koncepció?
Signup and view all the answers
Melyik a szoftverfejlesztés legfontosabb lépése?
Melyik a szoftverfejlesztés legfontosabb lépése?
Signup and view all the answers
Study Notes
Szoftvertechnológia bevezető
- A tantárgy a szoftvertechnológia céljait és sajátosságait mutatja be.
- A hallgató a különböző alkalmazási területek jellegzetességeit ismeri meg.
- A szoftverfejlesztési folyamat nézőpontjait, feladatait és szereplőit ismeri.
- Az informatika területén létező szakmai fejlődési utakat ismeri.
Tanulási eredmények
- A hallgató képes bemutatni a szoftvertechnológia céljait és sajátosságait.
- Felsorolja a különböző alkalmazási területek jellegzetességeit.
- Összefoglalja a tipikus szoftverfejlesztési folyamat nézőpontjait, feladatait és szereplőit.
- Megkülönbözteti a különböző szoftverarchitektúra elemeket és stílusokat.
- Felismeri a szoftver specifikus tulajdonságait (pl. fizikai korlátok, logikai fogalmak).
Hova fejlődött a szoftverek fejlesztése 50 év alatt? Miért nehéz továbbra is jó szoftvert készíteni?
- A szoftverek fejlesztése 50 év alatt jelentős fejlődést mutatott.
- A megoldandó problémák és feladatok azonban egyre bonyolultabbak és nagyobb méretűek.
- A szoftverfejlesztés továbbra is kihívásokkal teli feladat.
NASA Perseverance (videó)
- A NASA Perseverance marsjárójának elküldéséhez szükséges szoftverek rendkívül bonyolultak.
- Nagyon sok, egymásra ható emberi munka, és összehangolt szoftver-elem szükséges a működéshez.
Software engineering
- A szoftvertechnológia fogalma nem rendelkezik pontos magyar fordításával.
- A tantárgy szoftverfejlesztést használ a gyakorlatban.
- A tantárgy a kódkészítésen túlmutató fogalmakat is tárgyal.
Mi a szoftver?
- Szoftver: számítógépes programok, folyamatok és a számítógépes rendszer működéséhez szükséges dokumentációk és adatok.
Szoftverrendszerek
- Szoftverrendszerek: szoftver, hardver és adat együttműködéséből álló rendszerek.
- A szoftver végrehajtása adja az értékét.
- Sok esetben a szoftverrendszerekkel együttműködésre van szükség (társadalmi-technikai)
Példa: szoftver és rendszer
- Online pénztárgépek folyamatosan kommunikálnak a NAV-val.
- Sok szoftver különböző hardverekkel kompatibilis.
- A szoftver működéséhez hardver és más szoftverek együttműködése szükséges.
Mérnökség [Engineering]
- A mérnökség szisztematikus, szabályozott és mérhető módszerek alkalmazása struktúrák, gépek, termékek, rendszerek vagy folyamatok terén.
- A mérnöki módszerek gyakran egyesítik a matematikai alapokat, a standardizált előadásokat és a tapasztalatokból nyert ismeretanyagot.
Hogyan dolgozik egy „igazi” mérnök?
- A mérnökök iteratív módon dolgoznak, és megpróbálják kielégíteni a vevői igényeket.
- A tervezés, modellezés majd a prototípusok tesztelésével folytatódnak.
Szoftvermérnökség (Software engineering)
- A szoftverfejlesztés és használata módszereinek és eljárásainak tudomány.
- A követelményeknek való megfelelés, kivitelezhetőség, tesztelések és dokumentálások rendszere.
- Többverziós programok többszereplős fejlesztését is tárgyalja.
Programozás és szoftverfejlesztés
- Programozás: a programkód írásra vonatkozik.
- Szoftverfejlesztés: minden olyan tevékenységet magában foglal, ami ahhoz szükséges, hogy egy program karbantartható, fenntartható, hatékony és módosítható legyen.
Mik a szoftver sajátosságai?
- A szoftverek gyártása nem feltétlenül kötött és bonyolult, mint más, fizikai termékeké.
- A hiba megtalálása egyszerűbb, mint más mérnöki területeken.
- A szoftverek eltérhetnek más mérnöki feladatoktól, a kreativitás mértéke és a változás gyakorisága miatt.
- A szoftverek hatékonysága a felhasználói igények függvényében változik.
Hova jutott a szoftverfejlesztés?
- A szoftver minősége 50 év alatt növekedett.
- A szoftverfejlesztési költségek az utolsó 50 évben jelentősen változtak.
Szoftverrendszerek: sikerek és kudarcok
- A szoftverrendszereknek számos sikere volt (Linux, GPS, stb.) és kudarca, amik miatt megtérvényezett a megfelelő módszerek alkalmazása.
Különböző környezet - különböző célok
- A kezdeti fejlesztések más szempontú prioritásokat támasztanak, mint nagyvállalati környezetek.
- A szoftverek fejlesztésének és feladása módja különbözik egy Startupnál és egy nagyvállalatnál.
- A funkciók változások gyakorisága és teljesítmény elvárásai eltérnek a different szolgáltatás típusoknál.
Szakmai fejlődés
- A szoftverfejleszők karrierútjai eltérőek, a szerepkörök meghatározottak, és egyértelmű prioritásokat támasztanak.
Követelmények kezelése
- A követelmények elkészítése és kezelése gyakran kihívások elé állítják a fejlesztőket.
- A követelményeket nehéz pontosan meghatározni és szövegesen leírni, könnyen keletkeznek ellentmondások.
- A követelmények fajtái eltérőek (funkcionális, nem funkcionális).
- A követelmények kezelése több szintű, fontos a hierarchia és a priorizálás.
- A követelménykezelés elvei segíthetők a jó gyakorlatok, tools.
Követelmények hierarchiája
- A követelmények hierarchikus felépítéssel rendelkezhetnek (általános, részletek).
Követelmények prioritizálása
- A követelmények priorizálását kockázat alapú logikával lehet kezelni, a priorítások meghatározásakor fontos a hatás és a valószínűség figyelembevétele.
Ideális követelmény
- Az ideális követelmény azonosítható, egyértelmű, a viselkedésének konzisztens és ellenőrizhető.
Természetes nyelvű szöveg
- A természetes nyelven írott szöveg nem elég precíz, a környezeti tényezők és a további lehetőségekre nem mutat rá.
User story (agilis módszer)
- User story: rövid, leíró szöveg, ami a felhasználói szempontból leírja a funkciót, hasznosságát és a motivációt.
Jo User Story: INVEST
- A jó user story független, tárgyalható, értékes, becsülhető, kis méretű és tesztelhető.
Követelmények kritikus rendszerekben
- A kritikus rendszerekhez fontos a részletes, preciz követelmény definíció, a szemléltető diagramok és a formális leírások.
Különböző követelmény hierarchiák
- Értékorientált, érintettközpontú perspektíva
A megrendelő sokszor nem is tudja, mit szeretne pontosan...
- A felhasználók nem ismerhetik eléggé az informatikai lehetőségeket, ami a követelmények leegyszerűsítéséhez vezethet, vagy rosszul értelmezhetők a személyes igények.
Példák egyszerűbb követelményekre
- Ezek a példák több egyértelmű követelményt tartalmaznak, mint a természetes nyelv használatával írott követelmények.
Követelménykezelés elvei
- Fontos a módszeres követelmények kezelése, ahol az értékorientáltság és az érintettek szemszöge a kiindulási pont.
Rendszer és környezete
- A rendszer működésének környezete is fontos szempont a követelmény meghatározásánál, és különösen kritikus rendszereknél.
Követelmények fajtái
- A követelmények funkcionális és extra-funkcionális kategóriákba sorolhatók.
Példa követelmények fajtáira
- Példa a specifikáció és követelmények részletes meghatározására a FURPS3 listában.
Követelménykezelés feladatai
- A követelmények meghatározása, dokumentálása, validálása és menedzsmentje kulcsfontosságú a szoftverfejlesztés sikeréhez.
Követelmények prioritizálása
- A priorizálási eljárások segítenek a kritikus követelmények azonosításában és a prioritások meghatározásában.
Ideális követelmény
- Az ideális követelmény egyértelmű, konzisztens, ellenőrizhető és kezelhető.
Informális szöveges leírás
- Informális szövegek könnyebben érthetők, de egyértelmű követelményt tartalmazó strukturált formátumok használata javasolt.
II. User story (agilis módszer)
- Az agilis módszerek használata segíti a követelmények egyszerűbb megfogalmazását.
- A user story egy könnyen érthető formátum a követelmények részletes leírására és megbeszélésére.
Jó user story: INVEST
- A jó user story egyértelmű, tárgyalható, értékes, becsülhető, kicsi és tesztelhető.
UML nyelv
- Az UML nyelv egy szabványos nyelv szoftverrendszerek modellezésére.
- Az UML nyelvben számos grafikus reprezentáció létezik a részletes modellezéshez.
- Az UML hasznos informatikai diagramok leírására.
UML diagram típusok
- UML modellezésre számtalan diagramtípus van.
Használati esetek
- A használati eset diagramok (use cases) megjeleníthetik a felhasználók és a rendszer közötti interakciókat.
- A használati esetek leírása (use case description) részben szöveges leírást ad, miként van interakció a felhasználó és a rendszer között.
- Az aktorok (actors) külső szereplők, akikkel a rendszer interakcióba lép.
UML diagram típusok
- A sztereotípiák (stereotypes) segítségével különböző elemek lehetnek más típusúak is.
- Az asszociációk (associations) segítségével megjeleníthetők a kapcsolatok a többféle UML elem között.
Használati eset összefoglalása
- A használati esetet egy szöveges leírás bővítheti további információval.
- A sztereotípiák (stereotypes) különböző típusú használati esetek leírására szolgálnak.
Aktor [Actor]
- Az aktorok a rendszer felhasználói vagy külső rendszerek, amelyek a szoftverrel interakcióba lépnek.
Használati eset jelölések
- A használt UML jelek különböző típusok és kapcsolatok leírására szolgálnak.
Használati eset kapcsolatok
- A kapcsolatok különböző interfészek és különböző célok szerinti elágazások ábrázolására szolgálnak.
Dekompozíció és újrafelhasználhatóság támogatása
- A használati esetek dekompozíciója segíthet jobb újrafelhasználhatóságot és áttekinthetőséget elérni.
Integrációs minták
- A különböző integrációs minták segítenek a szervezett működés biztosításában valamint a folyamatos fejlesztés lehetőségének megteremtésében. A jólstrukturált integrációs tervei segítenek a szoftver szilárdságának javításában.
Kiadás minta(k)
- A különböző kiadásminták (Release Branch & Ready Mainline) segítenek szoftververziók stabilizálásában és folyamatos fejlesztésben, melyet a CI/CD folyamatokban is használnak.
Folyamatok: GitHub Flow
• A GitHub Flow egy agilis szoftverfejlesztési módszertan a közös git repozitóriumra építve, amely a pull request-eken keresztül működik.
Folyamatok: Trunk-based development
• A Trunk-based development (Trunk-based) módszertan egy iteratív agilis szoftverfejlesztés mód, melyben minden fejlesztő közvetlenül a fő ágra (trunk) írja a kódot.
Összefoglalás [Summary]
- Az összefoglalás magába foglalja az egyes részek főbb pontjait.
Hogyan tanuljam meg a Git használatát?
- A tanuláshoz javasolt eszközök és források.
Követelmények kezelése
- A követelmények kezelése során fontos figyelembe venni az érintettek igényeit és a rendszer környezetét is.
- A követelményeket meghatározó különböző nyelveken és formákban kell leírni amelyek használata segíti a jobb megértést és a dokumentáció elkészítését.
- A követelmény meghatározása több lépésből áll, a kommunikáció fontos eleme a folyamatnak. A követelmények lehetséges megfogalmazási módját különböző példákon bemutatjuk.
Tesztelési stratégia
- A szoftver tesztelésének tervezésénél egy stratégia a kiindulási pont, mely a tesztelés különböző szintjeit, típusa és technikáit fogja lefedni. Itt fontos a különböző környezetek / kihívások figyelembe vétele.
- A teszt tervezési feladatok, a tesztelési folyamatban résztvevő szereplők és erőforrások, az ütemezés és a kilépési feltételek egyértelmű meghatározásával egyesíthetjük.
Tesztterv
- A tesztterv elkészítése meghatározza a tesztelési tevékenységet, a teszteket, a tesztkörnyezetet és az ütemezést.
Kockázatalapú tesztelés
- A tesztelési prioritás meghatározása a kockázatok elemzésén alapul.
Tesztelési szintjei
- A különféle tesztelési szintek (egység-, integrációs-, rendszerteszt) és ezek eltérései különösen fontosak a szoftverfejlesztési folyamatok és a tesztelés hatékonyságának növelésére.
Alternatív és további jelölések (1-2)
- A használati esetek diagramjainak további elemeinek (pl. szekvencia diagrammok, kommunikációs diagramok és stb.) bemutatása és értelmezése.
Interakció használata
- A szoftverkomponensek közötti interakció diagramjainak különböző típusai és jelölései.
Elosztott verziókezelő & elágazás
- A központosított és elosztott verziókezelési rendszerek egyértelmű megkülönböztetése - a közös forráskód-tároló és a lokális módosítások ütközéseinek kezelése
- A Git verziókezelő rendszert behatóan bemutatjuk a használatához szükséges alapfogalmak (commit, branch, merge) ismertetésével és a gyakorlati hasznosság érzékeltetésével.
UML állapotgépek
- Az állapotgépek segítségével lehet bemutatni egy rendszer viselkedést az időben – Az állapotgépek és állapotok jellemezése – Állapotok, események, átmenetek, tulajdonságok modellezésének módja. – Különböző állapotgépekkel leírható szoftverelemek.
UML aktivitások
- UML aktivitás diagrammok, a megadott aktivitás lépések sorának leírása.
- A párhuzamos végrehajtási lehetőségek feltérképezése és ábrázolása.
Életciklus és üzenetfajták
- Az üzenetek különböző típusai (pl. létrehozás, törlés, veszteség - Lost & found)
- Az üzenetek életciklusának meghatározása és kezelése.
Kódolási irányelvek
- Kódolási irányelvek definiálása és a betartásuk módjai
Statikus analízis
- A statikus analízis módszerek és eszközök jellemzése
- A statikus analízis szoftverhibakeresésben betöltött szerepe.
- A statikus analízis eszközök SonarLint és SonarCloud bemutatása
Összefoglalás (Jó, rossz szoftver)
- A jó és a rossz szoftverek (kódok) egyértelmű megkülönböztetése.
- A jó és rossz szoftverek jellemzőinek elemzése.
Szoftvertesztelés áttekintése
- A tesztelés célja, hogy a szoftver kompatibilis legyen a követelményekkel.
- A szoftver tesztelési folyamata és szintjei bemutatása.
Tesztelési alapfogalmak
- Az egyes tesztelési folyamatok, szintek és technikák definíciója, jellemzői és kapcsolatai.
Megoldandó feladatok
- A tesztelési feladatok megoldásának stratégiái és technikái.
Tesztelés lehetséges céljai
- A különböző tesztelési célok, és a tesztelés lehetséges feladatainak feltérképezése.
Megbizonyosodás és felderítés
- A tesztelés szisztematikus megközelítése segíthet a hibák azonosításában és megelőzésében.
Nézőpontok a tesztelés során
- A tesztelés során fontos figyelembe venni a különböző nézőpontokat.
- A tesztelés során fontos figyelembe venni a hatékony erőforrás-felhasználást, az idő és az erőforrások költségét.
- Fontos a teszttervezés hatékonyságának minimalizálása.
Tesztelési folyamat
- A különböző tesztelési folyamatok szakaszai.
Tesztterv [test plan]
- A tesztterv elkészítése során fontos meghatározni a tesztelési stratégiát, a tesztelés célját, tesztkörnyezetet és szereplőket.
Kockázatalapú tesztelés
- A tesztelési prioritás meghatározásához fontos a kockázat elemzése.
Tesztelési szintek
- A különféle tesztelési szintek (egység-, integrációs-, rendszer-, elfogadási tesztelés) megkülönböztetése és részletes leírása.
Különbség az egység és a többi szint között
- A különbséget bemutatják az egység-, az integrációs-, a rendszer-, és az elfogadási szint tesztelése között.
Különbség a szintek között
- Az egységtesztek, integrációs tesztek, és rendszertesztek közti különbségek (példák).
Tesztelési piramis
- A tesztelési piramis egy diagram, amely bemutatja a különféle tesztelési szintek jelentőségét és arányát.
Regression testing
- A regrésziós tesztelést bemutatja.
AdHoc & Exploratory testing
- A tesztelés és a felderítés típusainak ismertetése (Például az ad-hoc és az exploratory tesztelések)
Fekete doboz [Black box], Fehér doboz [White box] módszerek
- A különböző teszt technikákból a fekete doboz és a fehér doboz technikák részletes bemutatása
Mutációs tesztelés
- Mutációs tesztelés a kódbázisban okozott esetleges hibák meghatározására.
Követelmények ellenőrzése
- Kritériumok a teszt kritériumokhoz vezetnek
- A követelmények ellenőrzésének alapvető lépései.
Példa: Tesztelési jelentés
- A követelmények végrehajtásáról a tesztjelentés információt ad.
- A tesztjelentésben kritériumokat és eredményeket találunk.
Tesztterv felépítése
- Az ISO 29119-3 követelményeinek részletes vizsgálata.
Kockázatalapú tesztelés
- A kockázatalapú tesztelés elvei és módszerei.
Teszt szintjei
– A különböző tesztelési szint megértése (egység, integrációs, rendszertesztelés és elfogadási tesztek).
Különbség a szintek között
- Különbségek az egységtesztelések és a nagyobb volumenű tesztelések (integrációs, rendszertesztek) között bemutatása.
Tesztelési piramis
- A tesztelési szint és a végrehajtás időtartamának kapcsolatát mutatja be.
Regressziós tesztelés
- A regressziós tesztelés bemutatása.
Ad-hoc & Exploratory testing
- A tesztelési technikák bemutatása.
Felderítő tesztelés (Exploratory testing)
- A tesztelési folyamat szakaszai.
Fekete doboz [black box] és Fehér doboz [whitebox] módszerek
- A különböző teszt típusok: fekete doboz, és fehér doboz tesztelés bemutatása.
Mutációs tesztelés
– A mutációs tesztelés módszereinek bemutatása.
UML állapotgépek
– UML állapotgépek jellemzés. – Az állapotgépek, események és átmenetek megértéséhez szükséges fogalmak bemutatása.
Állapotok finomítása
– Az állapotok finomításának típusai (AND és OR).
Állapotkonfiguráció
- Az állapotkonfiguráció jelentése.
Belépés régiókba
- A belépés a régiókba történő aktiválás módszereinek ismertetése.
UML interakciók
- Az UML alkalmazásában használt interakciós diagramok.
- Az UML használati esetek (use cases) megértése - ábrázolása.
Forgatókönyvek modellezése
- A forgatókönyvek bemutatásának UML-es lehetősége.
Interakció diagram típusok
- A különböző interakció diagram típusok jellemzése különös figyelmet fordítva a diagram használata során fellépő problémákra.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Ez a quiz a szoftverfejlesztés alapfogalmait és módszertanait vizsgálja. Kérdések a szoftverbevezetés főbb részeiről, a szoftvermérnök feladatairól és a fejlesztés főbb szakaszairól. Teszteld tudásodat a szoftverfejlesztés területén!