50 Programvareingeniørintervjuspørsmål og svar
Programvareutviklerintervjuspørsmål og svar for nybegynnere
1) Hva er de viktige kategoriene av programvare?
- Systemprogramvare
- Applikasjonsprogramvare
- Embedded programvare
- Web-applikasjoner
- Programvare for kunstig intelligens
- Vitenskapelig programvare.
👉 Gratis PDF-nedlasting: Programvareingeniørintervjuspørsmål og svar
2) Hva er hovedforskjellen mellom et dataprogram og dataprogramvare?
Et dataprogram er et stykke programmeringskode. Den utfører en veldefinert oppgave. På den annen side inkluderer programvaren programmeringskode, dokumentasjon og brukerveiledning.
3) Hva er programvarere-engineering?
Det er en prosess med programvareutvikling som gjøres for å forbedre vedlikeholdsevnen til et programvaresystem.
4) Beskriv programvareutviklingsprosessen i korthet:
Programvareutviklingen er en livssyklus som består av følgende stadier:
- Kravsanalyse
- Spesifikasjon
- Programvarearkitektur
- Gjennomføring
- Testing
- Teknisk dokumentasjon
- Opplæring og støtte
- Vedlikehold
5) Hvilke SDLC-modeller er tilgjengelige?
Fossmodell, spiralmodell, storbag-modell, iterativ modell og V-modell er noen av de kjente SDLC-modeller.
6) Hva er verifisering og validering?
Verifikasjon:
Verifikasjon er et begrep som refererer til settet med aktiviteter som sikrer at programvare implementerer en bestemt funksjon.
Validering:
Det refererer til settet med aktiviteter som sikrer at programvare som er bygget i henhold til kundenes behov.
7) Hva er meningen med feilsøking i programvareutviklingsprosessen?
Feilsøking er prosessen som resulterer i fjerning av feil. Det er en veldig viktig del av den vellykkede testingen.
8) Hvordan kan du sørge for at koden din er både trygg og rask?
I programvaren er utviklingssikkerhet alltid først. Så hvis kjøringen av programmet er treg, vil jeg prøve å identifisere årsaken til dets tidskompleksitet.
9) Nevn to verktøy som brukes for å holde styr på programvarekravene?
Det er mange måter å holde styr på kravene på.
To vanlig brukte er:
- Lag et kravspesifikasjonsdokument for å liste opp alle kravene.
- Lag et excel-ark med listen nedover krav, type, avhengighet, prioritet osv.
10) Hva er hovedforskjellen mellom en stubber, en hån?
En stubbe er en minimal implementering av et grensesnitt som vanligvis returnerer hardkodede data mens mock vanligvis verifiserer utdata mot forventningene. De forventningene er satt i testen.
11) Hvilket språk liker du å skrive programmeringsalgoritmer?
Hver utvikler har sine synspunkter når det gjelder valg av programmeringsspråk. Men man bør foretrekke språk på høyt nivå fordi de er dynamiske. Som C og C++ språk.
12) Hva er dataprogramvare?
Dataprogramvare er en pakke som inkluderer et program, dets dokumentasjon og brukerveiledning for hvordan du bruker programvaren.
13) Hvilken SDLC-modell er den beste ifølge deg?
Det er ingen slik rangering, ettersom SDLC-modeller blir tatt i bruk i henhold til behovet for utviklingsprosessen. Det kan variere fra programvare til programvare.
14) Hvem er programvareprosjektleder? Hva er hans rolle?
En programvareprosjektleder er en person som er ansvarlig for å administrere programvareutviklingsprosjektet.
Prosjektlederen gjør prosjektplanleggingen, overvåker fremdriften, kommunikasjonen. Han eller hun styrer også risiko og ressurser for å levere prosjektet innenfor tids-, kostnads- og kvalitetsbegrensninger.
15) Hva menes med programvareomfang?
Programvareomfang er en veldefinert grense. Det inkluderer alle slags aktiviteter som gjøres for å utvikle og levere programvareproduktet.
Programvareomfanget definerer alle funksjoner og artefakter som skal leveres som en del av programvaren. Omfanget identifiserer også hva produktet vil gjøre? Hva er ikke delen av prosjektet? Hva er prosjektestimering?
Denne prosessen er nyttig for å estimere ulike aspekter av programvareproduktet. Dette estimatet kan bestemmes enten ved å konsultere eksperter eller ved å bruke forhåndsdefinerte formler.
16) Hvordan finne størrelsen på et programvareprodukt?
Størrelsen på programvareproduktet kan beregnes ved å følge to metoder
- Teller linjene med levert kode
- Telling av leverte funksjonspoeng
17) Hva er funksjonspunkter?
Funksjonspunkter er funksjonene som leveres av programvaren. Det regnes som en svært viktig måling for programvarestørrelse.
18) Hvilke teknikker for estimering av programvareprosjekter er tilgjengelige?
De mest brukte estimeringsteknikkene er:
- Dekomponeringsteknikk
- Empirisk teknikk
19) Hva er programvarekonfigurasjonsadministrasjon?
Programvarekonfigurasjonsadministrasjon er en prosess for å spore og kontrollere endringer som skjer i programvaren.
Endringskontroll er en funksjon som sikrer at alle endringer som gjøres i programvaresystemet er konsistente og opprettet ved hjelp av organisatoriske regler og forskrifter.
20) Hvordan kan du måle prosjektgjennomføring?
Vi kan måle prosjektgjennomføring ved å bruke aktivitetsovervåking, statusrapporter og milepælssjekklister.
21) Fortell meg om noen prosjektstyringsverktøy.
Det er mange typer administrasjonsverktøy som brukes i henhold til behovet for et programvareprosjekt. Noen av dem er Pert Chart, Gantt Chart, Resource Histogram, Status Reports, etc.
22) Hva er programvarekravene?
Programvarekrav er en funksjonell beskrivelse av et foreslått programvaresystem. Det antas å være beskrivelsen av målsystemet, dets funksjoner og funksjoner.
23) Hva er mulighetsstudie?
Det er et tiltak for å finne ut hvor praktisk og fordelaktig programvareprosjektutviklingen vil vise seg for organisasjonen. Programvareanalysatoren gjennomfører en studie for å kjenne den økonomiske, tekniske og operasjonelle gjennomførbarheten til prosjektet.
- Økonomisk: Det inkluderer kostnadene for opplæring, kostnader for tillegg og verktøy og overordnet estimering av kostnader og fordeler ved prosjektet.
- Teknisk: Den vurderer det tekniske aspektet. Er det mulig å utvikle dette systemet? Vurdere egnetheten til maskinen(e) og OS som programvaren skal kjøres på, kunnskap om programvareutviklingen og tilgjengelige verktøy for dette prosjektet.
- Operational: Her må analytikeren vurdere at organisasjonen vil kunne tilpasse seg jevnt til endringene som gjøres i henhold til etterspørselen til prosjektet. Er problemet verdt å løse til antatt kostnad?
Etter å studere alt dette opprettes den endelige mulighetsrapporten.
24) Hva er funksjonelle og ikke-funksjonelle krav?
Funksjonelle krav er funksjonelle funksjoner som forventes av brukere fra det foreslåtte programvareproduktet.
Ikke-funksjonelle krav er relatert til sikkerhet, ytelse, utseende og følelse av brukergrensesnittet.
25) Hva er programvaremetrik?
Software Metrics tilbyr mål for ulike aspekter av programvareprosessen som er delt inn i:
- Kravberegninger: Lengdekrav, fullstendighet
- Produktberegninger: Antall kodingslinjer, Objektorienterte beregninger, design- og testberegninger.
26) Hva er modularisering?
Modularisering er en teknikk som brukes til å dele opp et programvaresystem i ulike diskrete moduler. Det forventes å utføre oppgavene selvstendig.
27) Hva er samhørighet?
Kohesjon er et mål som definerer intra-pålitelighet mellom elementene i modulen.
28) Nevner noen programvareanalyse- og designverktøy?
Noen av de viktigste programvareanalyse- og designverktøyene er:
- Dataflytdiagrammer
- Strukturerte diagrammer
- Strukturert engelsk
- Dataordbok
- Hierarkisk inngangsprosess Utgangsdiagrammer
- Entitetsrelasjonsdiagrammer og beslutningstabeller
29) Hva menes med nivå-0 Dataflytdiagram?
Høyeste abstraksjonsnivå kalles nivå 0 av DFD. Det kalles også kontekstnivå DFD. Den fremstiller hele informasjonssystemet som ett diagram.
30) Hva er den største forskjellen mellom strukturert engelsk og pseudokode?
Strukturert engelsk er engelsk som morsmål. Den brukes til å skrive strukturen til en programmodul. Den bruker nøkkelord for programmeringsspråk. På den annen side er Pseudo Code mer som programmeringsspråket uten syntaks for noe spesifikt språk.
Software Engineering viva Spørsmål og svar for erfarne
31) Hva er strukturert design?
Strukturert design er en konseptualisering av problem. Det kalles også løsningsdesign og som er basert på 'del og hersk'-strategi.
32) Hva er funksjonell programmering?
Det er en programmeringsmetode som bruker begrepene til en matematisk funksjon. Det gir beregningsmidler som matematiske funksjoner, som også gir resultater uavhengig av programtilstand.
33) Hva er kvalitetssikring vs. kvalitetskontroll?
Kvalitetssikring sjekker om riktig prosess følges under utvikling av programvaren mens kvalitetskontroll tar for seg å opprettholde kvaliteten på programvareproduktet.
34) Hva er CASE-verktøy?
CASE betyr Computer Aided Engineering programvare. De er et sett med automatiserte programvareapplikasjoner som brukes til å støtte, forbedre og styrke SDLC-aktivitetene.
35) Hvilken prosessmodell fjerner feil før programvare får problemer?
Renroms programvareutviklingsmetode fjerner defekter før programvaren får problemer.
36) Løs dette problemet
Det ligger tjue forskjellige sokker av to typer i en skuff i ett mørkt rom. Hva er det minste antallet sokker du må ta for å sikre at du har et matchende par?»
Hvis du henter tre sokker, kan de være av samme type selv om oddsen er 50%. Odds aldri en lik realitet. Derfor er den eneste måten å "sikre at du har et matchende par" å plukke opp minst 11 antall sjokk.
37) Hvordan kan du sørge for at din skrevne kode som kan håndtere ulike typer feilsituasjoner?
Jeg kan skrive tester som definerer forventede feilsituasjoner.
38) Forklar forskjellene mellom en tråd og en prosess?
En prosess er forekomst av dataprogrammet. I et enkelt program er det mulig å ha en eller flere tråder.
39) Fortell meg forskjellen mellom en EXE og en DLL?
En exe er et kjørbart program mens en DLL er en fil som kan lastes og kjøres av programmer dynamisk. Det er et eksternt kodelager for programmer. Siden begge er forskjellige programmer, gjenbruk samme DLL i stedet for å ha den koden i filen. Det reduserer også nødvendig lagringsplass.
40) Hva er sterk-skriving og svak-skriving? Hvilken er foretrukket? Hvorfor?
Sterk skriving sjekker typene variabler på kompileringstidspunktet. På den annen side sjekker svak skriving typene av systemet ved kjøring. Blant dem er sterk skriving alltid foretrukket fordi det minimerer feilene.
41) Beskriv forskjellen mellom grensesnittorientert, objektorientert og aspektorientert programmering.
- Grensesnittprogrammering er kontraktsbasert.
- Objektorientert er en måte å skrive granulære objekter som har et enkelt formål.
- Aspektorientert programmering er å skille koden på en slik måte at ulike objekter bærer hovedoppgavene, og underoppgavene bæres av uavhengige objekter.
42) Hvorfor er det alltid en dårlig idé å bruke catch (unntak)?
Det er en dårlig idé fordi:
- Siden det ikke er noen variabel definert, er det ikke mulig å lese unntaket
- Det er greit å bruke et unntak når du har kjent unntakstyper.
43) Hvilken type data sendes via HTTP-hoder?
Skript og metadata sendes via HTTP-hoder.
44) Hvordan prioriterer du krav?
Først må du designe et system ved å evaluere datastrukturen. Deretter bør du gå videre til kodestrukturen som trengs for å støtte den.
45) Gi meg forskjeller mellom objektorientert og komponentbasert design?
Objektorientert design kan lett innkapsles til en viss grad i komponentbasert design.
46) Når bruker du polymorfisme?
Polymorfisme brukes når det er behov for overstyringsfunksjonalitet ved arving av klasse. Det handler om delte klasser og delte kontrakter.
47) Hva er forskjellen mellom stack og kø?
- Køen er alltid først inn, først ut
- Stack er alltid sist inn, først ut
48) Hva er essensielt for å teste kvaliteten på koden?
I følge meg er rammeverket for enhetstesting avgjørende for å teste kvaliteten på koden.
49) Synes du at vedlikehold av programvare er dyrt?
Ifølge meg vil vedlikehold av programvare aldri være dyrt hvis vi bruker riktig utviklingsprosess.
50) Gi meg forskjeller mellom tagger og grener?
Tagger er for versjonsutgivelser som er midlertidige holdeplasser for å gjøre slike ting. Imidlertid slettes grener når disse endringene slås sammen i stammen.
51) Hvor er en beskyttet klassenivåvariabel tilgjengelig?
Beskyttede variabler på klassenivå er tilgjengelige for enhver underklasse som er avledet fra basisklassen.
52) Er det mulig å utføre flere catch-blokker for en enkelt try-setning?
Ja. Flere catch-blokker kan utføres for en enkelt try-setning.
53) Når må du erklære en klasse som abstrakt?
Vi bør erklære en klasse som abstrakt i følgende situasjoner:
- Når klassen er arvet fra en abstrakt klasse, men ikke alle de abstrakte metodene er overstyrt.
- I tilfelle når minimum én av metodene i klassen er erklært som et abstrakt.
54) Utvikle en algoritme som viser din nåværende plassering og en liste over minibankplasseringer i det området. Få deg de nærmeste K-minibankene til din posisjon.
Lag en metode getDistance(a, b) som beregner avstanden mellom 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 intervjuspørsmålene vil også hjelpe i din viva(orals)