Topp 50 spørsmål og svar om programvareteknikk

Anonim

Last ned PDF

1) Hva er de viktige programvarekategoriene?

  • Systemprogramvare
  • Applikasjonsprogramvare
  • Innebygd programvare
  • Nettapplikasjoner
  • Programvare for kunstig intelligens
  • Vitenskapelig programvare.

2) Hva er hovedforskjellen mellom et dataprogram og programvare?

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 ombygging av programvare?

Det er en prosess med programvareutvikling som gjøres for å forbedre vedlikeholdet av et programvaresystem.

4) Beskriv programvareutviklingsprosessen i korte trekk:

Programvareutviklingen er en livssyklus som består av følgende trinn:

  • Kravsanalyse
  • Spesifikasjon
  • Programvarearkitektur
  • Gjennomføring
  • Testing
  • Dokumentasjon
  • Opplæring og støtte
  • Vedlikehold

5) Hva er SDLC-modeller tilgjengelig?

Waterfall Model, Spiral Model, Big-bag model, Iterative Model og V-Model er noen av de berømte SDLC-modellene.

6) Hva er bekreftelse og validering?

Bekreftelse:

Verifisering er et begrep som refererer til settet med aktiviteter som sikrer at programvaren implementerer en bestemt funksjon.

Validering:

Det refererer til settet med aktiviteter som sørger for 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 veldig viktig del av vellykket testing.

8) Hvordan kan du sørge for at koden din er både trygg og rask?

I programvaren er alltid utviklingssikkerhet først. Så hvis gjennomføringen av programmet går tregt, vil jeg prøve å identifisere årsaken til måter for dets tidskompleksitet.

9) Nevn to verktøy som brukes til å holde oversikt over programvarekravene?

Det er mange måter å holde oversikt over kravene på.

To ofte brukte er:

  • Lag et kravspesifikasjonsdokument for å liste opp alle kravene.
  • Lag et excel-ark i listen ned krav, type, avhengighet, prioritet, etc.

10) Hva er hovedforskjellen mellom en stubbe, en mock?

En stub er en minimal implementering av et grensesnitt som vanligvis returnerer hardkodede data mens mock vanligvis verifiserer utganger mot forventningene. Disse 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. Skjønt, bør man 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 brukerhåndbok om hvordan du bruker programvaren.

13) I følge deg hvilken SDLC-modell er best?

Det er ingen slik rangering, ettersom SDLC-modeller blir vedtatt 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 å styre programvareutviklingsprosjektet.

Prosjektlederen gjør prosjektplanleggingen, overvåker fremdriften, kommunikasjonen. Han eller hun styrer også risikoer og ressurser for å levere prosjektet innen tids-, pris- og kvalitetsbegrensninger.

15) Hva menes med programvareomfang?

Programvareomfang er en veldefinert grense. Den inkluderer alle slags aktiviteter som gjøres for å utvikle og levere programvareproduktet.

Programvareomfanget definerer alle funksjoner og gjenstander 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. Denne estimeringen kan avgjøres enten ved å konsultere eksperter eller ved å bruke forhåndsdefinerte formler.

16) Hvordan finner du størrelsen på et programvareprodukt?

Størrelsen på programvareproduktet kan beregnes ved å følge to metoder

  • Teller linjene med levert kode
  • Telle leverte funksjonspoeng

17) Hva er funksjonspunkter?

Funksjonspunkter er funksjonene som leveres av programvareproduktet. Det regnes som en viktig måling for programvarestørrelse.

18) Hva er beregningsteknikker for programvareprosjekt tilgjengelig?

Mest brukte estimeringsteknikker er:

  • Nedbrytningsteknikk
  • 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 i programvaresystemet er konsistente og opprettet ved hjelp av organisasjonsregler og forskrifter.

20) Hvordan kan du måle prosjektgjennomføring?

Vi kan måle prosjektutførelse ved hjelp av aktivitetsovervåking, statusrapporter og milepælsjekklister.

21) Fortell meg om noen prosjektledelsesverktøy.

Det er mange typer styringsverktøy som brukes etter behovet for et programvareprosjekt. Noen av dem er Pert Chart, Gantt Chart, Resource Histogram, Status Reports, etc.

22) Hva er programvarekrav?

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 gunstig programvareprosjektutviklingen vil vise seg for organisasjonen. Programvareanalysatoren gjennomfører en studie for å vite om den økonomiske, tekniske og operasjonelle gjennomførbarheten av prosjektet.

  1. Økonomisk: Det inkluderer kostnadene ved opplæring, kostnad for tillegg og verktøy og samlet estimering av kostnader og fordeler ved prosjektet.

  2. Teknisk: Det vurderer teknisk aspekt. Er det mulig å utvikle dette systemet? Vurdere egnetheten til maskin (er) og operativsystem som programvaren skal utføre, kunnskap om programvareutvikling og verktøy tilgjengelig for dette prosjektet.

  3. Operasjonelt: Her må analytikeren vurdere at organisasjonen vil kunne tilpasse seg jevnt til endringene som er gjort i henhold til etterspørselen etter prosjektet. Er problemet verdt å løse til den estimerte kostnaden?

Etter å ha studert alt dette blir den endelige gjennomførbarhetsrapporten opprettet.

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 programvare beregning?

Software Metrics tilbyr tiltak for ulike aspekter av programvareprosessen som er delt inn i:

  1. Krav beregninger: Lengde krav, fullstendighet
  2. Produktberegninger: Antall kodelinjer, Objektorienterte beregninger, design- og testberegninger.

26) Hva er modularisering?

Modularisering er en teknikk som brukes for å dele et programvaresystem i forskjellige diskrete moduler. Det forventes å utføre oppgavene uavhengig.

27) Hva er kohesjon?

Samhold er et tiltak som definerer den intra-påliteligheten blant elementene i modulen.

28) Nevner noen programvareanalyse og designverktøy?

Noen av de viktigste verktøyene for programvareanalyse og design er:

  • Dataflytdiagrammer
  • Strukturerte diagrammer
  • Strukturert engelsk
  • Data Dictionary
  • Hierarkiske Input Process Output diagrammer
  • Enhetsrelasjonsdiagrammer og beslutningstabeller

29) Hva menes med nivå-0 Dataflytdiagram?

Høyeste abstraksjonsnivå kalles nivå 0 for DFD. Det kalles også kontekstnivå DFD. Den skildrer hele informasjonssystemet som ett diagram.

30) Hva er den største forskjellen mellom strukturert engelsk og Pseudo-kode?

Strukturert engelsk er engelsk. 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.

31) Hva er strukturert design?

Strukturert design er en konseptualisering av problemet. Det kalles også løsningsdesign og som er basert på "divide and conquer" -strategi.

32) Hva er funksjonell programmering?

Det er en programmeringsmetode som bruker konseptene til en matematisk funksjon. Det gir beregningsmetoder som matematiske funksjoner, som også gir resultater uavhengig av programtilstand.

33) Hva er kvalitetssikring kontra kvalitetskontroll?

Kvalitetssikring sjekker om riktig prosess følges mens du utvikler programvaren mens kvalitetskontroll handler om å opprettholde kvaliteten på programvareproduktet.

34) Hva er CASE-verktøy?

CASE betyr Computer Aided Software Engineering. De er sett med automatiserte programvareprogrammer, som brukes til å støtte, forbedre og styrke SDLC-aktivitetene.

35) Hvilken prosessmodell fjerner feil før programvaren får problemer?

Clean room software engineering metode fjerner feil før programvaren får problemer.

36) Løs dette problemet

Det er tjue forskjellige sokker av to typer i en skuff i ett mørkt rom. Hva er minimum antall sokker du må ta for å sikre at du har et matchende par? "

Hvis du tar opp 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 støt.

37) Hvordan kan du forsikre deg om at den skrevne koden din som kan håndtere ulike slags 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 inn og utføres av programmer dynamisk. Det er et eksternt kodelager for programmer. Siden begge er forskjellige programmer, kan du bruke samme DLL i stedet for å ha den koden i filen. Det reduserer også nødvendig lagringsplass.

40) Hva er sterk skriving og svak skriving? Hvilket foretrekkes? Hvorfor?

Sterk skriving sjekker typene variabler ved kompileringstidspunktet. På den annen side sjekker svak skriving systemtypene i løpetid. Blant dem er Strong typing alltid å foretrekke 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.
  • Aspect Oriented Programming er å adskille koden på en slik måte at forskjellige gjenstander bærer hovedoppgavene, og underoppgavene bæres av uavhengige objekter.

42) Hvorfor er det alltid en dårlig ide å bruke fangst (unntak)?

Det er en dårlig ide fordi:

  • Siden det ikke er definert en variabel, er det ikke mulig å lese unntaket
  • Det er bra å bruke et unntak når du har kjent unntakstyper.

43) Hvilken type data sendes via HTTP-hoder?

Skript og metadata sendes via HTTP-overskrifter.

44) Hvordan prioriterer du krav?

Først må du designe et system ved å evaluere datastrukturen. Deretter bør du gå videre til kodestrukturen som er nødvendig for å støtte den.

45) Gi meg forskjeller mellom objektorientert og komponentbasert design?

Objektorientert design kan enkelt innkapsles til en viss grad i komponentbasert design.

46) Når bruker du polymorfisme?

Polymorfisme brukes når det er behov for overstyringsfunksjonalitet når man arver klassen. Det handler om delte klasser og delte kontrakter.

47) Hva er forskjellen mellom stabel og kø?

  • Kø er alltid første inn, først ut
  • Stack er alltid Last In, First Out

48) Hva er viktig for å teste kvaliteten på koden?

Ifølge meg er enhetstestingsrammeverket viktig for å teste kvaliteten på koden.

49) Tror du at vedlikehold av programvare er dyrt?

I fø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 versjonsversjoner som er midlertidige holdeplasser for å gjøre slike ting. Imidlertid blir grener slettet når disse endringene slås sammen i bagasjerommet.

51) Hvor er en beskyttet variabel på klassenivå tilgjengelig?

Beskyttede klassenivåvariabler er tilgjengelige for alle underklasser avledet fra basisklassen.

52) Er det mulig å utføre flere fangstblokker for ett forsøk?

Ja. Flere fangstblokker kan utføres for et enkelt forsøk.

53) Når trenger du å erklære en klasse som abstrakt?

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

  1. Når klassen er arvet fra en abstrakt klasse, men ikke alle de abstrakte metodene har blitt tilsidesatt.
  2. I tilfelle når minst en av metodene i klassen blir erklært som et abstrakt.

54) Utvikle en algoritme som sender ut din nåværende posisjon og en liste over minibanker i det området. Få deg de nærmeste K-minibankene din plassering.

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 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;}}