- •3.Об’єктно-орієнтований підхід до розробки програмного забезпечення. Дайте визначення поняття класу, об’єкту, поля, методу. З чого складається життєвий цикл об’єкту?
- •4.Опишіть внутрішню структуру об’єкта. Що таке інформація про тип під час виконання rtti і як вона використовується?
- •6.В чому полягає принцип спадковості? Що таке одинична та множинна спадковості? Як реалізується принцип одиничної та множинної спадковості в об’єктно-орієнтованих мовах програмування?
- •12. Поняття виключної ситуації, наведіть приклади виключних ситуацій. Як реалізуються виключні ситуації та їх обробка в об’єктно-орієнтованих мовах програмування?
- •13. Основні етапи і задачі об’єктно-орієнтованого аналізу предметної області. Які артефакти розробляються на етапі оОаналізу?
- •14. Визначення прецеденту. Що таке сценарій прецеденту та правила його опису?
- •16. Основні етапи і задачі об’єктно-орієнтованого проектування. Які артефакти розробляються на етапі оОпроектування?
- •18.Як під час проектування здійснюється розподіл обов’язків між класами? що таке шаблони проектування? Наведіть приклади шаблонів з прикладами їх застосування.
- •19. Охарактеризуйте мову uml та її призначення. Які діаграми для подання моделі складної системи надає uml, дайте коротку характеристику діаграм. Для чого на діаграмах uml застосовується мова ocl?
- •20. Призначення та правила побудови діаграми прецедентів uml: типи зв’язків між прецедентами(з прикладами), зображення на діаграмі прецедентів ролей (акторів).
- •24. Різновид діаграм реалізації. Що спільного і в чому різниця в uml діаграмах компонентів та розгортання?
- •26. Призначення компонувальника та завантажувача. В чому різниця між статичним та динамічним компонуванням бібліотек? Дайте порівняльну характеристику програмних модулів та динамічних бібліотек.
- •30. Як організувати багато потокове застосування? Які проблеми можуть виникнути під час взаємодії потоків і які методи їх уникнення?
18.Як під час проектування здійснюється розподіл обов’язків між класами? що таке шаблони проектування? Наведіть приклади шаблонів з прикладами їх застосування.
Основним завданням ОО проектування є створення діаграм взаємодій, що ілюструють взаємодію об'єктів в процесі виконання системних вимог. При побудові діаграм взаємодій відбувається розподіл обов'язків (responsibilities) на основі використання шаблонів (patterns).
Шаблонами є структуровані рекомендації і принципи.
Наприклад:
Им’я шаблона |
Expert |
Вирішувана проблема |
Який основний принцип розподілу обов'язків між об'єктами? |
Рішення |
Обов'язки призначаються класу, який має інформацію, необхідну для їх виконання. |
Тобто, шаблон – це пойменована пара «проблема/рішення», яку можна застосовувати в різних контекстах, і що містить рекомендації для вживання в різних конкретних ситуаціях.
Приклад: шаблони GRASP – шаблони, що описують фундаментальні принципи розподілу обов'язків між об'єктами.
Шаблони GRASP:
- Expert;
- Creator;
- High Cohesion;
- Low Coupling;
- Controller.
НАЗВАНИЕ |
ОПИСАНИЕ |
Creator |
Хто повинен відповідати за створення екземплярів класів |
Controller |
Який клас повинен обробляти системні події |
Low Coupling (оценочный) |
Як забезпечити низьку залежність класів і підвищити можливість повторного використання. Обов'язки розподіляються так, щоб міра зв'язаності залишалася низькою. |
High Cohesion (оценочный) |
Як забезпечити можливість управляти складністю. Обов'язки розподіляються так, щоб міра зачеплення залишалася високою. |
19. Охарактеризуйте мову uml та її призначення. Які діаграми для подання моделі складної системи надає uml, дайте коротку характеристику діаграм. Для чого на діаграмах uml застосовується мова ocl?
UML (1997 р.) – це мова для визначення, візуалізації і конструювання артефактів програмних систем (артефакт – діаграма або документ, що описує певне поняття). Це система позначень (включаючи семантику), призначена для моделювання систем на основі об'єктно-орієнтованого підходу.
Це важливий виробничий стандарт для об'єктно-орієнтованого моделювання.
UML предоставляет такие диаграммы для представления моделей сложной системы:
Диаграмма последовательностей системы является схемой, которая для определенного сценария прецедента (это его частный случай или реальный путь его реализации) показывает генерируемые внешними исполнителями события, их порядок, а также события, генерируемые внутри самой системы. При этом все системы рассматриваются, как «черный ящик». Назначение данной диаграммы – отображение событий, передаваемых исполнителями системе через ее границы.
Диаграммы кооперации (взаимодействий) – иллюстрируют процесс обмена сообщениями между экземплярами (и классами) в модели классов.
Диаграмма классов иллюстрирует спецификации программных классов и интерфейсов в приложении. Обычно на такую диаграмму выносится следующая информация: 1.Классы, отношения и атрибуты; 2.Интерфейсы со своими операциями и константами; 3.Методы; 4.Информация о типах атрибутов; 5.Способы навигации; 6.Зависимости. В отличие от концептуальной модели диаграммы классов отображают определения программных сущностей, а не понятия предметной области.
Язык объектных ограничений (Object Constraint Language, OCL) представляет собой некоторый формальный язык для описания ограничений, которые могут быть использованы при определении различных компонентов языка UML. Язык OCL может быть использован для решения следующих задач:
описание инвариантов классов и типов в диаграмме классов;
описание пред- и постусловий в операциях и методах;
описание сторожевых условий элементов модели;
навигация по структуре модели;
спецификация ограничений на операции.
Язык OCL является типизированным языком. Базовым элементом языка OCL является выражение, которое строится по определенным правилам.