Top 50 Software Engineering Interview Spørgsmål og svar

Anonim

Download PDF

1) Hvad er de vigtige kategorier af software?

  • Systemsoftware
  • Applikations software
  • Indbygget software
  • Webapplikationer
  • Software til kunstig intelligens
  • Videnskabelig software.

2) Hvad er den største forskel mellem et computerprogram og computersoftware?

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

3) Hvad er software-re-engineering?

Det er en proces med softwareudvikling, som gøres for at forbedre vedligeholdelsen af ​​et softwaresystem.

4) Beskriv kortfattet softwareudviklingsprocessen:

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

  • Kravsanalyse
  • Specifikation
  • Software arkitektur
  • Implementering
  • Testning
  • Dokumentation
  • Uddannelse 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 udtryk, der henviser til det sæt af aktiviteter, der sikrer, at software implementerer en bestemt funktion.

Validering:

Det henviser til det sæt af aktiviteter, der sikrer, at software, der er bygget efter kundernes behov.

7) Hvad er meningen med debugging i softwareudviklingsprocessen?

Fejlfinding er den proces, der resulterer i fjernelse af fejl. Det er 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 eksekveringen af ​​programmet går langsomt, vil jeg forsøge at identificere årsagen til måder til dets tidskompleksitet.

9) Navngiv to værktøjer, der bruges til at holde styr på softwarekrav?

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 krav, type, afhængighed, prioritet osv.

10) Hvad er den største forskel mellem en stub, en mock?

En stub er en minimal implementering af en grænseflade, der generelt returnerer hardkodede data, mens mock normalt verificerer output mod forventning. Disse forventninger er sat i testen.

11) Hvilket sprog kan du lide at skrive programmeringsalgoritmer?

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

12) Hvad er computersoftware?

Computersoftware er en pakke, der indeholder et softwareprogram, dets dokumentation og brugervejledning til, hvordan softwaren bruges.

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

Der er ingen sådan rangordning, da SDLC-modeller vedtages efter behovet for udviklingsprocessen. Det kan variere 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ægningen, overvåger fremskridt, kommunikation. Han eller hun styrer også risici og ressourcer til at levere projektet inden for tids-, omkostnings- og kvalitetsbegrænsninger.

15) Hvad betyder softwareomfang?

Softwares omfang 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 projektets del? Hvad er projektestimering?

Denne proces er nyttig til at estimere forskellige aspekter af softwareproduktet. Dette skøn kan afgøres enten ved at konsultere eksperter eller ved hjælp af foruddefinerede formler.

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

Størrelsen på softwareproduktet kan beregnes ved hjælp af to metoder

  • Tæller linjerne med den leverede 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) Hvad er tilgængelige softwareprojektestimeringsteknikker?

Mest anvendte estimeringsteknikker er:

  • Nedbrydningsteknik
  • Empirisk teknik

19) Hvad er styring af softwarekonfiguration?

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

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

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 projektledelsesværktøjer.

Der er mange typer styringsværktøjer, der anvendes efter behovet for et softwareprojekt. Nogle af dem er Pert Chart, Gantt Chart, Resource Histogram, Status Reports osv.

22) Hvad er softwarekrav?

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 gennemførlighedsundersøgelse?

Det er et mål for at finde ud af, hvor praktisk og gavnlig softwareprojektudviklingen vil vise sig for organisationen. Softwareanalysatoren gennemfører en undersøgelse for at kende den økonomiske, tekniske og operationelle gennemførlighed af projektet.

  1. Økonomisk: Det inkluderer uddannelsesomkostninger, ekstraomkostninger og værktøjer og samlet skøn over projektets omkostninger og fordele.

  2. Teknisk: Det vurderer det tekniske aspekt. Er det muligt at udvikle dette system? Vurdering af egnetheden af ​​maskiner og operativsystemer, som software udfører, viden om softwareudvikling og værktøjer til rådighed til dette projekt.

  3. Operationelt: Her er analytikeren nødt til at vurdere, at organisationen er i stand til at tilpasse sig problemfrit til de ændringer, der er foretaget i henhold til efterspørgslen efter projektet. Er problemet værd at løse til den anslåede pris?

Efter at have studeret alt dette oprettes den endelige gennemførlighedsrapport.

24) Hvad er funktionelle og ikke-funktionelle krav?

Funktionelle krav er funktionelle funktioner, som brugere forventer af 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 foranstaltninger til forskellige aspekter af softwareprocessen, der er opdelt i:

  1. Kravsmetrikker: Længdekrav, fuldstændighed
  2. Produktmetrics: Antal kodende linjer, Objektorienterede metrics, design og test-metrics.

26) Hvad er modularisering?

Modularisering er en teknik, der bruges til at opdele et softwaresystem i forskellige diskrete moduler. Det forventes at udføre opgaverne uafhængigt.

27) Hvad er samhørighed?

Samhørighed er et mål, der definerer intra-pålidelighed blandt elementerne i modulet.

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

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

  • Dataflowdiagrammer
  • Strukturerede diagrammer
  • Struktureret engelsk
  • Dataordbog
  • Hierarkiske Input Process Output diagrammer
  • Enhedsrelationsdiagrammer og beslutningstabeller

29) Hvad menes med niveau-0 Dataflowdiagram?

Højeste abstraktionsniveau kaldes niveau 0 for DFD. Det kaldes også kontekstniveau DFD. Det viser hele informationssystemet som et diagram.

30) Hvad er den største forskel mellem struktureret engelsk og Pseudo-kode?

Struktureret engelsk er engelsk. Det bruges til at skrive strukturen i et programmodul. Det bruger programmeringssprog nøgleord. På den anden side ligner Pseudo-kode mere programmeringssprog uden syntaks for noget specifikt sprog.

31) Hvad er struktureret design?

Struktureret design er en konceptualisering af problemet. Det kaldes også løsningsdesign, og som er baseret på 'opdele og erobre' strategi.

32) Hvad er funktionel programmering?

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

33) Hvad er kvalitetssikring vs. kvalitetskontrol?

Kvalitetssikring kontrollerer, om korrekt proces følges under udvikling af softwaren, 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 sæt automatiserede softwareapplikationsprogrammer, der bruges til at understøtte, forbedre og styrke SDLC-aktiviteterne.

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

Clean room software engineering metode fjerner defekter, før software kommer i problemer.

36) Løs dette problem

Der er tyve forskellige sokker af to typer i en skuffe i et 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 oddsen er 50%. Odds aldrig en lige virkelighed. Derfor er den eneste måde at 'sikre, at du har et matchende par' at samle mindst 11 antal stød.

37) Hvordan kan du sikre dig, at din skrevne kode, der kan håndtere forskellige slags fejlsituationer?

Jeg kan skrive tests, der definerer de forventede fejlsituationer.

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

En proces er forekomst 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 kodeopbevaringssted til programmer. Da begge er forskellige programmer, skal du genbruge 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-typing og svag-typing? Hvilket foretrækkes? Hvorfor?

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

41) Beskriv forskellen mellem interfaceorienteret, objektorienteret og aspektorienteret programmering.

  • Interface programmering er kontraktbaseret.
  • Objektorienteret er en måde at skrive granulære objekter, der 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 supplerende opgaver bæres af uafhængige objekter.

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

Det er en dårlig idé, fordi:

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

43) Hvilken type data sendes via HTTP-headere?

Script og metadata videregivet via HTTP-overskrifter.

44) Hvordan prioriterer du krav?

Først skal du designe et system ved at evaluere datastrukturen. Derefter 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 polymorfisme?

Polymorfisme bruges, når der er behov for tilsidesættelse af funktionalitet, når man arver klassen. Det handler om delte klasser og delte kontrakter.

47) Hvad er forskellen mellem stak og kø?

  • Kø er altid første ind, først ud
  • Stack er altid Last In, First Out

48) Hvad er vigtigt for at teste kvaliteten af ​​koden?

Ifølge mig er enhedstestningsrammen afgørende for at teste kvaliteten af ​​koden.

49) Tror 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 grene?

Mærker er til versionversioner, der er midlertidige pladser til at gøre sådan noget. Filialer slettes dog, når disse ændringer flettes i bagagerummet.

51) Hvor findes en beskyttet variabel på klasseniveau?

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

52) Er det muligt at udføre flere fangstblokke for en enkelt forsøgserklæring?

Ja. Flere fangstblokke kan udføres til en enkelt forsøgserklæring.

53) Hvornår har du brug for at erklære en klasse som abstrakt?

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

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

54) Udvikl en algoritme, der udsender din aktuelle placering og en liste over pengeautomater i dette område. Få dig de nærmeste K-pengeautomater 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 pq = new PriorityQueue((x,y)-> {Double z = y-x;return z.intValue(); });PrioRQueueExample pqe = new PrioRQueueExample();//Number of ATMs to return i.e. Kint num_ATMs = 3;double curr_loc = 0.00;Map nallATMLocs = new HashMap();//Map of ATM names and their distance co-ordinatesnallATMLocs.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;}}