50 Software Engineering -haastattelun kysymystä ja vastausta

Täältä löydät Software Engineeringin haastattelukysymykset ja vastaukset sekä tuoreemmille että kokeneemmille hakijoille unelmatyönsä saamiseksi.

 

Ohjelmistokehittäjien haastattelukysymyksiä ja vastauksia Freshersille

1) Mitkä ovat ohjelmistojen tärkeät luokat?

  • järjestelmän ohjelmisto
  • Sovellusohjelma
  • Sulautetut ohjelmistot
  • Web-sovellukset
  • Tekoälyohjelmisto
  • Tieteellinen ohjelmisto.

👉 Ilmainen PDF-lataus: Ohjelmistotekniikan haastattelukysymykset ja vastaukset


2) Mikä on tärkein ero tietokoneohjelman ja tietokoneohjelmiston välillä?

Tietokoneohjelma on osa ohjelmointikoodia. Se suorittaa hyvin määritellyn tehtävän. Toisaalta ohjelmisto sisältää ohjelmointikoodin, dokumentaation ja käyttöoppaan.


3) Mitä ohjelmistojen uudelleensuunnittelu on?

Se on ohjelmistokehitysprosessi, jonka tarkoituksena on parantaa ohjelmistojärjestelmän ylläpidettävyyttä.

Ohjelmistotekniikan kysymykset


4) Kuvaile ohjelmistokehitysprosessia lyhyesti:

Ohjelmistokehitys on elinkaarta, joka koostuu seuraavista vaiheista:

  • Vaatimusanalyysi
  • määrittely
  • Ohjelmistoarkkitehtuuri
  • Täytäntöönpano
  • Testaus
  • Dokumentaatio
  • Koulutus ja tuki
  • Huolto

5) Mitä SDLC-malleja on saatavilla?

Vesiputousmalli, spiraalimalli, Big-bag-malli, iteratiivinen malli ja V-malli ovat joitakin kuuluisia SDLC mallit.


6) Mitä varmennus ja validointi on?

Todentaminen:

Varmennus on termi, joka viittaa toimintojen joukkoon, jolla varmistetaan, että ohjelmisto toteuttaa tietyn toiminnon.

Vahvistus:

Se viittaa toimintosarjaan, jolla varmistetaan, että ohjelmisto on rakennettu asiakkaiden tarpeiden mukaan.


7) Mitä ohjelmistokehitysprosessissa tarkoittaa virheenkorjaus?

Vianetsintä on prosessi, joka johtaa virheiden poistamiseen. Se on erittäin tärkeä osa onnistunutta testausta.


8) Kuinka voit varmistaa, että koodisi on sekä turvallinen että nopea?

Ohjelmistoissa kehitysturvallisuus on aina etusijalla. Joten jos ohjelman suoritus on hidasta, yritän tunnistaa syyt sen aikaiseen monimutkaisuuteen.


9) Nimeä kaksi työkalua, joita käytetään ohjelmistovaatimusten seuraamiseen?

On monia tapoja seurata vaatimuksia.

Kaksi yleisesti käytettyä ovat:

  • Tee vaatimusmäärittelyasiakirja, jossa luetellaan kaikki vaatimukset.
  • Luo Excel-taulukko, jossa on luettelo vaatimuksesta, tyypistä, riippuvuudesta, prioriteetista jne.

10) Mikä on tärkein ero tynkän, pilan välillä?

Tynkä on rajapinnan minimaalinen toteutus, joka yleensä palauttaa kovakoodattua dataa, kun taas mock yleensä tarkistaa tulosteet odotusten vastaisesti. Nämä odotukset asetetaan testissä.


11) Millä kielellä haluat kirjoittaa ohjelmointialgoritmeja?

Jokaisella kehittäjällä on näkemyksensä ohjelmointikielen valinnasta. Korkean tason kieliä pitäisi kuitenkin suosia, koska ne ovat dynaamisia. Kuten C ja C++ Kieli (kielet.


12) Mikä on tietokoneohjelmisto?

Tietokoneohjelmisto on paketti, joka sisältää ohjelmiston, sen dokumentaation ja käyttöohjeen ohjelmiston käytöstä.


13) Mikä SDLC-malli on mielestäsi paras?

Tällaista sijoitusta ei ole, koska SDLC-mallit otetaan käyttöön kehitysprosessin tarpeen mukaan. Se voi vaihdella ohjelmistoittain.


14) Kuka on ohjelmistoprojektipäällikkö? Mikä on hänen roolinsa?

Ohjelmistoprojektipäällikkö on ohjelmistokehitysprojektin johtamisesta vastaava henkilö.

Projektipäällikkö tekee projektin suunnittelun, edistymisen seurantaa, viestintää. Hän myös hallitsee riskejä ja resursseja toteuttaakseen projektin ajan, kustannusten ja laaturajoitusten puitteissa.


15) Mitä ohjelmiston laajuus tarkoittaa?

Ohjelmiston laajuus on hyvin määritelty raja. Se sisältää kaikenlaiset toiminnot, joita tehdään ohjelmistotuotteen kehittämiseksi ja toimittamiseksi.

Ohjelmiston laajuus määrittelee kaikki toiminnot ja artefaktit, jotka toimitetaan osana ohjelmistoa. Laajuus määrittää myös, mitä tuote tekee? Mikä ei ole osa hanketta? Mikä on projektiarvio?

Tämä prosessi auttaa arvioimaan ohjelmistotuotteen eri näkökohtia. Tämä arvio voidaan päättää joko asiantuntijoiden kanssa tai käyttämällä ennalta määriteltyjä kaavoja.


16) Kuinka löytää ohjelmistotuotteen koko?

Ohjelmistotuotteen koko voidaan laskea kahdella seuraavalla menetelmällä

  • Toimitetun koodin rivien laskeminen
  • Toimitettujen toimintopisteiden laskeminen

17) Mitä ovat funktiopisteet?

Toimintapisteet ovat ohjelmistotuotteen tarjoamia ominaisuuksia. Sitä pidetään ohjelmiston koon tärkeimpänä mittarina.


18) Mitä ohjelmistoprojektien arviointitekniikoita on saatavilla?

Yleisimmin käytetyt estimointitekniikat ovat:

  • Hajotustekniikka
  • Empiirinen tekniikka

19) Mitä ohjelmistokokoonpanon hallinta on?

Ohjelmistokokoonpanon hallinta on prosessi, jossa seurataan ja ohjataan ohjelmistossa tapahtuvia muutoksia.

Muutostenhallinta on toiminto, joka varmistaa, että kaikki ohjelmistojärjestelmään tehtävät muutokset ovat johdonmukaisia ​​ja luotuja organisaation sääntöjen ja määräysten mukaisesti.


20) Kuinka voit mitata projektin toteutusta?

Voimme mitata projektin toteutusta toiminnanvalvonnan, tilaraporttien ja virstanpylväiden tarkistuslistoilla.


21) Kerro minulle projektinhallinnan työkaluista.

Ohjelmistoprojektin tarpeen mukaan käytetään monenlaisia ​​hallintatyökaluja. Jotkut niistä ovat Pert-kaavio, Gantt-kaavio, resurssien histogrammi, tilaraportit jne.


22) Mitkä ovat ohjelmistovaatimukset?

Ohjelmistovaatimukset ovat toiminnallinen kuvaus ehdotetusta ohjelmistojärjestelmästä. Sen oletetaan olevan kuvaus kohdejärjestelmästä, sen toiminnoista ja ominaisuuksista.


23) Mikä on toteutettavuustutkimus?

Se on mitta, jolla saadaan selville, kuinka käytännölliseksi ja hyödylliseksi ohjelmistoprojektin kehitys osoittautuu organisaatiolle. Ohjelmistoanalysaattori tekee tutkimuksen selvittääkseen projektin taloudellisen, teknisen ja toiminnallisen toteutettavuuden.

  1. taloudellinen: Se sisältää koulutuskustannukset, lisä- ja työkalukustannukset sekä kokonaisarvion hankkeen kustannuksista ja hyödyistä.
  2. Tekniset: Se arvioi teknisiä puolia. Onko mahdollista kehittää tätä järjestelmää? Ohjelmiston suorittamiseen käytettävien koneiden ja käyttöjärjestelmän sopivuuden arvioiminen, ohjelmistokehityksen tuntemus ja tähän projektiin käytettävissä olevat työkalut.
  3. Operaehdollinen: Tässä analyytikon on arvioitava, että organisaatio pystyy sopeutumaan sujuvasti projektin kysynnän mukaan tehtyihin muutoksiin. Kannattaako ongelma ratkaista arvioiduilla kustannuksilla?

Kaiken tämän tutkimisen jälkeen luodaan lopullinen toteutettavuusraportti.


24) Mitkä ovat toiminnalliset ja ei-toiminnalliset vaatimukset?

Toiminnalliset vaatimukset ovat toiminnallisia ominaisuuksia, joita käyttäjät odottavat ehdotetulta ohjelmistotuotteelta.

Ei-toiminnalliset vaatimukset liittyvät käyttöliittymän turvallisuuteen, suorituskykyyn, ulkoasuun ja tuntumaan.


25) Mikä on ohjelmistometriikka?

Software Metrics tarjoaa mittareita ohjelmistoprosessin eri osa-alueille, jotka on jaettu:

  1. Vaatimusmittarit: Pituusvaatimukset, täydellisyys
  2. Tuotemittarit: koodausrivien määrä, oliosuuntautunut metriikka, suunnittelu- ja testausmetriikka.

26) Mitä modularisointi on?

Modularisointi on tekniikka, jota käytetään ohjelmistojärjestelmän jakamiseen erillisiin moduuleihin. Sen odotetaan suorittavan tehtävät itsenäisesti.


27) Mitä on koheesio?

Koheesio on mitta, joka määrittelee moduulin elementtien sisäisen luotettavuuden.


28) Mainitsetko joitain ohjelmistoanalyysi- ja suunnittelutyökaluja?

Jotkut tärkeimmistä ohjelmistojen analysointi- ja suunnittelutyökaluista ovat:

  • Tietovirtakaaviot
  • Strukturoidut kaaviot
  • Strukturoitu englanti
  • Data-sanakirja
  • Hierarkkinen syöttöprosessi Tulostuskaaviot
  • Entiteettisuhdekaaviot ja päätöstaulukot

29) Mitä tarkoittaa tason-0 Datavuokaavio?

Korkeinta abstraktiotasoa kutsutaan DFD:n tasoksi 0. Sitä kutsutaan myös kontekstitason DFD:ksi. Se esittää koko tietojärjestelmän yhtenä kaaviona.


30) Mikä on suurin ero strukturoidun englannin ja pseudokoodin välillä?

Strukturoitu englanti on äidinkielenään englanti. Sitä käytetään ohjelmamoduulin rakenteen kirjoittamiseen. Se käyttää ohjelmointikielen avainsanoja. Toisaalta Pseudo Code on enemmän kuin ohjelmointikieli ilman minkään tietyn kielen syntaksia.


Ohjelmistotuotanto viva Kysymyksiä ja vastauksia kokeneille

31) Mitä on strukturoitu suunnittelu?

Strukturoitu suunnittelu on ongelman käsitteellistäminen. Sitä kutsuttiin myös ratkaisusuunnitteluksi ja joka perustuu "haja ja hallitse" -strategiaan.


32) Mitä on toiminnallinen ohjelmointi?

Se on ohjelmointimenetelmä, joka käyttää matemaattisen funktion käsitteitä. Se tarjoaa laskentakeinoja matemaattisina funktioina, jotka myös tuottaa tuloksia ohjelman tilasta riippumatta.


33) Mitä on laadunvarmistus vs. laadunvalvonta?

Laadunvarmistus tarkistaa, noudatetaanko asianmukaista prosessia ohjelmistoa kehitettäessä, kun taas laadunvalvonta huolehtii ohjelmistotuotteen laadun ylläpitämisestä.


34) Mitä CASE-työkalut ovat?

CASE tarkoittaa tietokoneavusteista Ohjelmistotuotanto. Ne ovat joukko automatisoituja ohjelmistosovellusohjelmia, joita käytetään tukemaan, parantamaan ja vahvistamaan SDLC-toimintoja.


35) Mikä prosessimalli poistaa viat ennen kuin ohjelmisto joutuu ongelmiin?

Puhdastilojen ohjelmistosuunnittelumenetelmä poistaa viat ennen kuin ohjelmisto joutuu ongelmiin.


36) Ratkaise tämä ongelma

Yhden pimeän huoneen laatikossa on kaksikymmentä erilaista kahden tyyppistä sukkaa. Mikä on vähimmäismäärä sukkia, jotka sinun tulee ottaa varmistaaksesi, että sinulla on sopiva pari?"

Jos otat kolme sukkaa, ne voivat olla samaa tyyppiä, vaikka todennäköisyys olisi 50%. Kertoimet eivät koskaan ole yhtä todellisuutta. Siksi ainoa tapa "varmistaa, että sinulla on sopiva pari" on poimia vähintään 11 ​​iskua.


37) Kuinka voit varmistaa, että kirjoitettu koodisi pystyy käsittelemään erilaisia ​​virhetilanteita?

Osaan kirjoittaa testejä, jotka määrittelevät odotetut virhetilanteet.


38) Selitä ketjun ja prosessin erot?

Prosessi on tietokoneohjelman esiintymä. Yhdessä ohjelmassa voi olla yksi tai useampi säike.


39) Kerro minulle, mikä ero on EXE:n ja DLL:n välillä?

Exe on suoritettava ohjelma, kun taas DLL on tiedosto, jonka ohjelmat voivat ladata ja suorittaa dynaamisesti. Se on ulkoinen koodivarasto ohjelmille. Koska molemmat ovat eri ohjelmia, käytä samaa DLL-tiedostoa uudelleen sen sijaan, että tiedostossa olisi kyseinen koodi. Se myös vähentää tarvittavaa säilytystilaa.


40) Mikä on vahva ja heikko kirjoittaminen? Kumpi on parempi? Miksi?

Vahva kirjoittaminen tarkistaa muuttujien tyypit käännöshetkellä. Toisaalta heikko kirjoitus tarkistaa järjestelmän tyypit ajon aikana. Niistä vahva kirjoittaminen on aina parempi, koska se minimoi virheet.


41) Kuvaile eroa rajapintasuuntautuneen, oliosuuntautuneen ja Aspect-oriented ohjelmoinnin välillä.

  • Käyttöliittymäohjelmointi on sopimuspohjaista.
  • Oliokeskeinen on tapa kirjoittaa rakeisia objekteja, joilla on yksi tarkoitus.
  • Aspekti-ohjelmointi tarkoittaa koodin erottelua siten, että eri objektit suorittavat päätehtävät ja sivutehtävät itsenäiset objektit.

42) Miksi saalis (poikkeus) on aina huono idea?

Se on huono idea, koska:

  • Koska muuttujaa ei ole määritetty, ei ole mahdollista lukea poikkeusta
  • Poikkeusta on hyvä käyttää, kun tunnet poikkeustyypit.

43) Millaista dataa välitetään HTTP-otsikoiden kautta?

HTTP-otsikoiden kautta välitetty komentosarja ja metatiedot.


44) Miten priorisoit vaatimukset?

Ensin sinun on suunniteltava järjestelmä arvioimalla tietorakenne. Sitten sinun tulee siirtyä sen tukemiseen tarvittavaan koodirakenteeseen.


45) Kerro minulle eroja olio- ja komponenttipohjaisen suunnittelun välillä?

Oliolähtöinen suunnittelu voidaan helposti kapseloida jossain määrin komponenttipohjaiseen suunnitteluun.


46) Milloin käytät polymorfismia?

Polymorfismia käytetään, kun luokkaa peritään ohitustoiminnallisuudelle. Kyse on yhteisistä luokista ja yhteisistä sopimuksista.


47) Mitä eroa pinon ja jonon välillä on?

  • Jono on aina First In, First Out
  • Stack on aina Last In, First Out

48) Mikä on olennaista koodin laadun testaamiseksi?

Minun mielestäni yksikkötestauskehys on olennainen koodin laadun testaamisessa.


49) Onko ohjelmistojen ylläpito mielestäsi kallista?

Ohjelmistojen ylläpito ei mielestäni tule koskaan olemaan kallista, jos käytämme asianmukaista kehitysprosessia.


50) Kerro minulle erot tunnisteiden ja haarojen välillä?

Tunnisteet ovat versioiden versiointia varten, jotka ovat tilapäisiä säilytyspaikkoja tällaisten asioiden tekemiselle. Haarat kuitenkin poistetaan, kun nämä muutokset yhdistetään runkoon.


51) Mistä suojattu luokkatason muuttuja on saatavilla?

Suojatut luokkatason muuttujat ovat saatavilla mille tahansa perusluokasta johdetulle alaluokalle.


52) Onko mahdollista suorittaa useita catch-lohkoja yhdelle try-lauseelle?

Joo. Yhdelle try-lauseelle voidaan suorittaa useita catch-lohkoja.


53) Milloin luokka on julistettava abstraktiksi?

Meidän pitäisi julistaa luokka abstraktiksi seuraavissa tilanteissa:

  1. Kun luokka on peritty abstraktista luokasta, mutta kaikkia abstrakteja menetelmiä ei ole ohitettu.
  2. Siinä tapauksessa, että vähintään yksi luokan menetelmistä on ilmoitettu abstraktiksi.

54) Kehitä algoritmi, joka tulostaa nykyisen sijaintisi ja luettelon pankkiautomaattien sijainneista tällä alueella. Saat sijaintiasi lähimmät K-pankkiautomaatit.

Luo menetelmä getDistance(a, b), joka laskee a:n ja b:n välisen etäisyyden.

Koodi:

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;

}

}

Nämä haastattelukysymykset auttavat myös vivassasi (suullinen)

Päivittäinen Guru99-uutiskirje

Aloita päiväsi uusimmilla ja tärkeimmillä tekoälyuutisilla, jotka toimitetaan juuri nyt.