50 galvenie programmatūras inženierijas intervijas jautājumi un atbildes

Anonim

Lejupielādēt PDF

1) Kādas ir svarīgas programmatūras kategorijas?

  • Sistēmas programmatūra
  • Lietojumprogrammatūra
  • Iegultā programmatūra
  • Web lietojumprogrammas
  • Mākslīgā intelekta programmatūra
  • Zinātniskā programmatūra.

2) Kāda ir galvenā atšķirība starp datorprogrammu un datora programmatūru?

Datorprogramma ir programmēšanas koda gabals. Tas veic precīzi definētu uzdevumu. No otras puses, programmatūra ietver programmēšanas kodu, dokumentāciju un lietotāja rokasgrāmatu.

3) Kas ir programmatūras pārveidošana?

Tas ir programmatūras izstrādes process, kas tiek veikts, lai uzlabotu programmatūras sistēmas uzturēšanu.

4) Īsumā aprakstiet programmatūras izstrādes procesu:

Programmatūras izstrāde ir dzīves cikls, kas sastāv no šādiem posmiem:

  • Prasību analīze
  • Specifikācija
  • Programmatūras arhitektūra
  • Īstenošana
  • Testēšana
  • Dokumentācija
  • Apmācība un atbalsts
  • Apkope

5) Kādi ir pieejami SDLC modeļi?

Ūdenskrituma modelis, spirālveida modelis, liela maisa modelis, atkārtojošais modelis un V modelis ir daži no slavenākajiem SDLC modeļiem.

6) Kas ir verifikācija un apstiprināšana?

Pārbaude:

Verifikācija ir termins, kas attiecas uz darbību kopumu, kas nodrošina, ka programmatūra īsteno noteiktu funkciju.

Apstiprināšana:

Tas attiecas uz darbību kopumu, kas nodrošina programmatūras izveidi atbilstoši klientu vajadzībām.

7) Ko programmatūras izstrādes procesā nozīmē atkļūdošana?

Atkļūdošana ir process, kura rezultātā tiek novērsta kļūda. Tā ir ļoti svarīga veiksmīgas pārbaudes sastāvdaļa.

8) Kā jūs varat pārliecināties, ka kods ir drošs un ātrs?

Programmatūrā izstrādes drošība vienmēr ir pirmā. Tātad, ja programma tiek izpildīta lēni, tad es centīšos noteikt iemeslus, kādēļ tā var tikt sarežģīta.

9) Nosauciet divus rīkus, kas tiek izmantoti programmatūras prasību izsekošanai?

Ir daudz iespēju, kā sekot līdzi prasībām.

Divi parasti tiek izmantoti:

  • Izveidojiet prasību specifikāciju dokumentu, kurā uzskaitītas visas prasības.
  • Izveidojiet Excel lapu sarakstā, norādot prasību, veidu, atkarību, prioritāti utt.

10) Kāda ir galvenā atšķirība starp celmiem, izspēli?

Stubs ir minimāla saskarnes ieviešana, kas parasti atgriež cieti kodētus datus, bet izspēles parasti pārbauda rezultātus pret cerībām. Šīs cerības ir noteiktas testā.

11) Kādā valodā vēlaties rakstīt programmēšanas algoritmus?

Katram izstrādātājam ir savs viedoklis par programmēšanas valodas izvēli. Tomēr priekšroka jādod augsta līmeņa valodām, jo ​​tās ir dinamiskas. Tāpat kā C un C ++ valodas.

12) Kas ir datoru programmatūra?

Datoru programmatūra ir pakete, kas ietver programmatūru, tās dokumentāciju un lietotāja rokasgrāmatu par programmatūras lietošanu.

13) Pēc jūsu domām, kurš SDLC modelis ir labākais?

Nav šāda rangu, jo SDLC modeļi tiek pieņemti atbilstoši izstrādes procesa nepieciešamībai. Programmatūra var atšķirties.

14) Kas ir programmatūras projektu vadītājs? Kāda ir viņa loma?

Programmatūras projekta vadītājs ir persona, kas atbild par programmatūras izstrādes projekta vadību.

Projekta vadītājs veic projekta plānošanu, seko līdzi progresam, saziņai. Viņš vai viņa arī pārvalda riskus un resursus, lai projektu īstenotu laika, izmaksu un kvalitātes ierobežojumu ietvaros.

15) Ko nozīmē programmatūras darbības joma?

Programmatūras darbības joma ir skaidri definēta robeža. Tas ietver visa veida darbības, kas tiek veiktas, lai izstrādātu un piegādātu programmatūras produktu.

Programmatūras darbības joma nosaka visas funkcijas un artefaktus, kas jāpiegādā kā programmatūras sastāvdaļa. Darbības joma arī nosaka, ko produkts darīs? Kas nav projekta daļa? Kas ir projekta novērtēšana?

Šis process ir noderīgs, lai novērtētu dažādus programmatūras produkta aspektus. Par šo novērtējumu var izlemt, vai nu konsultējoties ar ekspertiem, vai arī izmantojot iepriekš noteiktas formulas.

16) Kā atrast programmatūras produkta izmēru?

Programmatūras produkta lielumu var aprēķināt, izmantojot divas metodes

  • Tiek piegādāta koda rindu skaitīšana
  • Piegādāto funkciju punktu skaitīšana

17) Kādi ir funkciju punkti?

Funkciju punkti ir funkcijas, kuras nodrošina programmatūras produkts. Tas tiek uzskatīts par vissvarīgāko programmatūras lieluma mērījumu.

18) Kādas ir programmatūras projektu novērtēšanas metodes?

Visplašāk izmantotās novērtēšanas metodes ir:

  • Sadalīšanās tehnika
  • Empīriskā tehnika

19) Kas ir programmatūras konfigurācijas pārvaldība?

Programmatūras konfigurācijas pārvaldība ir programmatūrā notiekošo izmaiņu izsekošanas un kontroles process.

Izmaiņu kontrole ir funkcija, kas nodrošina visu programmatūras sistēmā veikto izmaiņu konsekvenci un izveidošanu, izmantojot organizācijas noteikumus un noteikumus.

20) Kā jūs varat izmērīt projekta izpildi?

Mēs varam izmērīt projekta izpildi, izmantojot darbību monitoringu, statusa pārskatus un atskaites punktus.

21) Pastāstiet man par dažiem projektu vadības rīkiem.

Saskaņā ar programmatūras projekta nepieciešamību tiek izmantoti daudzi pārvaldības rīku veidi. Daži no tiem ir Pert diagramma, Ganta diagramma, resursu histogramma, statusa pārskati utt.

22) Kādas ir programmatūras prasības?

Programmatūras prasības ir ierosinātās programmatūras sistēmas funkcionāls apraksts. Tiek pieņemts, ka tas ir mērķa sistēmas, tās funkcionalitātes un iezīmju apraksts.

23) Kas ir priekšizpēte?

Tas ir pasākums, lai uzzinātu, cik praktiska un izdevīga programmatūras projekta izstrāde izrādīsies organizācijai. Programmatūras analizators veic pētījumu, lai uzzinātu projekta ekonomiskās, tehniskās un ekspluatācijas iespējas.

  1. Ekonomisks: tas ietver apmācības izmaksas, papildu un instrumentu izmaksas, kā arī projekta izmaksu un ieguvumu vispārēju novērtējumu.

  2. Tehniskais: tas novērtē tehnisko aspektu. Vai ir iespējams attīstīt šo sistēmu? Novērtējot mašīnas (-u) un OS, kurās programmatūra tiks izpildīta, piemērotību, zināšanas par programmatūras izstrādi un šim projektam pieejamiem rīkiem.

  3. Darbības: šeit analītiķim jānovērtē, vai organizācija spēs vienmērīgi pielāgoties veiktajām izmaiņām atbilstoši projekta pieprasījumam. Vai problēmu ir vērts atrisināt par aprēķinātajām izmaksām?

Pēc šī visa izpētīšanas tiek izveidots galīgais priekšizpēte.

24) Kādas ir funkcionālās un nefunkcionālās prasības?

Funkcionālās prasības ir funkcionālās funkcijas, kuras lietotāji gaida no piedāvātā programmatūras produkta.

Nefunkcionālās prasības ir saistītas ar lietotāja saskarnes drošību, veiktspēju, izskatu un darbību.

25) Kas ir programmatūras metrika?

Programmatūras metrika piedāvā pasākumus dažādiem programmatūras procesa aspektiem, kas ir sadalīti:

  1. Prasību metrika: garuma prasības, pilnīgums
  2. Produkta metrika: kodēšanas līniju skaits, objektorientētā metrika, dizaina un testa metrika.

26) Kas ir modulācija?

Modularizācija ir paņēmiens, ko izmanto programmatūras sistēmas sadalīšanai dažādos diskrētos moduļos. Paredzams, ka uzdevumus veiks neatkarīgi.

27) Kas ir kohēzija?

Kohēzija ir pasākums, kas nosaka moduļa elementu savstarpējo atkarību.

28) Vai pieminat dažus programmatūras analīzes un projektēšanas rīkus?

Daži no vissvarīgākajiem programmatūras analīzes un projektēšanas rīkiem ir:

  • Datu plūsmas diagrammas
  • Strukturētās diagrammas
  • Strukturēta angļu valoda
  • Datu vārdnīca
  • Hierarhiskas ievades procesa izvades diagrammas
  • Entītiju attiecību diagrammas un lēmumu tabulas

29) Ko nozīmē 0 līmeņa datu plūsmas diagramma?

Augstāko abstrakcijas līmeni sauc par DFD 0 līmeni. To sauc arī par konteksta līmeņa DFD. Tas visu informācijas sistēmu attēlo kā vienu diagrammu.

30) Kāda ir galvenā atšķirība starp strukturēto angļu valodu un Pseido kodu?

Strukturētā angļu valoda ir dzimtā angļu valoda. To izmanto, lai uzrakstītu programmas moduļa struktūru. Tas izmanto programmēšanas valodas atslēgvārdus. No otras puses, Pseido kods ir vairāk līdzīgs programmēšanas valodai bez kādas konkrētas valodas sintakses.

31) Kas ir strukturētais dizains?

Strukturētais dizains ir problēmas konceptualizācija. To sauc arī par risinājumu dizainu, un tā pamatā ir “dali un iekaro” stratēģija.

32) Kas ir funkcionālā programmēšana?

Tā ir programmēšanas metode, kurā tiek izmantoti matemātiskās funkcijas jēdzieni. Tas nodrošina skaitļošanas līdzekļus kā matemātiskas funkcijas, kas arī rada rezultātus neatkarīgi no programmas stāvokļa.

33) Kas ir kvalitātes nodrošināšana pret kvalitātes kontroli?

Kvalitātes nodrošināšana pārbauda, ​​vai programmatūras izstrādes laikā tiek ievērots pareizs process, savukārt kvalitātes kontrole nodarbojas ar programmatūras produkta kvalitātes uzturēšanu.

34) Kas ir CASE rīki?

CASE nozīmē datorizētu programmatūras inženieriju. Tie ir automatizētu programmatūras lietojumprogrammu komplekti, kurus izmanto SDLC darbību atbalstam, uzlabošanai un stiprināšanai.

35) Kurš procesa modelis novērš defektus, pirms programmatūra nonāk nepatikšanās?

Tīrās telpas programmatūras inženierijas metode novērš defektus, pirms programmatūra nonāk nepatikšanās.

36) Atrisiniet šo problēmu

Vienā tumšā telpā atvilktnē ir divdesmit dažādas divu veidu zeķes. Kāds ir minimālais zeķu skaits, kas jums jāņem, lai pārliecinātos, ka jums ir atbilstošs pāris? "

Ja jūs paņemat trīs zeķes, tās var būt viena veida, pat ja izredzes ir 50%. Izredzes nekad nav vienādas realitātes. Tāpēc vienīgais veids, kā "nodrošināt, ka jums ir atbilstošs pāris", ir uzņemt vismaz 11 triecienu skaitu.

37) Kā jūs varat pārliecināties, vai jūsu rakstītais kods, kas spēj apstrādāt dažāda veida kļūdas?

Es varu uzrakstīt testus, kas nosaka gaidāmās kļūdu situācijas.

38) Paskaidrojiet atšķirības starp pavedienu un procesu?

Process ir datorprogrammas gadījums. Vienā programmā var būt viens vai vairāki pavedieni.

39) Pastāsti man atšķirību starp EXE un DLL?

Exe ir izpildāma programma, savukārt DLL ir fails, kuru programmas var dinamiski ielādēt un izpildīt. Tas ir ārējs kodu repozitorijs programmām. Tā kā abas ir dažādas programmas, atkārtoti izmantojiet to pašu DLL, nevis to, ka failā ir šis kods. Tas arī samazina nepieciešamo uzglabāšanas vietu.

40) Kas ir spēcīga un vāja rakstīšana? Kurš ir vēlamais? Kāpēc?

Spēcīga rakstīšana pārbauda mainīgo lielumus kompilēšanas laikā. No otras puses, vāja rakstīšana pārbauda sistēmas tipus izpildes laikā. Starp tiem vienmēr tiek dota priekšroka spēcīgai rakstīšanai, jo tā samazina kļūdas.

41) Aprakstiet atšķirību starp uz saskarni orientētu, uz objektu orientētu un uz aspektu orientētu programmēšanu.

  • Saskarnes programmēšana ir balstīta uz līgumu.
  • Orientēts uz objektu ir veids, kā rakstīt detalizētus objektus, kuriem ir viens mērķis.
  • Uz aspektu orientēta programmēšana ir koda nošķiršana tādā veidā, ka dažādiem objektiem ir galvenie uzdevumi, bet papildu uzdevumus veic neatkarīgi objekti.

42) Kāpēc nozvejas (izņēmums) izmantošana vienmēr ir slikta ideja?

Tā ir slikta ideja, jo:

  • Tā kā nav definēts mainīgais, izņēmumu nav iespējams nolasīt
  • Ir labi izmantot izņēmumu, ja jums ir zināmi izņēmumu veidi.

43) Kāda veida dati tiek pārsūtīti, izmantojot HTTP galvenes?

Skripts un metadati tiek nodoti, izmantojot HTTP galvenes.

44) Kā jūs izvirzāt prioritātes prasībām?

Pirmkārt, jums jāveido sistēma, novērtējot datu struktūru. Tad jums vajadzētu pāriet uz koda struktūru, kas nepieciešama tās atbalstam.

45) Vai man ir atšķirības starp objektorientētu un uz komponentiem balstītu dizainu?

Objektorientētu dizainu zināmā mērā var viegli iekomponēt uz komponentiem balstītā projektēšanā.

46) Kad jūs izmantojat polimorfismu?

Polimorfisms tiek izmantots, ja mantojot klasi ir nepieciešams ignorēt funkcionalitāti. Tas ir par kopīgām klasēm un kopīgiem līgumiem.

47) Kāda ir atšķirība starp kaudzi un rindu?

  • Rinda vienmēr ir First In, First Out
  • Steks vienmēr ir pēdējais, pirmais

48) Kas ir svarīgi koda kvalitātes pārbaudei?

Pēc manām domām, vienības testēšanas sistēma ir būtiska koda kvalitātes pārbaudei.

49) Vai jūs domājat, ka programmatūras uzturēšana ir dārga?

Pēc manām domām, programmatūras uzturēšana nekad nebūs dārga, ja izmantosim pareizu izstrādes procesu.

50) Vai man ir atšķirības starp tagiem un zariem?

Tagi ir paredzēti versiju versijām, kas ir pagaidu turēšanas vietas šādas darbības veikšanai. Tomēr filiāles tiek dzēstas, kad šīs izmaiņas tiek apvienotas bagāžniekā.

51) Kur ir pieejams aizsargāts klases līmeņa mainīgais?

Aizsargāti klases līmeņa mainīgie ir pieejami jebkurai apakšklasei, kas iegūta no bāzes klases.

52) Vai ir iespējams izpildīt vairākus uztveršanas blokus vienam mēģinājuma paziņojumam?

Jā. Vienam mēģinājuma paziņojumam var izpildīt vairākus nozvejas blokus.

53) Kad jums jāpaziņo klase par abstraktu?

Mums vajadzētu pasludināt klasi par abstraktu šādās situācijās:

  1. Kad klase tiek mantota no abstraktas klases, bet ne visas abstraktās metodes ir ignorētas.
  2. Gadījumā, ja vismaz viena no klases metodēm tiek deklarēta kā abstrakts.

54) Izstrādājiet algoritmu, kas izraksta jūsu pašreizējo atrašanās vietu, un sarakstu ar bankomātiem šajā apgabalā. Nokļūstiet tuvāk savai atrašanās vietai ar K bankomātiem.

Izveidojiet metodi getDistance (a, b), kas aprēķina attālumu starp a un b.

Kods:

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