You are on page 1of 5

Тести з МПЗ

Object-to-object mapping
1. Що таке залежність (dependency)?
a) це міра того наскільки пов’язаним є код в одному модулі програми.
b) відносини в коді, де зміна в одній частині коду вимагає зміни в іншій частині.
c) міра в якій модуль (компонент) програми залежить від кожного іншого модуля
(використовує якусь інформацію про нього).
d) властивість програмного забезпечення працювати більш ніж на одній програмній
платформі.
2. Які є види залежностей?
a) Abstract-to-abstract
b) TwoWay
c) OneWay
d) Concrete-to-abstract
e) Concrete-to-concrete
f) Simple-to-concrete
g) Simple-to-Abstract
3. Які є правила декомпозиції?
a) Розділяти абстракцію та реалізацію.
b) Створювати об'єкти існуючих класів як елементи інших класів.
c) Використати інтерфейси (абстракцію) для посилань на зовнішні компоненти,
не використовувати конкретних реалізацій.
d) Не використовувати абстракції.
e) Спільні для групи компонент операції виносити у абстракцію.
4. Який принцип притаманний Dependency Injection?
a) Заборона використання програмною компонентою зовнішнього зв’язку у
задекларований спосіб.
b) Інверсія контролю, зміна порядку зв’язку є шляхом отримання необхідної
залежності.
c) При впровадженні залежності об’єкт не містить посилання на сервіс.
d) Надання програмній компоненті зовнішнього зв’язку у задекларований спосіб.
5. До якого антипатерну може призвести неправильне використання Dependency
Injection?
a) Object Orgy
b) «Позашлюбна» залежність
c) «Човновий якір»
d) Object cesspool
6. Що таке “Checks” relation?
a) попередня перевірка стану компоненти.
b) процес розширення компонент.
с) перевірка шаблонного параметру.
d) створення нової компоненти.
7. Що таке decoupling “Checks?
a) попередня перевірка стану компоненти.
b) процес розширення компонент.
с) перевірка шаблонного параметру.
d) створення нової компоненти.

Solid
1. Суть принципу єдиної відповідальності:
a) Існує лише одна причина, яка призводить до появи класу.
b) Програмні сутності повинні бути відкритими для розширення, але закритими для
модифікації.
c) Об’єкти в програмі повинні бути замінені на екземпляри їх підтипів без зміни
правильності виконання програми.
d) Багато інтерфейсів, спеціально призначених для клієнтів, це краще, ніж один
інтерфейс загального призначення.
e) Модулі верхнього рівня не повинні залежати від модулів нижнього рівня, і ті і інші
повинні залежати від абстракцій.
2. Суть принципу відкритості/закритості:
a) Існує лише одна причина, яка призводить до появи класу.
b) Програмні сутності повинні бути відкритими для розширення, але закритими
для модифікації.
c) Об’єкти в програмі повинні бути замінені на екземпляри їх підтипів без зміни
правильності виконання програми.
d) Багато інтерфейсів, спеціально призначених для клієнтів, це краще, ніж один
інтерфейс загального призначення.
e) Модулі верхнього рівня не повинні залежати від модулів нижнього рівня, і ті і інші
повинні залежати від абстракцій.
3. Суть принципу підстановки Барбари Лісков:
a) Існує лише одна причина, яка призводить до появи класу.
b) Програмні сутності повинні бути відкритими для розширення, але закритими для
модифікації.
c) Об’єкти в програмі повинні бути замінені на екземпляри їх підтипів без зміни
правильності виконання програми.
d) Багато інтерфейсів, спеціально призначених для клієнтів, це краще, ніж один
інтерфейс загального призначення.
e) Модулі верхнього рівня не повинні залежати від модулів нижнього рівня, і ті і інші
повинні залежати від абстракцій.
4. Суть принципу розділення інтерфейсу:
a) Існує лише одна причина, яка призводить до появи класу.
b) Програмні сутності повинні бути відкритими для розширення, але закритими для
модифікації.
c) Об’єкти в програмі повинні бути замінені на екземпляри їх підтипів без зміни
правильності виконання програми.
d) Багато інтерфейсів, спеціально призначених для клієнтів, це краще, ніж один
інтерфейс загального призначення.
e) Модулі верхнього рівня не повинні залежати від модулів нижнього рівня, і ті і інші
повинні залежати від абстракцій.
5. Суть принципу інверсії залежностей:
a) Існує лише одна причина, яка призводить до появи класу.
b) Програмні сутності повинні бути відкритими для розширення, але закритими для
модифікації.
c) Об’єкти в програмі повинні бути замінені на екземпляри їх підтипів без зміни
правильності виконання програми.
d) Багато інтерфейсів, спеціально призначених для клієнтів, це краще, ніж один
інтерфейс загального призначення.
e) Модулі верхнього рівня не повинні залежати від модулів нижнього рівня, і ті і
інші повинні залежати від абстракцій.
6. Переваги принципу єдиної відповідальності:
a) протидіє дублюванню коду, адже якщо функціональність розташована в
неправильному місці, то доведеться копіювати її в потрібне;
b) зменшує можливість зміни вже відтестованого коду;
c) забезпечує відповідність назв класів та їх функціональності, що полегшує
життя тим, хто обслуговуватиме цей код в майбутньому.
d) зростання кількості класів, що приводить до зростання складності системи.
7. Недолік принципу єдиної відповідальності:
a) протидіє дублюванню коду, адже якщо функціональність розташована в
неправильному місці, то доведеться копіювати її в потрібне;
b) зменшує можливість зміни вже відтестованого коду;
c) забезпечує відповідність назв класів та їх функціональності, що полегшує життя
тим, хто обслуговуватиме цей код в майбутньому.
d) зростання кількості класів, що приводить до зростання складності системи.
8. Принцип інверсії залежностей …
a) посилює зв’язність класів.
b) послаблює зв’язність класів.
c) знищує зв’язність між класами.
d) не впливає на зв’язність між класами.

Metrics
1. Що таке метрика?
a) опис предметної області
b) вимоги до ПЗ, записані у певній специфікації
c) міра, яка дозволяє одержати числове значення деякої властивості ПЗ або його
специфікацій.
d) міра в якій модуль (компонент) програми залежить від кожного іншого модуля
(використовує якусь інформацію про нього).
2. Як називається універсальна метрика?
a) Кількісна метрика.
b) Об'єктно-орієнтовані метрика.
с) Метрика надійності.
d) Універсальної метрики не існує.
3. SLOC – це …
a) «Логічні» рядки коду.
b) «Фізичні» рядки коду.
с) «Динамічні» рядки коду.
d) Закоментовані рядки коду.
4. LOC – це …
a) «Логічні» рядки коду.
b) «Фізичні» рядки коду.
с) «Динамічні» рядки коду.
d) Закоментовані рядки коду.
5. Що таке цикломатична складність?
a) складність алгоритів наведених в коді.
b) кількість циклів у коді.
c) кількість лінійно незалежних шляхів у коді.
d) кількість рядків коду.

Design patterns
1. Вкажіть негативні сторони застосування патернів проектування:
a) Можуть використовуватися там, де їх застосування не виправдано і не
потрібно.
b) Можуть ускладнювати розуміння бізнес-логіки додатка.
c) Завжди ускладнюють програмну архітектуру програми.
d) Не пропонують конкретних алгоритмів розв'язання задач в певній предметній
області.
2. Яке призначення у паттерну Міст(bridge)?
a) Передавати запити від об'єкта-відправника до об'єкта-одержувача.
b) Перетворення інтерфейсу одного класу в інший.
c) Відокремити абстракцію від її реалізації для їх незалежної зміни.
d) Контролювати доступ до іншого об'єкта.
3. Який шаблон створює об'єкти шляхом їх копіювання?
a) Builder
b) Factory
c) Prototype
d) Singleton
4. У чому головна відмінність патернів Decorator і Proxy?
a) Decorator додає об'єкту новий функціонал (на відміну від Proxy)
b) Ці патерни можна порівнювати
c) Decorator надає інший інтерфейс до об'єкта, Proxy в точності повторює інтерейса
об'єкта
d) Decorator створює обгортку навколо одного об'єкта, Proxy - навколо безлічі
5. Які з перерахованих тверджень вірні по відношенню до патерну проектування
Адаптер (Adapter):
a) Патерн перетворює інтерфейс одного класу в інтерфейс іншого, який очікують
клієнти.
b) Патерн визначає представника іншого об'єкта, не змінюючи його інтерфейс.
c) Структура патерну Адаптер (Adapter) аналогічна структурі патерну Міст
(Bridge).
d) Адаптер (Adapter) - це частковий випадок реалізації замішувач (Proxy).
6. Яка різниця між паттернами Facade і Adapter?
a) Патерн Adapter прибирає залежність між клієнтської реалізацією і інтерфейсом
системи, а Facade змушує користувача реалізовувати певний інтерфейс.
 b) Adapter обгортає один клас, тоді як Facade - кілька.
c) Adapter змінює інтерфейс класу так, щоб він задовольняв вимогам
користувача, а Facade надає уніфікований інтерфейс до деякого безлічі класів.
 d) Обидва патерни це різновиди одного і того ж загального випадку.
e) Жодна з перерахованих відповідей не є вірною.
7. Для якого з перерахованих патернів найкраще підходить метафора "матрьошки"?
a) Proxy
b) Prototype
c) Abstract Factory
d) Singleton
e) Decorator
8. Який шаблон підміняє собою складний об'єкт і контролює доступ до нього?
a) Decorator
b) Adapter
c) Proxy
d) Bridge
9. Патерн Strategy має наступні переваги:
a) Надає поділ між моделлю і представленням.
b) Дозволяє перемикатися між алгоритмами під час виконання програми.
c) Відокремлює алгоритм від класу, в якому він використовується.
d) Гарантує єдину стратегію під час виконання програми.
10. Шаблон Builder ...
a) дозволяє об'єкту клієнта створювати складний об'єкт, задаючи для нього
тільки тип і вміст.
b) надає спосіб створення об'єктів з відповідного набору конкретних класів.
с) дозволяє створювати спеціальні об'єкти, нічого точно не знаючи про їx класи або
деталях створення.
d) не є нічим з перерахованого.

You might also like