50 Software Engineering Interview Spørgsmål og Svar

Her er Software Engineering-interviewspørgsmål og svar til både friskere og erfarne kandidater til at få deres drømmejob.

 

Softwareudviklerinterviewspørgsmål og svar til nybegyndere

1) Hvad er de vigtige kategorier af software?

  • System software
  • Ansøgning software
  • Embedded software
  • Webapplikationer
  • Kunstig intelligens software
  • Videnskabelig software.

👉 Gratis PDF-download: Software Engineering Interview Spørgsmål og Svar


2) Hvad er hovedforskellen mellem et computerprogram og computersoftware?

Et computerprogram er et stykke programmeringskode. Den udfører en veldefineret opgave. På den anden side indeholder softwaren programmeringskode, dokumentation og brugervejledning.


3) Hvad er software re-engineering?

Det er en softwareudviklingsproces, der udføres for at forbedre vedligeholdelsen af ​​et softwaresystem.

Software Engineering spørgsmål


4) Beskriv softwareudviklingsprocessen kort:

Softwareudviklingen er en livscyklus, der består af følgende faser:

  • Kravsanalyse
  • Specification
  • Software arkitektur
  • Implementering
  • Test
  • Dokumentation
  • Træning og support
  • Vedligeholdelse

5) Hvad er SDLC-modeller tilgængelige?

Waterfall Model, Spiral Model, Big-bag model, Iterative Model og V-Model er nogle af de berømte SDLC modeller.


6) Hvad er verifikation og validering?

Verifikation:

Verifikation er et begreb, der refererer til det sæt af aktiviteter, der sikrer, at software implementerer en bestemt funktion.

Validering:

Det refererer til det sæt af aktiviteter, der sikrer, at software, der er bygget i overensstemmelse med kundernes behov.


7) Hvad er meningen med debugging i softwareudviklingsprocessen?

Debugging er den proces, der resulterer i fjernelse af fejl. Det er en meget vigtig del af den vellykkede test.


8) Hvordan kan du sikre dig, at din kode er både sikker og hurtig?

I softwaren er udviklingssikkerhed altid først. Så hvis udførelsen af ​​programmet er langsom, så vil jeg forsøge at identificere årsagen til dets tidskompleksitet.


9) Nævn to værktøjer, som bruges til at holde styr på softwarekravene?

Der er mange måder at holde styr på kravene på.

To almindeligt anvendte er:

  • Lav et kravspecifikationsdokument for at liste alle kravene.
  • Opret et excel-ark listen ned efter krav, type, afhængighed, prioritet osv.

10) Hvad er hovedforskellen mellem en stubs, en hån?

En stub er en minimal implementering af en grænseflade, som generelt returnerer hårdkodede data, mens mock normalt verificerer output mod forventninger. De forventninger stilles i testen.


11) Hvilket sprog kan du lide at skrive programmeringsalgoritmer?

Hver udvikler har deres synspunkter, når det kommer til valg af programmeringssprog. Men man bør foretrække sprog på højt niveau, fordi de er dynamiske. Ligesom C og C++ Sprog.


12) Hvad er computersoftware?

Computersoftware er en pakke, der inkluderer et softwareprogram, dets dokumentation og brugervejledning til, hvordan man bruger softwaren.


13) Hvilken SDLC-model er ifølge dig den bedste?

Der er ingen sådan rangering, da SDLC-modeller er vedtaget i henhold til behovet for udviklingsprocessen. Det kan være forskelligt fra software til software.


14) Hvem er softwareprojektleder? Hvad er hans rolle?

En softwareprojektleder er en person, der er ansvarlig for at styre softwareudviklingsprojektet.

Projektlederen laver projektplanlægning, overvåger fremskridt, kommunikation. Han eller hun styrer også risici og ressourcer for at levere projektet inden for tids-, omkostnings- og kvalitetsbegrænsninger.


15) Hvad menes med softwareomfang?

Softwareomfang er en veldefineret grænse. Det inkluderer alle slags aktiviteter, der udføres for at udvikle og levere softwareproduktet.

Softwareomfanget definerer alle funktionaliteter og artefakter, der skal leveres som en del af softwaren. Omfanget identificerer også, hvad produktet vil gøre? Hvad er ikke en del af projektet? Hvad er projektvurdering?

Denne proces er nyttig til at vurdere forskellige aspekter af softwareproduktet. Denne vurdering kan besluttes enten ved at konsultere eksperter eller ved at bruge foruddefinerede formler.


16) Hvordan finder man størrelsen på et softwareprodukt?

Størrelsen af ​​softwareproduktet kan beregnes ved at følge to metoder

  • Tæller linjerne med leveret kode
  • Optælling af leverede funktionspoint

17) Hvad er funktionspunkter?

Funktionspunkter er de funktioner, der leveres af softwareproduktet. Det betragtes som en meget vigtig måling for softwarestørrelse.


18) Hvilke teknikker til estimering af softwareprojekter er tilgængelige?

De mest udbredte estimeringsteknikker er:

  • Nedbrydningsteknik
  • Empirisk teknik

19) Hvad er softwarekonfigurationsstyring?

Softwarekonfigurationsstyring er en proces til at spore og kontrollere ændringer, der sker i softwaren.

Ændringskontrol er en funktion, der sikrer, at alle ændringer, der foretages i softwaresystemet, er konsistente og skabt ved hjælp af organisatoriske regler og forskrifter.


20) Hvordan kan du måle projektudførelse?

Vi kan måle projektudførelse ved hjælp af aktivitetsovervågning, statusrapporter og milepælstjeklister.


21) Fortæl mig om nogle projektstyringsværktøjer.

Der er mange typer af styringsværktøjer, der bruges i henhold til behovet for et softwareprojekt. Nogle af dem er Pert-diagram, Gantt-diagram, ressourcehistogram, statusrapporter osv.


22) Hvad er softwarekravene?

Softwarekrav er en funktionel beskrivelse af et foreslået softwaresystem. Det antages at være beskrivelsen af ​​målsystemet, dets funktionaliteter og funktioner.


23) Hvad er forundersøgelse?

Det er en foranstaltning til at finde ud af, hvor praktisk og gavnlig softwareprojektudviklingen vil vise sig for organisationen. Softwareanalysatoren udfører en undersøgelse for at kende projektets økonomiske, tekniske og operationelle gennemførlighed.

  1. Økonomisk: Det inkluderer omkostninger til uddannelse, omkostninger til yderligere og værktøjer og overordnet estimering af omkostninger og fordele ved projektet.
  2. Teknisk: Det vurderer det tekniske aspekt. Er det muligt at udvikle dette system? Vurdering af egnetheden af ​​maskine(r) og OS, som softwaren vil køre på, viden om softwareudviklingen og tilgængelige værktøjer til dette projekt.
  3. Operational: Her skal analytikeren vurdere, at organisationen vil være i stand til at tilpasse sig gnidningsløst til de ændringer, der udføres i henhold til efterspørgslen til projektet. Er problemet værd at løse til de anslåede omkostninger?

Efter at have studeret alt dette oprettes den endelige feasibility-rapport.


24) Hvad er funktionelle og ikke-funktionelle krav?

Funktionelle krav er funktionelle funktioner, som forventes af brugere fra det foreslåede softwareprodukt.

Ikke-funktionelle krav er relateret til sikkerhed, ydeevne, udseende og følelse af brugergrænsefladen.


25) Hvad er softwaremetrik?

Software Metrics tilbyder mål for forskellige aspekter af softwareprocessen, som er opdelt i:

  1. Kravmålinger: Længdekrav, fuldstændighed
  2. Produktmålinger: Antal kodningslinjer, Objektorienterede målinger, design- og testmålinger.

26) Hvad er modularisering?

Modularisering er en teknik, som bruges til at opdele et softwaresystem i forskellige diskrete moduler. Det forventes at udføre opgaverne selvstændigt.


27) Hvad er sammenhængskraft?

Samhørighed er en foranstaltning, der definerer den intra-pålidelighed mellem modulets elementer.


28) Nævner nogle softwareanalyse- og designværktøjer?

Nogle af de vigtigste softwareanalyse- og designværktøjer er:

  • Dataflowdiagrammer
  • Strukturerede diagrammer
  • Struktureret engelsk
  • Data ordbog
  • Hierarkisk inputproces Outputdiagrammer
  • Entitetsrelationsdiagrammer og beslutningstabeller

29) Hvad menes med niveau-0 Dataflowdiagram?

Højeste abstraktionsniveau kaldes Level 0 af DFD. Det kaldes også kontekstniveau DFD. Det fremstiller hele informationssystemet som ét diagram.


30) Hvad er den største forskel mellem struktureret engelsk og pseudokode?

Struktureret engelsk er engelsk som modersmål. Det bruges til at skrive strukturen af ​​et programmodul. Det bruger programmeringssprog nøgleord. På den anden side er Pseudo Code mere som programmeringssproget uden syntaks for noget specifikt sprog.


Software Engineering viva Spørgsmål og svar til erfarne

31) Hvad er struktureret design?

Struktureret design er en konceptualisering af problem. Det kaldes også løsningsdesign, og som er baseret på 'divide and conquer'-strategi.


32) Hvad er funktionel programmering?

Det er en programmeringsmetode, som bruger begreberne for en matematisk funktion. Det giver beregningsmidler som matematiske funktioner, som også producerer resultater uanset programtilstand.


33) Hvad er kvalitetssikring vs. kvalitetskontrol?

Kvalitetssikring kontrollerer, om den korrekte proces følges, mens softwaren udvikles, mens kvalitetskontrol beskæftiger sig med at opretholde kvaliteten af ​​softwareproduktet.


34) Hvad er CASE-værktøjer?

CASE betyder Computer Aided Software Engineering. De er et sæt af automatiserede softwareapplikationsprogrammer, som bruges til at understøtte, forbedre og styrke SDLC-aktiviteterne.


35) Hvilken procesmodel fjerner defekter, før software kommer i problemer?

Renrumssoftwareteknologi fjerner defekter, før softwaren kommer i problemer.


36) Løs dette problem

Der er tyve forskellige sokker af to typer i en skuffe i ét mørkt rum. Hvad er det mindste antal sokker, du skal tage for at sikre, at du har et matchende par?"

Hvis du henter tre sokker, kan de være af samme type, selvom oddset er 50%. Odds aldrig en lige realitet. Derfor er den eneste måde at 'sikre, at du har et matchende par', at opfange mindst 11 antal stød.


37) Hvordan kan du sikre dig, at din skrevne kode, som kan håndtere forskellige former for fejlsituationer?

Jeg kan skrive test, der definerer de forventede fejlsituationer.


38) Forklar forskellene mellem en tråd og en proces?

En proces er en instans af computerprogrammet. I et enkelt program er det muligt at have en eller flere tråde.


39) Fortæl mig forskellen mellem en EXE og en DLL?

En exe er et eksekverbart program, mens en DLL er en fil, der kan indlæses og udføres af programmer dynamisk. Det er et eksternt kodelager til programmer. Da begge er forskellige programmer, genbrug den samme DLL i stedet for at have den kode i deres fil. Det reducerer også den nødvendige lagerplads.


40) Hvad er stærk skrivning og svag skrivning? Hvilken foretrækkes? Hvorfor?

Stærk indtastning kontrollerer typerne af variabler på kompileringstidspunktet. På den anden side kontrollerer svag indtastning systemets typer under kørsel. Blandt dem foretrækkes Stærk skrivning altid, fordi det minimerer fejlene.


41) Beskriv forskellen mellem Interface-orienteret, Objekt-orienteret og Aspect-orienteret programmering.

  • Interface programmering er kontrakt baseret.
  • Objektorienteret er en måde at skrive granulære objekter på, som har et enkelt formål.
  • Aspect Oriented Programming er at adskille koden på en sådan måde, at forskellige objekter bærer hovedopgaverne, og de underordnede opgaver udføres af uafhængige objekter.

42) Hvorfor er det altid en dårlig idé at bruge catch (undtagelse)?

Det er en dårlig idé, fordi:

  • Da der ikke er nogen variabel defineret, er det ikke muligt at læse undtagelsen
  • Det er godt at bruge en undtagelse, når du har kendt undtagelsestyper.

43) Hvilken type data sendes via HTTP-headere?

Script og metadata videregivet via HTTP-headere.


44) Hvordan prioriterer du krav?

Først skal du designe et system ved at evaluere datastrukturen. Så skal du gå videre til den kodestruktur, der er nødvendig for at understøtte den.


45) Giv mig forskelle mellem objektorienteret og komponentbaseret design?

Objektorienteret design kan let indkapsles til en vis grad i komponentbaseret design.


46) Hvornår bruger du polymorfi?

Polymorfi bruges, når der er behov for tilsidesættelsesfunktionalitet ved nedarvning af klasse. Det handler om delte klasser og delte kontrakter.


47) Hvad er forskellen mellem stak og kø?

  • Køen er altid først ind, først ud
  • Stack er altid sidst ind, først ud

48) Hvad er vigtigt for at teste kodens kvalitet?

Ifølge mig er enhedstestrammen afgørende for at teste kodens kvalitet.


49) Synes du, at vedligeholdelse af software er dyrt?

Ifølge mig vil vedligeholdelse af software aldrig være dyrt, hvis vi bruger en ordentlig udviklingsproces.


50) Giv mig forskelle mellem tags og filialer?

Tags er til versionsudgivelser, som er midlertidige holdepladser til at gøre sådan noget. Men grene slettes, når disse ændringer flettes ind i stammen.


51) Hvor er en beskyttet variabel på klasseniveau tilgængelig?

Beskyttede variabler på klasseniveau er tilgængelige for enhver underklasse, der er afledt af basisklassen.


52) Er det muligt at udføre flere catch-blokke for en enkelt try-sætning?

Ja. Flere catch-blokke kan udføres for en enkelt try-sætning.


53) Hvornår skal du erklære en klasse som abstrakt?

Vi bør erklære en klasse som abstrakt i følgende situationer:

  1. Når klassen er nedarvet fra en abstrakt klasse, men ikke alle de abstrakte metoder er blevet tilsidesat.
  2. I det tilfælde hvor mindst én af metoderne i klassen er erklæret som et abstrakt.

54) Udvikl en algoritme, der udsender din aktuelle placering og en liste over pengeautomater i det område. Få dig de nærmeste K-hæveautomater til din placering.

Opret en metode getDistance(a, b), der beregner afstanden mellem a og b.

Kode:

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;

}

}

Disse interviewspørgsmål vil også hjælpe i din viva(orals)