- •3.Об’єктно-орієнтований підхід до розробки програмного забезпечення. Дайте визначення поняття класу, об’єкту, поля, методу. З чого складається життєвий цикл об’єкту?
- •4.Опишіть внутрішню структуру об’єкта. Що таке інформація про тип під час виконання rtti і як вона використовується?
- •6.В чому полягає принцип спадковості? Що таке одинична та множинна спадковості? Як реалізується принцип одиничної та множинної спадковості в об’єктно-орієнтованих мовах програмування?
- •12. Поняття виключної ситуації, наведіть приклади виключних ситуацій. Як реалізуються виключні ситуації та їх обробка в об’єктно-орієнтованих мовах програмування?
- •13. Основні етапи і задачі об’єктно-орієнтованого аналізу предметної області. Які артефакти розробляються на етапі оОаналізу?
- •14. Визначення прецеденту. Що таке сценарій прецеденту та правила його опису?
- •16. Основні етапи і задачі об’єктно-орієнтованого проектування. Які артефакти розробляються на етапі оОпроектування?
- •18.Як під час проектування здійснюється розподіл обов’язків між класами? що таке шаблони проектування? Наведіть приклади шаблонів з прикладами їх застосування.
- •19. Охарактеризуйте мову uml та її призначення. Які діаграми для подання моделі складної системи надає uml, дайте коротку характеристику діаграм. Для чого на діаграмах uml застосовується мова ocl?
- •20. Призначення та правила побудови діаграми прецедентів uml: типи зв’язків між прецедентами(з прикладами), зображення на діаграмі прецедентів ролей (акторів).
- •24. Різновид діаграм реалізації. Що спільного і в чому різниця в uml діаграмах компонентів та розгортання?
- •26. Призначення компонувальника та завантажувача. В чому різниця між статичним та динамічним компонуванням бібліотек? Дайте порівняльну характеристику програмних модулів та динамічних бібліотек.
- •30. Як організувати багато потокове застосування? Які проблеми можуть виникнути під час взаємодії потоків і які методи їх уникнення?
24. Різновид діаграм реалізації. Що спільного і в чому різниця в uml діаграмах компонентів та розгортання?
Н а діаграмах компонентів показана иножина компонентів і відношення між ними. З їх допомогою ілюструють статичний вигляд системи з точки зору реалізації. Діаграми компонентів співвідносяться з діаграмами класів, оскільки зазвичай компонент відображується на один або декілька класів, інтерфейсів або кооперацій.
Діаграма компонентів (Component diagram) показує набір компонентів і відношення між ними. Графічно діаграма компонентів представляється у вигляді графа з ребрами і вершинами. Така діаграма показує організацію наборів компонентів і залежності між ними. Діаграми компонентів застосовуються для моделювання статичного вигляду системи з точки зору реалізації. Сюди відноситься моделювання фізичної суті, розгорнутих у вузлі, наприклад виконуваних програм, бібліотек, таблиць, файлів і документів. По суті, діаграми компонентів - це не що інше, як діаграми класів, сфокусовані на системних компонентах. На діаграмах розгортання представлені вузли і відносини між ними. За допомогою таких зображень ілюструють статичний вигляд системи з точки зору розгортання. Вони співвідносяться з діаграмами компонентів, оскільки вузол зазвичай містить один або декілька компонентів. На діаграмі розгортання, або використання (Deployment diagram), показана конфігурація оброблювальних вузлів, на яких виконується система, і компонентів, розміщених в цих вузлах. Діаграма розгортання представлена у вигляді графа з ребрами і вершинами. Така діаграма показує конфігурацію вузлів, де виробляється обробка інформації, і те, які компоненти розміщені на кожному вузлі. Діаграми розгортання використовуються для моделювання статичного вигляду системи з точки зору розгортання. В основному під цим розуміється моделювання топології апаратних засобів, на яких виконується система. По суті, діаграми розгортання - це просто діаграми класів, зосереджені на системних вузлах.
На диаграмме развертывания, или применения (Deployment diagram), показана конфигурация обрабатывающих узлов, на которых выполняется система, и компонентов, размещенных в этих узлах. Диаграмма развертывания представлена в виде графа с ребрами и вершинами.
Рис. Диаграмма развертывания
Такая диаграмма показывает конфигурацию узлов, где производится обработка информации, и то, какие компоненты размещены на каждом узле.
Диаграммы развертывания используются для моделирования статического вида системы с точки зрения развертывания. В основном под этим понимается моделирование топологии аппаратных средств, на которых выполняется система. По существу, диаграммы развёртывания - это просто диаграммы классов, сосредоточенные на системных узлах.
25. Що таке системи програмування, які складові системи програмування, дайте їх визначення та стислу характеристику? Що спільне і в чому полягає різниця між транслятором, компілятором та інтерпретатором. Коротко опишіть процес створення виконуваного файлу.
Система програмування — це система для розробки нових програм на конкретній мові програмування Сучасні системи програмування зазвичай надають користувачам потужні і зручні засоби розробки програм. У них входять:
• компілятор або інтерпретатор;
• інтегроване середовище розробки;
• засоби створення і редагування текстів програм;
• обширні бібліотеки стандартних програм і функцій;
• налагоджувальні програми, тобто програми, що допомагають знаходити і усувати помилки в програмі;
• "дружнє" до користувача діалогове середовище;
• багатовіконний режим роботи;
• потужні графічні бібліотеки; утиліти для роботи з бібліотеками
• вбудований асемблер;
• вбудована довідкова служба;
• інші специфічні особливості.
Транслятор (англ. translator — перекладач) — це програма-перекладач. Вона перетворить програму, написану на одній з мов високого рівня, в програму, що складається з машинних команд. Транслятори реалізуються у вигляді компіляторів або інтерпретаторів. З точки зору виконання роботи компілятор і інтерпретатор істотно розрізняються.
Компілятор (англ. compiler — укладач, збирач) читає всю програму цілком, робить її переведення і створює закінчений варіант програми на машинній мові, яка потім і виконується.
Інтерпретатор (англ. interpreter — тлумачить, усний перекладач) переводить і виконує програму рядок за рядком. Після того, як програма відкомпілювалася, ні сама початкова програма, ні компілятор не потрібніші. В той же час програма, що обробляється інтерпретатором, повинна заново перекладатися машинною мовою при кожному черговому запуску програми. Програми, що відкомпілювалися, працюють швидше, але що інтерпретуються простіше виправляти і змінювати. Кожна конкретна мова орієнтована або на компіляцію, або на інтерпретацію — залежно від того, для яких цілей він створювався. Наприклад, Паскаль зазвичай використовується для вирішення досить складних завдань, в яких важлива швидкість роботи програм. Тому дана мова зазвичай реалізується за допомогою компілятора. З іншого боку, Бейсик створювався як мова для початкуючих програмістів, для яких відрядкове виконання програми має безперечні переваги. Інколи для однієї мови є і компілятор, і інтерпретатор. В цьому випадку для розробки і тестування програми можна скористатися інтерпретатором, а потім відкомпілювати відлагоджену програму, щоб підвищити швидкість її виконання.
Процес створення виконуваного файлу:
• трансляція вихідної коди на машинну мову в об'єктний модуль;
• компоновка об'єктного модуля в завантажувальний модуль за допомогою компонувальника.