Preuzmite PDF
1) Koje su važne kategorije softvera?
- Sistemski softver
- Aplikacijski softver
- Ugrađeni softver
- Web aplikacije
- Softver za umjetnu inteligenciju
- Znanstveni softver.
2) Koja je glavna razlika između računalnog programa i računalnog softvera?
Računalni program dio je programskog koda. Izvodi točno definiran zadatak. S druge strane, softver uključuje programski kod, dokumentaciju i korisnički vodič.
3) Što je reinženjering softvera?
To je proces razvoja softvera koji se radi kako bi se poboljšala održivost softverskog sustava.
4) Ukratko opišite postupak razvoja softvera:
Životni ciklus razvoja softvera sastoji se od sljedećih faza:
- Analiza zahtjeva
- Specifikacija
- Arhitektura softvera
- Provedba
- Testiranje
- Dokumentacija
- Obuka i podrška
- Održavanje
5) Koji su dostupni SDLC modeli?
Waterfall Model, Spiral Model, Big-bag model, Iterative Model i V-Model neki su od poznatih SDLC modela.
6) Što je provjera i potvrda?
Verifikacija:
Provjera je pojam koji se odnosi na skup aktivnosti kojima se osigurava da softver provodi određenu funkciju.
Provjera valjanosti:
Odnosi se na skup aktivnosti kojima se osigurava da je softver izrađen prema potrebama klijenata.
7) Koje je značenje otklanjanja pogrešaka u procesu razvoja softvera?
Otklanjanje pogrešaka postupak je koji rezultira uklanjanjem pogreške. To je vrlo važan dio uspješnog testiranja.
8) Kako možete biti sigurni da je vaš kôd i siguran i brz?
U softveru je razvojna sigurnost uvijek na prvom mjestu. Dakle, ako je tada izvršavanje programa sporo, pokušat ću prepoznati razlog i pronaći putove do njegove vremenske složenosti.
9) Navedi dva alata koja se koriste za praćenje softverskih zahtjeva?
Postoji mnogo načina za praćenje zahtjeva.
Dvije najčešće korištene su:
- Napravite dokument sa specifikacijama zahtjeva da biste popisali sve zahtjeve.
- Stvorite excel list na popisu prema zahtjevu, vrsti, ovisnosti, prioritetu itd.
10) Koja je glavna razlika između škrti, rugalice?
Stub je minimalna implementacija sučelja koje obično vraća tvrdo kodirane podatke, dok lažni obično provjerava rezultate prema očekivanjima. Ta su očekivanja utvrđena u testu.
11) Koji jezik voliš pisati algoritme za programiranje?
Svaki programer ima svoje stavove što se tiče izbora programskog jezika. Ipak, treba preferirati jezike visoke razine jer su dinamični. Poput jezika C i C ++.
12) Što je računalni softver?
Računalni softver paket je koji uključuje softverski program, njegovu dokumentaciju i korisničke upute za upotrebu softvera.
13) Koji je SDLC model prema vama koji je najbolji?
Ne postoji takvo rangiranje, jer se SDLC modeli usvajaju prema potrebi za razvojnim postupkom. Može se razlikovati od softvera do softvera.
14) Tko je voditelj softverskih projekata? Koja je njegova uloga?
Voditelj softverskog projekta je osoba odgovorna za upravljanje projektom razvoja softvera.
Voditelj projekta vrši planiranje projekta, nadgleda napredak, komunicira. On također upravlja rizicima i resursima kako bi realizirao projekt unutar vremenskih ograničenja, troškova i kvaliteta.
15) Što se podrazumijeva pod opsegom softvera?
Opseg softvera dobro je definirana granica. Uključuje sve vrste aktivnosti koje se poduzimaju za razvoj i isporuku softverskog proizvoda.
Opseg softvera definira sve funkcionalnosti i artefakte koji se isporučuju kao dio softvera. Opseg također identificira što će proizvod raditi? Što nije dio projekta? Što je procjena projekta?
Ovaj je postupak koristan za procjenu različitih aspekata softverskog proizvoda. O toj se procjeni može odlučiti bilo savjetovanjem sa stručnjacima ili pomoću unaprijed definiranih formula.
16) Kako pronaći veličinu softverskog proizvoda?
Veličina softverskog proizvoda može se izračunati pomoću dvije metode
- Brojanje redaka isporučenog koda
- Brojanje isporučenih funkcionalnih bodova
17) Što su funkcionalne točke?
Funkcijske točke su značajke koje pruža softverski proizvod. Smatra se najvažnijim mjerenjem veličine softvera.
18) Koje su tehnike procjene softverskog projekta dostupne?
Najčešće korištene tehnike procjene su:
- Tehnika razlaganja
- Empirijska tehnika
19) Što je upravljanje konfiguracijom softvera?
Upravljanje softverskom konfiguracijom postupak je praćenja i upravljanja promjenama koje se događaju u softveru.
Kontrola promjena funkcija je koja osigurava da su sve promjene u softverskom sustavu dosljedne i stvorene primjenom organizacijskih pravila i propisa.
20) Kako možete izmjeriti izvršenje projekta?
Izvršenje projekta možemo izmjeriti pomoću Nadgledanja aktivnosti, Izvješća o statusu i Popisa važnih događaja.
21) Pričajte mi o nekim alatima za upravljanje projektima.
Postoje mnoge vrste alata za upravljanje koji se koriste prema potrebi za softverskim projektom. Neki od njih su Pert Chart, Gantt Chart, Histogram resursa, Izvješća o stanju itd.
22) Koji su softverski zahtjevi?
Softverski zahtjevi su funkcionalni opis predloženog softverskog sustava. Pretpostavlja se da je to opis ciljanog sustava, njegovih funkcionalnosti i značajki.
23) Što je studija izvodljivosti?
To je mjera kako bismo saznali koliko će organizacija razvoj biti praktičan i koristan za razvoj softverskog projekta. Softverski analizator provodi studiju kako bi saznao ekonomsku, tehničku i operativnu izvedivost projekta.
-
Ekonomski: Uključuje troškove osposobljavanja, troškove dodatnih sredstava i alata te ukupnu procjenu troškova i koristi projekta.
-
Tehnički: Procjenjuje tehnički aspekt. Je li moguće razviti ovaj sustav? Procjena prikladnosti strojeva i OS-a na kojima će se izvršiti softver, znanje o razvoju softvera i alati dostupni za ovaj projekt.
-
Operativno: Ovdje analitičar treba procijeniti da će se organizacija moći glatko prilagoditi promjenama učinjenim prema zahtjevu za projektom. Vrijedi li problem riješiti uz procijenjeni trošak?
Nakon proučavanja svega toga izrađuje se konačno izvješće o izvedivosti.
24) Koji su funkcionalni i nefunkcionalni zahtjevi?
Funkcionalni zahtjevi su funkcionalne značajke koje korisnici očekuju od predloženog softverskog proizvoda.
Nefunkcionalni zahtjevi povezani su sa sigurnošću, izvedbom, izgledom i osjećajem korisničkog sučelja.
25) Što je softverska metrika?
Softverska metrika nudi mjere za različite aspekte softverskog procesa koji se dijele na:
- Metrika zahtjeva: Zahtjevi za duljinom, cjelovitost
- Metrika proizvoda: Broj linija kodiranja, Objektno orijentirana metrika, metrika dizajna i ispitivanja.
26) Što je modularizacija?
Modularizacija je tehnika koja se koristi za dijeljenje softverskog sustava na različite diskretne module. Očekuje se da će zadaće izvršavati samostalno.
27) Što je kohezija?
Kohezija je mjera koja definira unutar-pouzdanost među elementima modula.
28) Spominje neke alate za analizu i dizajn softvera?
Neki od najvažnijih alata za analizu i dizajniranje softvera su:
- Dijagrami protoka podataka
- Strukturirane karte
- Strukturirani engleski
- Rječnik podataka
- Hijerarhijski ulazni proces Izlazni dijagrami
- Dijagrami odnosa entiteta i tablice odluka
29) Što znači dijagram toka podataka razine 0?
Najviša razina apstrakcije naziva se razina 0 DFD-a. Također se naziva DFD na razini konteksta. Čitav informacijski sustav prikazuje kao jedan dijagram.
30) Koja je glavna razlika između strukturiranog engleskog i pseudo koda?
Strukturirani engleski je maternji engleski jezik. Koristi se za pisanje strukture programskog modula. Koristi ključne riječi programskog jezika. S druge strane, Pseudo Code je sličniji programskom jeziku bez sintakse bilo kojeg određenog jezika.
31) Što je strukturirani dizajn?
Strukturirani dizajn konceptualizacija je problema. Također se naziva i dizajn rješenja i koji se temelji na strategiji 'podijeli i osvoji'.
32) Što je funkcionalno programiranje?
To je metoda programiranja koja koristi koncepte matematičke funkcije. Pruža sredstva za izračunavanje kao matematičke funkcije, koje također daju rezultate bez obzira na stanje programa.
33) Što je osiguranje kvalitete nasuprot kontroli kvalitete?
Osiguranje kvalitete provjerava slijedi li se odgovarajući postupak tijekom razvoja softvera, dok se Kontrola kvalitete bavi održavanjem kvalitete softverskog proizvoda.
34) Što su CASE alati?
CASE znači računalno potpomognuto softversko inženjerstvo. Oni su skup automatiziranih softverskih aplikacijskih programa koji se koriste za podršku, poboljšanje i jačanje SDLC aktivnosti.
35) Koji model postupka uklanja nedostatke prije nego što softver upadne u probleme?
Metoda softverskog inženjerstva za čistu sobu uklanja nedostatke prije nego što softver uđe u probleme.
36) Riješite ovaj problem
U ladici u jednoj mračnoj sobi nalazi se dvadeset različitih čarapa dvije vrste. Koji je minimalni broj čarapa koji trebate ponijeti kako biste osigurali da imate odgovarajući par? "
Ako uzmete tri čarape, one mogu biti iste vrste, čak i ako je šansa 50%. Izgledi nikad jednaka stvarnost. Stoga je jedini način da "osigurate da imate odgovarajući par" uhvatiti najmanje 11 udaraca.
37) Kako možete biti sigurni da vaš pisani kôd može riješiti razne vrste pogrešaka?
Mogu napisati testove koji definiraju očekivane situacije pogrešaka.
38) Objasnite razlike između niti i procesa?
Proces je instanca računalnog programa. U jednom programu moguće je imati jednu ili više niti.
39) Recite mi razliku između EXE-a i DLL-a?
Exe je izvršni program, dok je DLL datoteka koju programi mogu dinamički učitati i izvršiti. To je vanjsko spremište koda za programe. Budući da su oba različita programa, ponovno upotrijebite isti DLL, umjesto da taj kôd bude u njihovoj datoteci. Također smanjuje potreban prostor za pohranu.
40) Što je snažno tipkanje i slabo tipkanje? Koji je poželjniji? Zašto?
Snažno tipkanje provjerava vrste varijabli u vrijeme sastavljanja. S druge strane, slabo tipkanje provjerava vrste sustava u vrijeme izvođenja. Među njima je uvijek poželjno snažno tipkanje jer minimalizira bugove.
41) Opišite razliku između programiranja usmjerenog na sučelje, objektno i aspektno orijentirano.
- Programiranje sučelja temelji se na ugovoru.
- Objektno orijentirani način je pisanja zrnatih objekata koji imaju jednu svrhu.
- Aspektno orijentirano programiranje je razdvajanje koda na takav način da razni objekti nose glavne zadatke, a pomoćne zadatke nose neovisni objekti.
42) Zašto je korištenje catch (iznimke) uvijek loša ideja?
To je loša ideja jer:
- Kako ne postoji definirana varijabla, nije moguće pročitati iznimku
- Dobro je koristiti iznimku kad poznajete vrste izuzetaka.
43) Koja vrsta podataka se prosljeđuje putem HTTP zaglavlja?
Skripta i metapodaci prosljeđivani su preko HTTP zaglavlja.
44) Kako određujete prioritete?
Prvo, trebate dizajnirati sustav procjenom strukture podataka. Tada biste trebali prijeći na strukturu koda potrebnu za njezinu podršku.
45) Dajte mi razlike između objektno orijentiranog i komponentnog dizajna?
Objektno orijentirani dizajn može se lako ugraditi do određenog stupnja u dizajn zasnovan na komponentama.
46) Kada koristite polimorfizam?
Polimorfizam se koristi kada postoji potreba za nadjačavanjem funkcionalnosti prilikom nasljeđivanja klase. Riječ je o zajedničkim predavanjima i zajedničkim ugovorima.
47) Koja je razlika između hrpe i reda?
- Red čekanja je uvijek prvi ulaz, prvi izlaz
- Stog je uvijek zadnji ulaz, prvi izlaz
48) Što je bitno za testiranje kvalitete koda?
Po meni je okvir za jedinično testiranje ključan za testiranje kvalitete koda.
49) Mislite li da je održavanje softvera skupo?
Po meni, održavanje softvera nikada neće biti skupo ako koristimo odgovarajući proces razvoja.
50) Dajte mi razlike između oznaka i grana?
Oznake su za izdanja verzija, koja su privremena mjesta za takvo što. Međutim, grane se brišu kad se te promjene spoje u deblo.
51) Gdje je dostupna zaštićena varijabla na razini klase?
Zaštićene varijable na razini klase dostupne su bilo kojoj podklasi izvedenoj iz osnovne klase.
52) Je li moguće izvršiti više blokova ulova za jedan pokušaj izraza?
Da. Za jedan iskaz pokušaja može se izvršiti više blokova ulova.
53) Kada trebate razred proglasiti apstraktnim?
Klasu bismo trebali proglasiti apstraktnom u sljedećim situacijama:
- Kada se klasa nasljeđuje iz apstraktne klase, ali nisu sve apstraktne metode nadjačane.
- U slučaju kada je minimalna jedna od metoda u klasi deklarirana kao sažetak.
54) Razviti algoritam koji prikazuje vaše trenutno mjesto i popis lokacija bankomata u tom području. Dobiti ćete najbliže K bankomate do svog mjesta.
Stvorite metodu getDistance (a, b) koja izračunava udaljenost između a i b.
Kodirati:
import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;public class PrioRQueueExample {public static void main(String[] args){PriorityQueuepq = 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;}}