Изтеглете PDF
1) Кои са важните категории софтуер?
- Системен софтуер
- Приложен софтуер
- Вграден софтуер
- Уеб приложения
- Софтуер за изкуствен интелект
- Научен софтуер.
2) Каква е основната разлика между компютърна програма и компютърен софтуер?
Компютърната програма е част от програмния код. Той изпълнява добре дефинирана задача. От друга страна, софтуерът включва програмен код, документация и ръководство за потребителя.
3) Какво е реинженеринг на софтуер?
Това е процес на разработване на софтуер, който се прави, за да се подобри поддържането на софтуерна система.
4) Опишете накратко процеса на разработване на софтуер:
Разработката на софтуер е жизнен цикъл, който се състои от следните етапи:
- Анализ на изискванията
- Спецификация
- Софтуерна архитектура
- Изпълнение
- Тестване
- Документация
- Обучение и подкрепа
- Поддръжка
5) Какви са наличните SDLC модели?
Waterfall Model, Spiral Model, Big-bag model, Iterative Model и V-Model са някои от известните SDLC модели.
6) Какво е проверка и валидиране?
Проверка:
Проверката е термин, който се отнася до съвкупността от дейности, които гарантират, че софтуерът изпълнява определена функция.
Проверка:
Той се отнася до съвкупността от дейности, които гарантират, че софтуерът, който е изграден според нуждите на клиентите.
7) В процеса на разработване на софтуер какво е значението за отстраняване на грешки?
Отстраняването на грешки е процесът, който води до отстраняване на грешка. Това е много важна част от успешното тестване.
8) Как можете да сте сигурни, че вашият код е безопасен и бърз?
В софтуера сигурността на разработката винаги е на първо място. Така че, ако изпълнението на програмата е бавно, тогава ще се опитам да идентифицирам причината и да намеря начини за нейната сложност във времето.
9) Назовете два инструмента, които се използват за проследяване на софтуерните изисквания?
Има много начини да следите изискванията.
Две често използвани са:
- Направете документ със спецификации на изискванията, за да изброите всички изисквания.
- Създайте Excel лист в списъка надолу изискване, тип, зависимост, приоритет и т.н.
10) Каква е основната разлика между мъничета, макет?
Стъбът е минимално изпълнение на интерфейс, който обикновено връща твърдо кодирани данни, докато макетът обикновено проверява резултатите спрямо очакванията. Тези очаквания са определени в теста.
11) На кой език обичате да пишете алгоритми за програмиране?
Всеки разработчик има своите виждания по отношение на избора на език за програмиране. Въпреки това, човек трябва да предпочита езиците на високо ниво, защото те са динамични. Като езиците C и C ++.
12) Какво представлява компютърният софтуер?
Компютърният софтуер е пакет, който включва софтуерна програма, нейната документация и ръководство за употреба как да използвате софтуера.
13) Според вас кой SDLC модел е най-добрият?
Няма такова класиране, тъй като се приемат SDLC модели според необходимостта от процеса на разработване. Може да се различава от софтуер към софтуер.
14) Кой е мениджър на софтуерни проекти? Каква е неговата роля?
Мениджърът на софтуерен проект е човек, отговорен за управлението на проекта за разработване на софтуер.
Ръководителят на проекта прави планирането на проекта, наблюдава напредъка, комуникацията. Той или тя също така управлява рисковете и ресурсите, за да изпълни проекта в рамките на ограничения във времето, разходите и качеството.
15) Какво означава под обхват на софтуера?
Обхватът на софтуера е добре дефинирана граница. Той включва всички видове дейности, които се правят за разработване и доставяне на софтуерния продукт.
Обхватът на софтуера определя всички функционалности и артефакти, които трябва да бъдат доставени като част от софтуера. Обхватът също така определя какво ще направи продуктът? Какво не е част от проекта? Какво е оценка на проекта?
Този процес е полезен за оценка на различни аспекти на софтуерния продукт. Тази оценка може да бъде взета или чрез консултации с експерти, или чрез използване на предварително определени формули.
16) Как да намеря размера на софтуерен продукт?
Размерът на софтуерния продукт може да бъде изчислен чрез следните два метода
- Преброяване на редовете на доставения код
- Преброяване на доставени функционални точки
17) Какво представляват функционалните точки?
Функционалните точки са функциите, предоставени от софтуерния продукт. Той се счита за най-важното измерване за размера на софтуера.
18) Какви са наличните техники за оценка на софтуерни проекти?
Най-широко използваните техники за оценка са:
- Техника на разлагане
- Емпирична техника
19) Какво представлява управлението на конфигурацията на софтуера?
Управлението на софтуерната конфигурация е процес на проследяване и контрол на промените, които се случват в софтуера.
Контролът на промените е функция, която гарантира, че всички промени, направени в софтуерната система, са последователни и създадени с помощта на организационни правила и разпоредби.
20) Как можете да измервате изпълнението на проекта?
Можем да измерим изпълнението на проекта, като използваме Мониторинг на активност, Отчети за състоянието и Контролни списъци на Milestone.
21) Разкажете ми за някои инструменти за управление на проекти.
Има много видове инструменти за управление, използвани според необходимостта от софтуерен проект. Някои от тях са диаграма Pert, диаграма на Гант, хистограма на ресурсите, отчети за състоянието и др.
22) Какви са софтуерните изисквания?
Софтуерните изисквания са функционално описание на предложена софтуерна система. Предполага се, че това е описанието на целевата система, нейните функционалности и характеристики.
23) Какво е проучване на осъществимостта?
Това е мярка, за да разберете колко практично и полезно ще бъде доказването на разработването на софтуерен проект за организацията. Софтуерният анализатор провежда проучване, за да знае икономическата, техническата и оперативната осъществимост на проекта.
-
Икономически: Включва разходите за обучение, разходи за допълнителни и инструменти и цялостна оценка на разходите и ползите от проекта.
-
Технически: Оценява техническия аспект. Възможно ли е да се развие тази система? Оценка на пригодността на машината (ите) и операционната система, на която ще се изпълнява софтуер, познаване на софтуерната разработка и наличните инструменти за този проект.
-
Оперативно: Тук анализаторът трябва да прецени, че организацията ще може да се приспособи гладко към промените, направени според търсенето на проекта. Заслужава ли си да се реши проблемът с прогнозната цена?
След изучаване на всичко това се създава окончателният доклад за осъществимост.
24) Какви са функционалните и нефункционалните изисквания?
Функционалните изисквания са функционални характеристики, които се очакват от потребителите от предложения софтуерен продукт.
Нефункционалните изисквания са свързани със сигурността, производителността, външния вид и усещането на потребителския интерфейс.
25) Какво е софтуерна метрика?
Софтуерните показатели предлагат мерки за различни аспекти на софтуерния процес, които се разделят на:
- Показатели на изискванията: Изисквания за дължина, пълнота
- Продуктови показатели: Брой линии за кодиране, Обектно-ориентирани показатели, метрики за проектиране и тестване.
26) Какво е модуларизация?
Модуларизацията е техника, която се използва за разделяне на софтуерна система на различни дискретни модули. Това се очаква да изпълнява задачите самостоятелно.
27) Какво е сближаване?
Кохезията е мярка, която определя вътрешната зависимост между елементите на модула.
28) Споменава някои инструменти за анализ и проектиране на софтуер?
Някои от най-важните инструменти за анализ и проектиране на софтуер са:
- Диаграми на потока от данни
- Структурирани диаграми
- Структуриран английски
- Речник на данни
- Йерархични входни процеси Изходни диаграми
- Диаграми на взаимоотношения между субекти и таблици за решения
29) Какво означава средно ниво на диаграма на потока от данни?
Най-високото ниво на абстракция се нарича Ниво 0 на DFD. Нарича се още DFD на контекстно ниво. Тя изобразява цялата информационна система като една диаграма.
30) Каква е основната разлика между структурирания английски и псевдо кода?
Структурираният английски е роден английски език. Използва се за написване на структурата на програмен модул. Той използва ключови думи за език за програмиране. От друга страна, Pseudo Code е по-скоро като език за програмиране без синтаксис на който и да е специфичен език.
31) Какво е структуриран дизайн?
Структурираният дизайн е концептуализация на проблема. Нарича се още дизайн на решения и който се основава на стратегията „разделяй и владей“.
32) Какво е функционално програмиране?
Това е метод за програмиране, който използва понятията за математическа функция. Той осигурява средства за изчисление като математически функции, които също дават резултати независимо от състоянието на програмата.
33) Какво е осигуряване на качеството срещу контрол на качеството?
Осигуряването на качеството проверява дали се следва правилен процес при разработването на софтуера, докато Контролът на качеството се занимава с поддържане на качеството на софтуерния продукт.
34) Какво представляват CASE инструментите?
CASE означава компютърно подпомагано софтуерно инженерство. Те са набор от автоматизирани софтуерни приложни програми, които се използват за подкрепа, подобряване и укрепване на SDLC дейностите.
35) Кой модел на процеса премахва дефекти, преди софтуерът да има проблеми?
Методът на софтуерното инженерство за чиста стая премахва дефектите, преди софтуерът да попадне в беда.
36) Решете този проблем
В чекмеджето в една тъмна стая има двадесет различни чорапа от два вида. Какъв е минималният брой чорапи, които трябва да вземете, за да сте сигурни, че имате подходящ чифт? "
Ако вземете три чорапа, те може да са от един и същи вид, дори ако шансовете са 50%. Коефициентите никога не са еднаква реалност. Следователно, единственият начин да „гарантирате, че имате съвпадаща двойка“ е да вземете поне 11 броя удари.
37) Как можете да сте сигурни, че вашият писмен код, който може да се справи с различни видове грешки?
Мога да напиша тестове, които определят очакваните ситуации на грешка.
38) Обяснете разликите между нишка и процес?
Процесът е екземпляр на компютърната програма. В една програма е възможно да има една или повече нишки.
39) Кажете ми разликата между EXE и DLL?
Exe е изпълнима програма, докато DLL е файл, който може да се зарежда и изпълнява от програми динамично. Това е външно хранилище на кодове за програми. Тъй като и двете са различни програми, използвайте повторно една и съща DLL, вместо да имате този код във файла си. Освен това намалява необходимото място за съхранение.
40) Какво е силен и слаб тип? Кое е предпочитано? Защо?
Силното въвеждане проверява видовете променливи по време на компилиране. От друга страна, слабото въвеждане проверява типовете на системата по време на изпълнение. Сред тях винаги се предпочита силно писане, защото минимизира грешките.
41) Опишете разликата между интерфейсно ориентирано, обектно-ориентирано и аспектно-ориентирано програмиране.
- Програмирането на интерфейса се основава на договор.
- Обектно-ориентираният е начин за писане на гранулирани обекти, които имат една цел.
- Аспектно ориентираното програмиране е да сегрегира кода по такъв начин, че различните обекти да носят основните задачи, а помощните задачи да се извършват от независими обекти.
42) Защо използването на catch (изключение) винаги е лоша идея?
Това е лоша идея, защото:
- Тъй като няма дефинирана променлива, не е възможно да се прочете изключението
- Добре е да използвате изключение, когато имате известни видове изключения.
43) Какъв тип данни се предават чрез HTTP заглавки?
Скрипт и метаданни, предадени чрез HTTP заглавки.
44) Как определяте приоритетите на изискванията?
Първо, трябва да проектирате система, като оцените структурата на данните. След това трябва да преминете към структурата на кода, необходима за поддържането му.
45) Дайте ми разлики между обектно-ориентиран и базиран на компоненти дизайн?
Обектно-ориентираният дизайн може лесно да бъде капсулиран до известна степен в базирания на компоненти дизайн.
46) Кога използвате полиморфизъм?
Полиморфизмът се използва, когато има нужда от замяна на функционалността при наследяване на клас. Става въпрос за споделени класове и споделени договори.
47) Каква е разликата между стека и опашката?
- Опашката винаги е First In, First Out
- Stack винаги е Last In, First Out
48) Какво е от съществено значение за тестване на качеството на кода?
Според мен рамката за модулно тестване е от съществено значение за тестване на качеството на кода.
49) Смятате ли, че поддръжката на софтуера е скъпа?
Според мен поддръжката на софтуера никога няма да бъде скъпа, ако използваме правилния процес на разработка.
50) Дайте ми разлики между тагове и клонове?
Етикетите са за издания на версии, които са временни места за правене на такива неща. Клоновете обаче се изтриват, когато тези промени се обединят в багажника.
51) Къде е на разположение защитена променлива на ниво клас?
Защитените променливи на ниво клас са достъпни за всеки подклас, получен от базовия клас.
52) Възможно ли е да се изпълнят множество блокиращи блокове за едно извлечение?
Да. Могат да бъдат изпълнени множество блокове за улов за едно извлечение.
53) Кога трябва да декларирате клас като абстрактен?
Трябва да декларираме клас като абстрактен в следните ситуации:
- Когато класът се наследява от абстрактния клас, но не всички абстрактни методи са заменени.
- В случая, когато минимум един от методите в класа е деклариран като абстракт.
54) Разработете алгоритъм, който извежда вашето текущо местоположение и списък с местоположенията на банкомати в тази област. Ще получите най-близките K банкомати до вашето местоположение.
Създайте метод getDistance (a, b), който изчислява разстоянието между a и b.
Код:
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;}}