50 Szoftvermérnöki interjú Kérdések és válaszok

Íme a Software Engineering interjúkérdések és válaszok friss és tapasztalt jelöltek számára, hogy megszerezzék álmaik állását.

 

Szoftverfejlesztői interjú Kérdések és válaszok a frissülőknek

1) Melyek a szoftverek fontos kategóriái?

  • Rendszer szoftver
  • Alkalmazás szoftver
  • Beágyazott szoftverek
  • Webes alkalmazások
  • Mesterséges intelligencia szoftver
  • Tudományos szoftver.

👉 Ingyenes PDF letöltés: Szoftvermérnöki interjúkérdések és válaszok


2) Mi a fő különbség a számítógépes program és a számítógépes szoftver között?

A számítógépes program egy programozási kód darabja. Jól meghatározott feladatot lát el. Másrészt a szoftver programozási kódot, dokumentációt és használati útmutatót tartalmaz.


3) Mi az a szoftver-újratervezés?

Ez egy szoftverfejlesztési folyamat, amelynek célja a szoftverrendszer karbantarthatóságának javítása.

Szoftvermérnöki kérdések


4) Ismertesse röviden a szoftverfejlesztési folyamatot:

A szoftverfejlesztés egy életciklus, amely a következő szakaszokból áll:

  • Igényelemzés
  • Leírás
  • Szoftver architektúra
  • Implementáció
  • Tesztelés
  • Dokumentáció
  • Képzés és támogatás
  • Karbantartás

5) Melyek az SDLC modellek?

A vízesés modell, a spirálmodell, a nagy zsákos modell, az iteratív modell és a V-modell néhány a híres SDLC modellek.


6) Mi az ellenőrzés és érvényesítés?

Ellenőrzés:

Az ellenőrzés egy olyan kifejezés, amely azon tevékenységek összességét jelenti, amelyek biztosítják, hogy a szoftver egy adott funkciót valósítson meg.

Érvényesítés:

Olyan tevékenységek összességét jelenti, amelyek biztosítják, hogy a szoftver az ügyfelek igényei szerint épüljön fel.


7) A szoftverfejlesztési folyamatban mit jelent a hibakeresés?

A hibakeresés az a folyamat, amely a hiba eltávolítását eredményezi. Nagyon fontos része a sikeres tesztelésnek.


8) Hogyan győződhet meg arról, hogy kódja biztonságos és gyors?

A szoftverben mindig a fejlesztési biztonság az első. Tehát ha a program végrehajtása lassú, akkor megpróbálom azonosítani az időbeli összetettség okát.


9) Nevezzen meg két eszközt, amelyek a szoftverkövetelmények nyomon követésére szolgálnak?

Számos módja van a követelmények nyomon követésének.

Két általánosan használt a következő:

  • Készítsen követelményspecifikációs dokumentumot az összes követelmény felsorolásához.
  • Hozzon létre egy Excel lapot, amely tartalmazza a követelményeket, típusokat, függőséget, prioritást stb.

10) Mi a fő különbség a csonk, a gúny között?

A csonk egy olyan interfész minimális megvalósítása, amely általában keménykódolt adatokat ad vissza, míg a mock általában az elvárásoknak megfelelően ellenőrzi a kimeneteket. Ezeket az elvárásokat a teszt határozza meg.


11) Milyen nyelven szeret programozási algoritmusokat írni?

Minden fejlesztőnek megvan a maga véleménye a programozási nyelv kiválasztásáról. Azonban előnyben kell részesíteni a magas szintű nyelveket, mert dinamikusak. Mint C és C++ nyelven.


12) Mi az a számítógépes szoftver?

A számítógépes szoftver egy olyan csomag, amely egy szoftverprogramot, annak dokumentációját és a szoftver használatára vonatkozó felhasználói útmutatót tartalmazza.


13) Szerinted melyik SDLC modell a legjobb?

Nincs ilyen rangsor, mivel az SDLC-modelleket a fejlesztési folyamat igényei szerint fogadják el. Ez szoftverenként eltérő lehet.


14) Ki a szoftverprojekt menedzser? Mi a szerepe?

A szoftverprojekt menedzser a szoftverfejlesztési projekt irányításáért felelős személy.

A projektmenedzser végzi a projekt tervezését, figyelemmel kíséri az előrehaladást, kommunikációt. Emellett kezeli a kockázatokat és az erőforrásokat, hogy a projektet az idő-, költség- és minőségi korlátokon belül teljesítse.


15) Mit jelent a szoftver hatóköre?

A szoftver hatóköre egy jól meghatározott határ. Ez magában foglal minden olyan tevékenységet, amelyet a szoftvertermék fejlesztése és szállítása érdekében végeznek.

A szoftver hatóköre meghatároz minden olyan funkciót és műterméket, amelyet a szoftver részeként kell szállítani. A hatókör azt is meghatározza, hogy mit fog tenni a termék? Mi nem része a projektnek? Mi az a projektbecslés?

Ez a folyamat segít a szoftvertermék különféle szempontjainak becslésében. Ezt a becslést szakértőkkel konzultálva vagy előre meghatározott képletek segítségével lehet eldönteni.


16) Hogyan lehet megtalálni a szoftvertermék méretét?

A szoftvertermék mérete a következő két módszerrel számítható ki

  • A szállított kód sorainak számolása
  • A szállított függvénypontok számolása

17) Mik azok a függvénypontok?

A funkciópontok a szoftvertermék által biztosított szolgáltatások. Ez a szoftverméret legfontosabb mérőszáma.


18) Milyen szoftverprojekt-becslési technikák állnak rendelkezésre?

A legszélesebb körben használt becslési technikák a következők:

  • Dekompozíciós technika
  • Empirikus technika

19) Mi az a szoftverkonfiguráció-kezelés?

A szoftverkonfiguráció-kezelés a szoftverben bekövetkező változások nyomon követésének és ellenőrzésének folyamata.

A változásvezérlés egy olyan funkció, amely biztosítja, hogy a szoftverrendszerben végrehajtott összes változtatás következetes legyen, és a szervezeti szabályok és előírások alapján készüljön el.


20) Hogyan mérhető a projekt végrehajtása?

A projekt végrehajtását tevékenységfigyeléssel, állapotjelentésekkel és mérföldkő ellenőrző listákkal mérhetjük.


21) Meséljen néhány projektmenedzsment eszközről.

A szoftverprojektek igényei szerint sokféle menedzsmenteszközt használnak. Ezek közül néhány a Pert-diagram, a Gantt-diagram, az erőforrás-hisztogram, az állapotjelentések stb.


22) Mik a szoftverkövetelmények?

A szoftverkövetelmények a javasolt szoftverrendszer funkcionális leírása. Feltételezzük, hogy ez a célrendszer leírása, annak funkciói és szolgáltatásai.


23) Mi az a megvalósíthatósági tanulmány?

Ez egy intézkedés annak megállapítására, hogy a szoftverprojekt fejlesztés mennyire lesz praktikus és hasznos a szervezet számára. A szoftverelemző tanulmányt készít a projekt gazdasági, műszaki és működési megvalósíthatóságának megismerésére.

  1. Gazdasági: Tartalmazza a képzés költségeit, a kiegészítők és eszközök költségét, valamint a projekt költségeinek és előnyeinek általános becslését.
  2. Műszaki: Értékeli a technikai szempontokat. Lehetséges ezt a rendszert fejleszteni? Azon gép(ek) és operációs rendszer alkalmasságának felmérése, amelyen a szoftver futni fog, a szoftverfejlesztés és a projekthez rendelkezésre álló eszközök ismerete.
  3. Operafeltétel: Itt az elemzőnek fel kell mérnie, hogy a szervezet zökkenőmentesen tud-e alkalmazkodni a projekt igénye szerint végrehajtott változtatásokhoz. Megéri a problémát a becsült költséggel megoldani?

Mindezek tanulmányozása után elkészül a végleges megvalósíthatósági jelentés.


24) Mik a funkcionális és nem funkcionális követelmények?

A funkcionális követelmények olyan funkcionális jellemzők, amelyeket a felhasználók elvárnak a javasolt szoftverterméktől.

A nem funkcionális követelmények a felhasználói felület biztonságához, teljesítményéhez, megjelenéséhez és hangulatához kapcsolódnak.


25) Mi az a szoftvermetrika?

A Software Metrics méréseket kínál a szoftverfolyamat különféle aspektusaihoz, amelyek a következőkre oszthatók:

  1. Követelménymérők: Hosszigény, teljesség
  2. Termékmetrikák: kódolási sorok száma, objektumorientált mérőszámok, tervezési és tesztelési metrikák.

26) Mi a modularizáció?

A modularizáció egy olyan technika, amelyet a szoftverrendszer különböző diszkrét modulokra való felosztására használnak. Ettől elvárható a feladatok önálló elvégzése.


27) Mi a kohézió?

A kohézió egy olyan mérőszám, amely meghatározza a modul elemei közötti belső megbízhatóságot.


28) Említ néhány szoftverelemző és -tervező eszközt?

A legfontosabb szoftverelemző és -tervező eszközök közül néhány:

  • Adatfolyam diagramok
  • Strukturált diagramok
  • Strukturált angol
  • Adatszótár
  • Hierarchikus beviteli folyamat Kimeneti diagramok
  • Entitáskapcsolati diagramok és döntési táblázatok

29) Mit jelent a 0. szintű adatfolyamdiagram?

A legmagasabb absztrakciós szintet a DFD 0. szintjének nevezik. Kontextus szintű DFD-nek is nevezik. A teljes információs rendszert egyetlen diagramként ábrázolja.


30) Mi a fő különbség a strukturált angol és a pszeudo kód között?

A strukturált angol az angol anyanyelve. Egy programmodul szerkezetének megírására szolgál. Programozási nyelvi kulcsszavakat használ. Másrészt, a Pseudo Code jobban hasonlít a programozási nyelvhez, egyetlen nyelv szintaxisa nélkül.


Szoftverfejlesztés viva Kérdések és válaszok tapasztaltaknak

31) Mi a strukturált tervezés?

A strukturált tervezés a probléma fogalmi megfogalmazása. Megoldástervezésnek is nevezték, és az „oszd meg és uralkodj” stratégián alapul.


32) Mi a funkcionális programozás?

Ez egy programozási módszer, amely a matematikai függvény fogalmait használja. Számítási eszközöket biztosít matematikai függvényként, amely szintén a program állapotától függetlenül ad eredményt.


33) Mi a minőségbiztosítás kontra minőségellenőrzés?

A Minőségbiztosítás ellenőrzi, hogy a megfelelő folyamatot követik-e a szoftver fejlesztése során, míg a Minőségellenőrzés a szoftvertermékek minőségének megőrzésével foglalkozik.


34) Mik azok a CASE eszközök?

A CASE azt jelenti, hogy számítógéppel támogatott Szoftverfejlesztés. Ezek olyan automatizált szoftveralkalmazási programok, amelyek az SDLC tevékenységek támogatására, fejlesztésére és megerősítésére szolgálnak.


35) Melyik folyamatmodell szünteti meg a hibákat, mielőtt a szoftver bajba kerülne?

A tiszta szoba szoftverfejlesztési módszere eltávolítja a hibákat, mielőtt a szoftver bajba kerülne.


36) Oldja meg ezt a problémát

Húsz különböző, kétféle zokni van egy fiókban egy sötét szobában. Mennyi a minimális számú zokni, amelyet fel kell vennie, hogy biztosan legyen egy megfelelő pár?”

Ha felvesz három zoknit, akkor is azonos típusúak lehetnek, még akkor is, ha az esély 50%. Az esély soha nem egyenlő a valósággal. Ezért az egyetlen módja annak, hogy „megbizonyosodjon arról, hogy van egy párja”, ha legalább 11 sokkot vesz fel.


37) Hogyan győződhet meg arról, hogy az írott kódja képes kezelni a különféle hibahelyzeteket?

Tudok teszteket írni, amelyek meghatározzák a várható hibahelyzeteket.


38) Magyarázza el a szál és a folyamat közötti különbségeket?

A folyamat a számítógépes program példánya. Egyetlen programban egy vagy több szál is lehet.


39) Mondja el, mi a különbség az EXE és a DLL között?

Az exe egy végrehajtható program, míg a DLL egy fájl, amelyet a programok dinamikusan betölthetnek és végrehajthatnak. Ez egy külső kódtár a programok számára. Mivel mindkettő különböző program, használja újra ugyanazt a DLL-t ahelyett, hogy ez a kód szerepelne a fájljában. Csökkenti a tárhelyigényt is.


40) Mi az erős és gyenge gépelés? Melyik a preferált? Miért?

Az erős gépelés ellenőrzi a változók típusát a fordítási időben. Másrészt a gyenge gépelés ellenőrzi a rendszer típusait futás közben. Közülük mindig előnyben részesítjük az erős gépelést, mert minimálisra csökkenti a hibákat.


41) Ismertesse a különbséget az interfész-orientált, az objektum-orientált és az aspektus-orientált programozás között.

  • Az interfész programozása szerződés alapú.
  • Az objektumorientált egy olyan szemcsés objektumok írásának módja, amelyeknek egyetlen célja van.
  • A szempont-orientált programozás célja a kód elkülönítése oly módon, hogy a fő feladatokat különböző objektumok, a mellékfeladatokat pedig független objektumok lássák el.

42) Miért mindig rossz ötlet a fogás (kivétel) használata?

Rossz ötlet, mert:

  • Mivel nincs változó definiálva, a kivétel leolvasása nem lehetséges
  • Jó kivételt használni, ha ismeri a kivételtípusokat.

43) Milyen típusú adatokat továbbítanak a HTTP-fejléceken keresztül?

A HTTP-fejléceken keresztül továbbított szkript és metaadatok.


44) Hogyan rangsorolja a követelményeket?

Először is meg kell terveznie egy rendszert az adatstruktúra kiértékelésével. Ezután lépjen tovább a támogatásához szükséges kódszerkezetre.


45) Mondjon különbséget az objektumorientált és a komponens alapú tervezés között?

Az objektum-orientált tervezés bizonyos fokig könnyen beépíthető a komponens alapú tervezésbe.


46) Mikor használod a polimorfizmust?

A polimorfizmust akkor használjuk, ha az osztály öröklésekor felülírási funkcionalitásra van szükség. Megosztott órákról és közös szerződésekről van szó.


47) Mi a különbség a verem és a sor között?

  • A sor mindig First In, First Out
  • Stack mindig Last In, First Out

48) Mi elengedhetetlen a kód minőségének teszteléséhez?

Véleményem szerint az egységtesztelési keretrendszer elengedhetetlen a kód minőségének teszteléséhez.


49) Ön szerint drága a szoftver karbantartása?

Véleményem szerint a szoftverek karbantartása soha nem lesz drága, ha megfelelő fejlesztési folyamatot alkalmazunk.


50) Mondjon különbséget a címkék és az ágak között?

A címkék a kiadások verziózására szolgálnak, amelyek ideiglenes tárolási helyek az ilyen műveletek elvégzéséhez. Az ágak azonban törlődnek, amikor ezeket a változtatásokat egyesítik a törzsbe.


51) Hol érhető el védett osztályszintű változó?

A védett osztályszintű változók az alaposztályból származó bármely alosztály számára elérhetők.


52) Lehetséges-e több catch blokkot végrehajtani egyetlen try utasításhoz?

Igen. Egy try utasításhoz több catch blokk is végrehajtható.


53) Mikor kell egy osztályt absztraktnak nyilvánítani?

Egy osztályt absztraktnak kell nyilvánítanunk a következő helyzetekben:

  1. Amikor az osztályt egy absztrakt osztályból öröklik, de nem minden absztrakt metódus került felülírásra.
  2. Abban az esetben, ha az osztályban legalább az egyik metódus absztraktnak van deklarálva.

54) Dolgozzon ki egy algoritmust, amely kiadja az Ön aktuális tartózkodási helyét, valamint az adott területen található ATM-ek listáját. Szerezd meg a helyedhez legközelebbi K ATM-eket.

Hozzon létre egy getDistance(a, b) metódust, amely kiszámítja a és b közötti távolságot.

Kód:

import java.util.HashMap;

import java.util.Map;

import java.util.PriorityQueue;

public class PrioRQueueExample {

public static void main(String[] args){

PriorityQueue<Double> pq = new PriorityQueue<Double>((x,y)-> {Double z = y-x;return z.intValue(); });

PrioRQueueExample pqe = new PrioRQueueExample();

//Number of ATMs to return i.e. K

int num_ATMs = 3;

double curr_loc = 0.00;

Map<String,Double> nallATMLocs = new HashMap<String,Double>();

//Map of ATM names and their distance co-ordinates

nallATMLocs.put("atm1",45.0);

nallATMLocs.put("atm2",78.0);

nallATMLocs.put("atm3",54.0);

nallATMLocs.put("atm4",64.0);

nallATMLocs.put("atm5",35.0);

nallATMLocs.put("atm6",42.0);

nallATMLocs.put("atm7",57.0);

nallATMLocs.put("atm7",1.00);

nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){

pq.add(pqe.getLocation(curr_loc,dist));}

else{

if(        pq.peek() > pqe.getLocation(curr_loc,dist)){

pq.poll();

pq.add(pqe.getLocation(curr_loc,dist));

}

}

});

pq.forEach(atmLoc -> System.out.println(atmLoc));

}

private double getLocation(double curr,double atm){

return atm - curr;

}

}

Ezek az interjúkérdések a viva-ban is segítenek.