Szoftverfejlesztés Kérdések és Válaszok
13 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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?

  • Adatbázis, hálózat és a felhasználók
  • Programok, folyamatok, dokumentációk és adatok (correct)
  • Szoftver, hardver és adatok (correct)
  • Protokollok, algoritmusok, dokumentációk és adatok
  • Szoftver, hardver és algoritmusok
  • 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?

    <p>A szoftverek nem elég rugalmasak a változásokhoz</p> Signup and view all the answers

    Mi a különbség a programozás és a szoftverfejlesztés között?

    <p>A programozás egy adott feladathoz programkód elkészítését jelenti, míg a szoftverfejlesztés minden olyan feladatot magába foglal, ami az elkészült programkód karbantarthatósága, hatékonysága, skálázhatósága és változásokhoz való adaptálhatósága érdekében szükséges, beleértve a tervezést, a dokumentációt, a tesztelést és a csapatmunkát is.</p> Signup and view all the answers

    Mi a szoftvermérnök fő feladata a többszereplős szoftverfejlesztés során?

    <p>A szoftvermérnökök fő feladata, hogy olyan alapos módszereket dolgozzanak ki és használjanak, amelyek segítségével a tervezett és fejlesztett szoftvertermékek megbízhatóan ellássák a meghatározott feladatokat.</p> Signup and view all the answers

    Milyen tipikus problémák merülnek fel a szoftverek fejlesztése során?

    <p>Tipikus problémák a szoftverek fejlesztése során a követelményeket, a változó felhasználói igényeket, a meghibásodásokat, a karbantarthatóságot és a csapatmunka koordinációját.</p> Signup and view all the answers

    Melyek a szoftverfejlesztés főbb szakaszai?

    <p>Elemzés, tervezés, megvalósítás, tesztelés, üzembe helyezés, karbantartás</p> Signup and view all the answers

    Mit jelent a Definition of Done koncepció?

    <p>Egy meghatározott lista, amely tartalmazza, hogy mikor tekinthető egy funkció vagy feladat elkészültnek és használatra késznek</p> Signup and view all the answers

    Melyik módszertant használják tipikusan beágyazott, kritikus rendszereknél?

    <p>V-modell</p> 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?

    <p>Scrum</p> Signup and view all the answers

    Mit jelent a trade-off koncepció?

    <p>A <em>trade-off</em> koncepció a szoftverfejlesztés során a precizitás és a költség közötti egyensúly megtalálását jelenti. A precizitás azt jelenti, hogy a követelményeket pontosan és világosan definiálják, minimalizálva a hibák lehetőségét. A költség a fejlesztéshez szükséges időt, erőforrásokat és a megvalósítás komplexitását jelenti.</p> Signup and view all the answers

    Melyik a szoftverfejlesztés legfontosabb lépése?

    <p>A követelmények meghatározása</p> 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.

    Quiz Team

    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!

    More Like This

    Software Engineering Overview
    8 questions

    Software Engineering Overview

    LuminousWilliamsite981 avatar
    LuminousWilliamsite981
    Software Engineering Course Overview
    48 questions

    Software Engineering Course Overview

    SelfSufficientDramaticIrony avatar
    SelfSufficientDramaticIrony
    Use Quizgecko on...
    Browser
    Browser