Stiahnite si PDF
1) Aké sú dôležité kategórie softvéru?
- Systémový softvér
- Aplikačný softvér
- Zabudovaný softvér
- Webové aplikácie
- Softvér umelej inteligencie
- Vedecký softvér.
2) Aký je hlavný rozdiel medzi počítačovým programom a počítačovým softvérom?
Počítačový program je časť programovacieho kódu. Vykonáva presne stanovenú úlohu. Na druhej strane softvér obsahuje programovací kód, dokumentáciu a užívateľskú príručku.
3) Čo je softvérové inžinierstvo?
Jedná sa o proces vývoja softvéru, ktorý sa vykonáva s cieľom zlepšiť udržiavateľnosť softvérového systému.
4) Stručne popíšte proces vývoja softvéru:
Vývoj softvéru je životný cyklus, ktorý sa skladá z nasledujúcich etáp:
- Analýza požiadaviek
- Špecifikácia
- Softvérová architektúra
- Implementácia
- Testovanie
- Dokumentácia
- Školenie a podpora
- Údržba
5) Čo sú dostupné modely SDLC?
Waterfall Model, Spiral Model, Big-bag model, Iterative Model a V- Model sú niektoré zo známych modelov SDLC.
6) Čo je to overenie a validácia?
Overenie:
Verifikácia je pojem, ktorý označuje súbor činností, ktoré zabezpečujú, aby softvér implementoval konkrétnu funkciu.
Validácia:
Vzťahuje sa na súbor aktivít, ktoré zabezpečujú, aby bol softvér zostavený podľa potrieb klientov.
7) Čo znamená v procese vývoja softvéru ladenie?
Ladenie je proces, ktorého výsledkom je odstránenie chyby. Je to veľmi dôležitá súčasť úspešného testovania.
8) Ako sa môžete ubezpečiť, že je váš kód bezpečný a rýchly?
V softvéri je vývojová bezpečnosť vždy na prvom mieste. Takže ak je vykonávanie programu pomalé, pokúsim sa zistiť dôvod, prečo je časovo zložitý.
9) Vymenujte dva nástroje, ktoré sa používajú na sledovanie požiadaviek na softvér?
Existuje mnoho spôsobov, ako sledovať požiadavky.
Dve bežne používané sú:
- Vytvorte dokument so špecifikáciami požiadaviek, ktorý obsahuje zoznam všetkých požiadaviek.
- Vytvorte hárok programu Excel so zoznamom požiadaviek, typu, závislosti, priority atď.
10) Aký je hlavný rozdiel medzi pahýľmi, falošne?
Pahýľ je minimálna implementácia rozhrania, ktoré vo všeobecnosti vracia pevne zakódované údaje, zatiaľ čo falošné správy zvyčajne overujú výstupy oproti očakávaniam. Tieto očakávania sú stanovené v teste.
11) V akom jazyku píšete programovacie algoritmy?
Pokiaľ ide o výber programovacieho jazyka, má každý vývojár svoje názory. Mali by ste však uprednostniť jazyky na vysokej úrovni, pretože sú dynamické. Rovnako ako jazyky C a C ++.
12) Čo je to počítačový softvér?
Počítačový softvér je balík, ktorý obsahuje softvérový program, jeho dokumentáciu a užívateľskú príručku o používaní softvéru.
13) Podľa vás, ktorý model SDLC je najlepší?
Takéto poradie neexistuje, pretože modely SDLC sa prijímajú podľa potreby vývojového procesu. Môže sa líšiť softvér od softvéru.
14) Kto je manažér softvérových projektov? Aká je jeho rola?
Manažér softvérového projektu je osoba zodpovedná za riadenie projektu vývoja softvéru.
Projektový manažér robí plánovanie projektu, sleduje pokrok, komunikuje. Riadi tiež riziká a zdroje potrebné na dodanie projektu v časových, nákladových a kvalitatívnych obmedzeniach.
15) Čo sa rozumie pod rozsahom softvéru?
Rozsah softvéru predstavuje presne stanovenú hranicu. Zahŕňa všetky druhy činností, ktoré sa vyvíjajú a dodávajú softvérový produkt.
Rozsah softvéru definuje všetky funkcionality a artefakty, ktoré sa majú dodať ako súčasť softvéru. Rozsah tiež určuje, čo bude produkt robiť? Čo nie je súčasťou projektu? Čo je odhad projektu?
Tento proces je užitočný na odhad rôznych aspektov softvérového produktu. O tomto odhade je možné rozhodnúť buď konzultáciou s odborníkmi, alebo použitím vopred určených vzorcov.
16) Ako zistiť veľkosť softvérového produktu?
Veľkosť softvérového produktu sa dá vypočítať pomocou dvoch nasledujúcich spôsobov
- Počítanie riadkov doručeného kódu
- Počítanie dodaných funkčných bodov
17) Čo sú to funkčné body?
Funkčné body sú funkcie poskytované softvérovým produktom. Považuje sa za najdôležitejšie meranie veľkosti softvéru.
18) Aké sú techniky odhadu softvérových projektov?
Najbežnejšie používané techniky odhadu sú:
- Technika rozkladu
- Empirická technika
19) Čo je správa konfigurácie softvéru?
Správa konfigurácie softvéru je proces sledovania a kontroly zmien, ku ktorým v softvéri dôjde.
Kontrola zmien je funkcia, ktorá zabezpečuje, že všetky zmeny vykonané v softvérovom systéme sú konzistentné a vytvárajú sa pomocou organizačných pravidiel a predpisov.
20) Ako môžete merať realizáciu projektu?
Vykonanie projektu môžeme merať pomocou sledovania aktivity, správ o stave a kontrolných zoznamov míľnikov.
21) Povedzte mi o niektorých nástrojoch riadenia projektu.
Podľa potreby softvérového projektu sa používa veľa typov nástrojov na správu. Niektoré z nich sú Pertov graf, Ganttov diagram, histogram zdrojov, správy o stave atď.
22) Čo sú softvérové požiadavky?
Softvérové požiadavky sú funkčným opisom navrhovaného softvérového systému. Predpokladá sa, že ide o popis cieľového systému, jeho funkcií a vlastností.
23) Čo je to štúdia realizovateľnosti?
Je to opatrenie na zistenie, aký praktický a prínosný bude pre spoločnosť vývoj softvérového projektu. Softvérový analyzátor vykonáva štúdiu, aby poznal ekonomickú, technickú a prevádzkovú uskutočniteľnosť projektu.
-
Ekonomické: Zahŕňa náklady na školenie, náklady na ďalšie a nástroje a celkový odhad nákladov a prínosov projektu.
-
Technické: Hodnotí technické hľadisko. Je možné vyvinúť tento systém? Posúdenie vhodnosti strojov a OS, na ktorých sa bude softvér spúšťať, znalosti vývoja softvéru a nástrojov dostupných pre tento projekt.
-
Prevádzkové: Tu musí analytik posúdiť, či sa organizácia bude môcť plynulo prispôsobiť zmenám vykonaným podľa dopytu po projekte. Oplatí sa problém vyriešiť pri odhadovaných nákladoch?
Po preštudovaní tohto všetkého sa vytvorí záverečná správa o uskutočniteľnosti.
24) Čo sú funkčné a nefunkčné požiadavky?
Funkčné požiadavky sú funkčné vlastnosti, ktoré očakávajú používatelia od navrhovaného softvérového produktu.
Nefunkčné požiadavky súvisia so zabezpečením, výkonom, vzhľadom a dojmom používateľského rozhrania.
25) Čo je softvérová metrika?
Softvérová metrika ponúka opatrenia pre rôzne aspekty softvérového procesu, ktoré sa delia na:
- Metriky požiadaviek: Požiadavky na dĺžku, úplnosť
- Metrické parametre produktu: Počet riadkov kódovania, Objektovo orientované metriky, metriky návrhu a testovania.
26) Čo je to modularizácia?
Modularizácia je technika, ktorá sa používa na rozdelenie softvérového systému na rôzne diskrétne moduly. Očakáva sa, že úlohy sa budú vykonávať nezávisle.
27) Čo je to súdržnosť?
Súdržnosť je opatrenie, ktoré definuje vzájomnú závislosť medzi prvkami modulu.
28) Uvádza niektoré softvérové analytické a návrhové nástroje?
Niektoré z najdôležitejších softvérových analytických a návrhových nástrojov sú:
- Schémy toku údajov
- Štruktúrované grafy
- Štruktúrovaná angličtina
- Dátový slovník
- Hierarchické vstupné procesy Výstupné diagramy
- Schémy vzťahov medzi entitami a rozhodovacie tabuľky
29) Čo sa rozumie pod diagramom toku údajov na úrovni 0?
Najvyššia úroveň abstrakcie sa nazýva úroveň 0 DFD. Nazýva sa tiež kontextová úroveň DFD. Celý informačný systém vykresľuje ako jeden diagram.
30) Aký je hlavný rozdiel medzi štruktúrovanou angličtinou a Pseudokódom?
Štruktúrovaná angličtina je rodný anglický jazyk. Používa sa na zápis štruktúry programového modulu. Používa kľúčové slová programovacieho jazyka. Na druhej strane sa Pseudokód podobá programovému jazyku bez syntaxe konkrétneho jazyka.
31) Čo je to štruktúrovaný dizajn?
Štruktúrovaný dizajn je konceptualizácia problému. Nazýval sa tiež návrh riešenia a je založený na stratégii „rozdeľuj a panuj“.
32) Čo je to funkčné programovanie?
Je to programovacia metóda, ktorá využíva koncepty matematickej funkcie. Poskytuje výpočtové prostriedky ako matematické funkcie, ktoré tiež poskytujú výsledky bez ohľadu na stav programu.
33) Čo je zabezpečenie kvality vs. kontrola kvality?
Quality Assurance kontroluje, či je pri vývoji softvéru dodržaný správny proces, zatiaľ čo Quality Control sa zaoberá udržiavaním kvality softvérového produktu.
34) Čo sú to CASE nástroje?
CASE znamená softvérové inžinierstvo podporované počítačom. Jedná sa o súbor automatizovaných softvérových aplikačných programov, ktoré sa používajú na podporu, vylepšenie a posilnenie aktivít SDLC.
35) Ktorý model procesu odstraňuje chyby skôr, ako sa softvér dostane do problémov?
Metóda softvérového inžinierstva v čistej miestnosti odstraňuje chyby skôr, ako sa softvér dostane do problémov.
36) Vyriešte tento problém
V zásuvke v jednej tmavej miestnosti je dvadsať rôznych ponožiek dvoch typov. Aký je minimálny počet ponožiek, ktoré si musíte vziať, aby ste sa uistili, že máte zhodný pár? “
Ak si vezmete tri ponožky, môžu byť rovnakého typu, aj keď je šanca 50%. Kurzy nikdy nie sú rovnakou realitou. Jediným spôsobom, ako sa „ubezpečiť, že máte zhodný pár“, je získať aspoň 11 šokov.
37) Ako sa môžete ubezpečiť, že váš napísaný kód, ktorý zvláda rôzne druhy chybových situácií?
Dokážem napísať testy, ktoré definujú očakávané chybové situácie.
38) Vysvetlite rozdiely medzi vláknom a procesom?
Proces je inštanciou počítačového programu. V jednom programe je možné mať jedno alebo viac vlákien.
39) Povedzte mi, aký je rozdiel medzi EXE a DLL?
Exe je spustiteľný program, zatiaľ čo DLL je súbor, ktorý je možné programmi načítať a vykonávať dynamicky. Je to externé úložisko kódov pre programy. Pretože obidva sú odlišné programy, namiesto toho, aby ste mali tento kód vo svojom súbore, použite rovnakú DLL. Znižuje tiež potrebný úložný priestor.
40) Čo je silné a slabé písmo? Ktorý je preferovaný? Prečo?
Silné písanie kontroluje typy premenných v čase kompilácie. Na druhej strane slabé písanie kontroluje typy systému za behu. Medzi nimi je vždy preferované silné písanie, pretože tak minimalizuje chyby.
41) Popíšte rozdiel medzi programovaním orientovaným na rozhranie, objektom a aspektom.
- Programovanie rozhrania je založené na zmluve.
- Objektovo orientovaný je spôsob písania granulárnych objektov, ktoré majú jediný účel.
- Aspect Oriented Programming je oddeliť kód takým spôsobom, aby rôzne objekty niesli hlavné úlohy a vedľajšie úlohy vykonávali nezávislé objekty.
42) Prečo je použitie úlovku (výnimka) vždy zlý nápad?
Je to zlý nápad, pretože:
- Pretože nie je definovaná žiadna premenná, nie je možné čítať výnimku
- Je dobré použiť výnimku, ak poznáte typy výnimiek.
43) Aký typ údajov sa prenáša cez hlavičky HTTP?
Skript a metadáta odovzdávané prostredníctvom hlavičiek HTTP.
44) Ako uprednostňujete požiadavky?
Najskôr je potrebné navrhnúť systém vyhodnotením dátovej štruktúry. Potom by ste mali prejsť na štruktúru kódu potrebnú na jeho podporu.
45) Daj mi rozdiely medzi objektovo orientovaným a komponentovým dizajnom?
Objektovo orientovaný dizajn je možné do istej miery ľahko zapuzdriť do komponentového dizajnu.
46) Kedy používate polymorfizmus?
Polymorfizmus sa používa, keď je potrebné prepísať funkčnosť pri dedení triedy. Reč je o zdieľaných triedach a zdieľaných zmluvách.
47) Aký je rozdiel medzi zásobníkom a radom?
- Poradie je vždy prvý dovnútra, prvý von
- Stack je vždy Last In, First Out
48) Čo je nevyhnutné na testovanie kvality kódu?
Podľa mňa je rámec testovania jednotiek nevyhnutný pre testovanie kvality kódu.
49) Myslíte si, že údržba softvéru je drahá?
Podľa mňa nebude údržba softvéru nikdy drahá, ak používame správny vývojový proces.
50) Dajte mi rozdiely medzi štítkami a vetvami?
Značky sú určené na vytváranie verzií verzií, ktoré sú dočasným miestom zadržania takýchto vecí. Keď sa tieto zmeny zlúčia do kmeňa, vetvy sa odstránia.
51) Kde je k dispozícii chránená premenná na úrovni triedy?
Chránené premenné na úrovni triedy sú dostupné pre každú podtriedu odvodenú od základnej triedy.
52) Je možné vykonať viac blokov úlovku na jeden príkaz try?
Áno. Pre jeden príkaz try je možné vykonať viac blokov úlovku.
53) Kedy potrebujete triedu vyhlásiť za abstraktnú?
Triedu by sme mali vyhlásiť za abstraktnú v nasledujúcich situáciách:
- Keď je trieda dedená z abstraktnej triedy, ale nie všetky abstraktné metódy boli prepísané.
- V prípade, že minimálne jedna z metód v triede je vyhlásená ako abstraktná.
54) Vypracujte algoritmus, ktorý vygeneruje vašu aktuálnu polohu, a zoznam umiestnení bankomatov v tejto oblasti. Získajte najbližšie bankomaty K vo vašej oblasti.
Vytvorte metódu getDistance (a, b), ktorá počíta vzdialenosť medzi a a b.
Kód:
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;}}