Завантажте PDF
1) Які важливі категорії програмного забезпечення?
- Системне програмне забезпечення
- Програмне забезпечення
- Вбудоване програмне забезпечення
- Веб-додатки
- Програмне забезпечення для штучного інтелекту
- Наукове програмне забезпечення.
2) У чому полягає головна відмінність комп’ютерної програми від комп’ютерного програмного забезпечення?
Комп’ютерна програма - це частина програмного коду. Він виконує чітко визначене завдання. З іншого боку, програмне забезпечення включає програмний код, документацію та посібник користувача.
3) Що таке реінжиніринг програмного забезпечення?
Це процес розробки програмного забезпечення, який робиться для поліпшення ремонтопридатності програмної системи.
4) Коротко опишіть процес розробки програмного забезпечення:
Розробка програмного забезпечення - це життєвий цикл, що складається з наступних етапів:
- Аналіз вимог
- Специфікація
- Архітектура програмного забезпечення
- Впровадження
- Тестування
- Документація
- Навчання та підтримка
- Технічне обслуговування
5) Які моделі SDLC доступні?
Модель Waterfall, 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) Як можна виміряти виконання проекту?
Ми можемо виміряти виконання проекту за допомогою моніторингу діяльності, звітів про стан та контрольних списків.
21) Розкажіть про деякі інструменти управління проектами.
Існує багато типів інструментів управління, які використовуються відповідно до потреби в програмному проекті. Деякі з них - це діаграма Перта, діаграма Ганта, гістограма ресурсів, звіти про стан тощо.
22) Які вимоги до програмного забезпечення?
Вимоги до програмного забезпечення - це функціональний опис пропонованої програмної системи. Передбачається, що це опис цільової системи, її функціональних можливостей та особливостей.
23) Що таке техніко-економічне обгрунтування?
Це міра, щоб з’ясувати, наскільки практичною та корисною буде доведення організації розробки програмного забезпечення. Програмний аналізатор проводить дослідження, щоб дізнатись про економічну, технічну та експлуатаційну доцільність проекту.
-
Економічний: Він включає вартість навчання, вартість додаткових інструментів та загальну оцінку витрат та вигод від проекту.
-
Технічний: він оцінює технічний аспект. Чи можливо розвинути цю систему? Оцінка придатності машин (машин) та ОС, на яких буде виконуватися програмне забезпечення, знання про розробку програмного забезпечення та інструменти, доступні для цього проекту.
-
Оперативний: Тут аналітик повинен оцінити, що організація зможе плавно адаптуватися до змін, здійснених відповідно до попиту на проект. Чи варто вирішувати проблему за орієнтовною вартістю?
Після вивчення всього цього складається остаточний техніко-економічний обґрунтування.
24) Що таке функціональні та нефункціональні вимоги?
Функціональні вимоги - це функціональні особливості, які очікуються користувачами від запропонованого програмного продукту.
Нефункціональні вимоги пов’язані з безпекою, продуктивністю, зовнішнім виглядом та відчуттям інтерфейсу користувача.
25) Що таке метрика програмного забезпечення?
Software Metrics пропонує заходи для різних аспектів програмного процесу, які поділяються на:
- Показники вимог: вимоги до довжини, повнота
- Метрики товару: Кількість рядків кодування, Об'єктно-орієнтовані метрики, метрики проектування та тестування.
26) Що таке модуляризація?
Модуляризація - це техніка, яка використовується для розподілу програмної системи на різні дискретні модулі. Тобто передбачається виконувати завдання самостійно.
27) Що таке згуртованість?
Згуртованість - це міра, яка визначає внутрішню надійність між елементами модуля.
28) Згадує деякі засоби аналізу та проектування програмного забезпечення?
Деякі з найважливіших засобів аналізу та проектування програмного забезпечення:
- Діаграми потоку даних
- Структуровані діаграми
- Структурована англійська
- Словник даних
- Ієрархічні вхідні процеси Вихідні діаграми
- Діаграми взаємозв’язків суб’єктів та таблиці рішень
29) Що означає діаграма потоку даних рівня 0?
Найвищий рівень абстракції називається рівнем 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) У чому різниця між стеком та чергою?
- Черга - це завжди перший, перший вихід
- Стек - це завжди останній вихід, перший вихід
48) Що важливо для перевірки якості коду?
На мою думку, модульний модуль тестування є важливим для перевірки якості коду.
49) Чи вважаєте Ви, що обслуговування програмного забезпечення є дорогим?
На мою думку, обслуговування програмного забезпечення ніколи не буде дорогим, якщо ми використовуємо належний процес розробки.
50) Дайте мені відмінності між тегами та гілками?
Теги призначені для версій версій, які тимчасово містять місця для таких дій. Однак гілки видаляються, коли ці зміни об’єднуються у стовбур.
51) Де доступна захищена змінна рівня класу?
Захищені змінні рівня класу доступні для будь-якого підкласу, похідного від базового класу.
52) Чи можна виконати кілька блоків catch для одного оператора try?
Так. Для однієї операції спроби можна виконати кілька блоків catch.
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;}}