You are on page 1of 10

1. Охарактеризуйте структурні методи програмування.

Сутність структурного підходу до розробки ПС полягає в декомпозиції


(розподілі) системи на функції, що підлягають автоматизації, які у свою
чергу, діляться на під функції й задачі. Процес декомпозиції триває до
визначення конкретних процедур. При цьому система, що автоматизується,
зберігає цілісне подання, у якому всі складові компоненти взаємозалежні.

2. Наведіть основні особливості і можливості об'єктно-орієнтованого


програмування.

При об'єктно-орієнтованому підході програма являє собою опис об'єктів, їх


властивостей (або атрибутів), сукупностей (або класів), відносин між ними,
способи їх взаємодії та операцій надоб'єктами (або методи).
Безперечною перевагою даного підходу є концептуальна близькість до
предметної області довільної структури та призначення. Механізм
спадкоємства атрибутів і методів дозволяє будувати похідні поняття на
основі базових і таким чином створювати модель як завгодно складної
предметної області з заданими властивостями.
Ще одним теоретично цікавою і практично важливою властивістю об'єктно-
орієнтованого підходу є підтримка механізму обробки подій, які змінюють
атрибути об'єктів і моделюють їх взаємодію в предметній
області.Переміщаючись по ієрархії класів від загальних понять предметної
області до більш конкретних (або від більш складних - до більш простих) і
навпаки, програміст отримує можливість змінювати ступінь абстрактності
або конкретності погляду на модельований їм реальний світ.
Використання раніше розроблених (можливо, іншими колективами
програмістів) бібліотек об'єктів і методів дозволяє значно заощадити
трудовитрати при виробництві програмного забезпечення, особливо,
типового.Об'єкти, класи і методи можуть бути поліморфними, що робить
реалізоване програмне забезпечення більш гнучким і універсальним.

3. Які діаграми є в мові UML для візуального проектування програм?

Діаграма класів (Class diagram) визначає склад класів об’єктів і їх зв’язків.


Діаграма задається зображенням, на якому класи позначаються поділеними
на три частини прямокутниками, а зв’язки — лініями, що з’єднують
прямокутники. Це відповідає візуальному зображенню понять і зв’язків між
ними.
Діаграма послідовності застосовується для опису взаємодії об’єктів за
допомогою сценаріїв, що відображають події, пов’язані з їх створенням і
видаленням. Взаємодія об’єктів контролюється подіями, які відбуваються в
сценарії і ініціюються повідомленнями до інших об’єктів.
Діаграма співпраці задає поведінку сукупності об’єктів, функції яких
орієнтовані на досягнення цілей системи, а також взаємозв’язку тих ролей,
які забезпечують співпрацю. Зазначимо, що діаграми послідовності та
співпраці відображують одне й те саме, хоча й різними способами.
Діаграма діяльності задає поведінку системи у вигляді певних робіт, які
може виконувати система або актор і ці роботи можуть залежати або від
заданих умов, або від обмежень. Ця діаграма відображає функціональну
структуру системи і принципи поведінки її окремих елементів під час
виконання відповідної діяльності.
Діаграма станів базується на розширеній моделі кінцевого автомата і
визначає умови переходів, дії на вході й виході зі стану, а також вкладені і
паралельні стани. Перехід за даними із списку ініціює деяку подію.
Діаграма реалізації — це діаграма компонентів і розміщення. Діаграма
компонентів слугує відображенню структури системи як композиції
компонентів і зв’язків між ними.
Діаграма розміщення задає склад ресурсів системи, на яких розміщуються
компоненти, і відношення між ними.

4. Наведіть основні типи компонентів і шляхи їхнього використання.

Як готові ресурси в інженерії ПрО можуть використовуватися відомі


горизонтальні і вертикальні типи компонентів загального призначення, що
реалізовані зокрема в моделі CORBA. Горизонтальні типи компонентів - це
загальні системні засоби, що потрібні різним членам сімейства, а саме,
графічні інтерфейси користувача, СКБД, бібліотеки розрахунку матриць,
контейнери, каркаси і т.п.
До вертикальних типів компонентів належать прикладні системи (медичні,
біологічні, наукові і т.д.), а також компоненти горизонтального типу з
обслуговування архітектури багаторазового застосування компонентів і. їхніх
інтерфейсів.
Приклад системи підтримки інженерії ПрО і застосування горизонтальних
методів - система DEMRAL, призначена для розробки бібліотек: чисельного
аналізу, графових обчислень і т.д. Основні види елементів цієї бібліотеки -
абстрактні типи даних (abstract data types) і алгоритми. DEMRAL підтримує
інженерію домеїгу за допомогою бібліотек чисельного аналізу, обробки
зображень тощо. Крім цього, ця система дозволяє моделювати
характеристики ПрО і зображати їх у характеристичній моделі, а також в
предметно-орієнтованих мовах опису конфігурації.
Система конструювання RSEB призначена для використання вертикальних
методів, а також КПВ і сценаріїв (use case), як інструментів діаграмного
проектування архітектури системи. Методи вертикального типу можуть
викликати різні горизонтальні методи, що входять до різних прикладних
підсистем. При роботі над окремою частиною сімейства можуть
застосовуватися аспекти взаємодії, потоків даних і ін. Важливу роль при
цьому виконує графічний інтерфейс користувача і метод забезпечення
взаємодії компонентів у розподілених середовищах.

5. Назвіть базові поняття в компонентному програмуванні.

Артефакт - це реалізація (implementation), інтерфейс (interface) і схема


розгортання (deployment) компонента.
Реалізація – це код, що буде виконуватися при зверненні до операцій,
визначених в інтерфейсах компонента. Компонент може мати кілька
реалізацій залежно від операційного середовища, моделі даних, СКБД і ін.
Інтерфейс відображає операції звертання до реалізації компонента,
описується в мовах IDL або APL, містить у собі опис типів і операції
передачі аргументів і результатів для взаємодії компонентів. Компонент, як
фізична сутність, може мати множину інтерфейсів.
Розгортання - це виконання фізичного файлу відповідно до конфігурації
(версії), з урахуванням параметрів запуску системи.
Компонентна модель - відбиває проектні рішення щодо композиції
компонентів, визначає типи шаблонів компонентів і припустимі взаємодії
між ними, а також джерело формування файлу розгортання ПС у середовищі
функціонування.
Компонентне середовище - розширення класичної моделі клієнт-сервер з
урахуванням специфіки побудови і функціонування програмних
компонентів, а також результатів практичних реалізацій і їхньої апробації.
Основа компонентного середовища - множина серверів компонентів (часто їх
називають сервери застосувань - application servers). Усередині сервера
розгортаються компоненти-контейнери. Для кожного сервера може існувати
довільна кількість контейнерів.
Контейнер - це оболонка, усередині якої реалізується функціональність
компонента.

6. Визначте основні поняття й етапи життєвого циклу у компонентному


програмуванні.

1. Пошук, вибір КПВ і розроблення нових компонентів.


2. Розроблення вимог (Requirements) до ПС.
3. Аналіз поведінки (Behavioral Analysis) ПС.
4. Специфікація інтерфейсів і взаємодій компонентів (Interface and Interaction
Specification).
5. Інтеграція набору компонентів і КПВ (Application Assembly and Component
Reuse).
6. Тестування компонентів і середовища (Component Testing).
7. Розгортання (System Deployment).
8. Супровід ПС (System Support and Maintenance).

7. Визначте основні елементи аспектно-орієнтованого програмування.

8. Визначте основні елементи агентного програмування.

Визначте основні елементи агентного програмування.


- формальна мова опису ментального стану агентів;
- мова специфікації інформаційних, часових, мотиваційних і функціональних
дій агента в середовищі функціонування;
- засоби інтерпретації специфікацій агента;
- інструменти конвертування будь-яких програм у відповідні агентні
програми.
9. Визначте об'єкти генерувального програмування і наведіть
призначення.

Визначте об’єкти генерувального програмування і наведіть призначення.


У генерувальному програмуванні головним об’єктом є КПВ. Він
використовується при створенні членів сімейства за двома інженерними
напрямами програмної інженерії:
1) прикладна інженерія (Application Engineering) – процес розроблення
конкретних систем, так званих одиночних програм, із КПВ, а також
застосування раніше створених незалежних ПС у різних середовищах;
2) інженерія ПрО (Domain Engineering) - побудова архітектури членів
сімейства або самого сімейства систем шляхом використання КПВ, які
зафіксовані в сховищах, а також частин і членів сімейства систем конкретної
ПрО, отриманих за моделлю GDM

10. Що таке простір проблем і простір рішень?

Простір проблеми (problem space) містить у собі поняття ПрО та майбутньої


системи, що будується за допомогою компонентів та КПВ, об’єкти та їхні
характеристики тощо. Основою простору проблем є модель функціональних
характеристик, властивості компонентів і об’єктів, змінювані параметри
різних членів сімейства, а також проектні рішення, обумовлені
особливостями взаємодії членів сімейства між собою і з середовищем.
Простір рішень (solution space) - це компоненти, каркаси, шаблони
проектування ПрО, а також засоби їхнього з’єднання або збудування в ПС і
оцінки повноти. Елементи цього простору реалізують розв’язання задач ПрО.
Каркас системи або сімейства систем оснащений механізмом зміни
параметрів, що вимагають фрагментації множини дрібних методів і класів.
Він забезпечує створення багаторазових і використовуваних розв’язків у
різних типах ПС, а також використання аспектів синхронізації, взаємодії і
захисту даних за допомогою технології JavaBeans та нових механізмів
композиції і генерації у середовищі Eclipse.

11. Наведіть теоретичні методи програмування.

Теоретичні методи програмування дозволяють створювати програмні


системи в абстрактному вигляді, включаючи концептуальні, інформаційні,
структурні моделі без урахування особливостей середовищ, в яких вони
реалізуються. Ці моделі доводяться до стану кінцевого продукту шляхом
використання відповідних мов програмування.

12. Охарактеризуйте алгебраїчне програмування.


Парадигма алгебраїчного програмування – АП ґрунтується на теорії
переписування термів. У цій парадигмі терми представляють дані, а системи
переписуючих правил, що подаються за допомогою системи рівностей, –
алгоритми обчислень. Елементарний крок обчислення містить у собі включає
зіставлення із зразком, перевірку умов і підстановку. Порядок вибору
переписуючих правил і підтермів даного терму для зіставлення з лівими
частинами рівності визначається стратегією переписування. По суті,
стратегія визначає результат обчислень – терм з точністю до еквівалентності
початковому терму. Власне стратегія переписування може бути описана в
парадигмі більш низького рівня, наприклад, процедурній або
функціональній, що зумовлює інтеграцію парадигм. На теперішній час ідея
інтеграції парадигм (процедурної, функціональної, алгебраїчної і логічної)
знайшла втілення в системі алгебраїчного програмування (APS), в якій
використовуються спеціалізовані структури даних – графові терми – для
представлення даних і знань про предметні області.
Основою АП є математична модель, що вміщує такі поняття:
– агент як транзитивна система, наділена поведінкою;
– поведінка агентів задається мовою АL (Action Language) за допомогою
операцій, констант, граничних умов і рекурсій;
– середовище, яке складається з множини агентів і функцій занурення в
нього, що позначається env і має параметром стан середовища й агентні
вирази;
– правила розгортання функціональних виразів у прості агентні вирази;
– транзитивна система, як композиція середовища й системи взаємодіючих
агентів, занурених у це середовище.

13. Що таке алгоритміка і її алгебра?

Алгоритміка (англ. agorithm design) — дисципліна, що вивчає алгоритми, та


їх застосування до розв'язування задач. У практичному плані алгоритміка є
навчанням студента спортивного програмування.
Відрізняється від теорії алгоритмів тим що не займається пошуком доведення
існування алгоритму, а займається пошуком оптимального (в основному
за часом виконання), алгоритму, що розв'язує дану задачу. Якщо такий
алгоритм невідомий, то намагається розв'язати задачу хоча б частково
Алгоритміка програм призначена для побудови послідовних і паралельних
програм зі структурних схем з використанням апарату формальних
алгебраїчних перетворень і канонічних форм опису логічних і операторних
виразів.

Алгебра алгоритмів АА = {A, W}, як і будь-яка алгебра, — це основа А і


сигнатура W операцій з елементами цієї основи. За допомогою операції
сигнатури можна додати довільний елемент q Î AА. Це називається
системоюутворювальної алгебри.

Під час конструювання алгоритмів програмісти керуються в основному


інтуїтивним підходом, не замислюючись над тим, чи утворюють певну
систему виконувані ними операції, проте така система є, вона формально
описана і називається алгоритмічною алгеброю.

14.Покажіть сутність переходу до інших алгебр.

Алгебра алгоритмів.Алгебра алгоритмів АА = {A, W}, як і будь-яка


алгебра, — це основа А і сигнатура W операцій з елементами цієї
основи. За допомогою операції сигнатури можна додати довільний
елемент q Î AА. Це називається системоюутворювальної алгебри.

Якщо з цієї системи не може бути виключений жоден елемент без


порушення властивостей, то така система утворювальних алгебр
називається базисом алгебри.

Операції алгебри задовольняють наступні аксіоматичні закони:


асоціативності, комутативності, ідемпотентності, закони виключення
третього і суперечності. Алгебру, яку задовольняють перераховані
операції, називають булевою.

В алгебрі алгоритмів використовується алгебра множин, тобто елементи


множини й операції над ними (об'єднання, перетину, доповнення і ін.).
Вводиться також поняття універсуму – множини операцій постановки і
розв’язання деякої задачі [30].

Основні об'єкти алгебри алгоритмів – схеми алгоритмів і їх


суперпозиції, тобто підстановки одних схем в інші. З підстановкою
зв'язані розгорнення, що відповідає спадному процесу проектування
алгоритмів, і згортання, тобто перехід до більш високого рівня
специфікації алгоритму. Схеми алгоритмів відповідають конструкціям
структурного програмування.

Послідовне виконання операторів А і В записується у вигляді


композиції А*У; альтернативне виконання операторів А и В (u (А, У))
означає, якщо u – істинне, то виконується А, інакше В; цикл
(u (А, У))виконується, поки не стане істинною умова u (u – логічна
змінна).

За допомогою цих елементарних конструкцій будується більш складна


схема P алгоритму:

P ::={ [u1] А1},
А1 ::= { [u2] А2 * D},

А2 ::= А3 * C,

А3 ::= { [u] А, B},

u ::= u2 Ù u1.

Здійснивши суперпозицію шляхом згортання даної схеми алгоритму P,


одержуємо таку схему:

P ::= {[ u1]{ [u2] ( [u2 Ù u1] А, У ) * З }* D}.

Важливим показником можливостей алгоритміки є проведений


порівняльний аналіз алгебри алгоритміки з відомими алгебрами. Дамо
короткі пояснення алгебри Дейкстри, Янова та ін.

Алгебра Дейкстри АД = {АСС, L(2), СИГН} – двохосновна алгебра,


елементами якої є множина САА операторів, зображених структурними
блок-схемами, множина L(2) булевих функцій у сигнатурі СИГН, в яку
входять операції диз’юнкції, кон’юнкції і суперечності, що набувають
значення з L(2). За допомогою спеціально розроблених механізмів
перетворення АД на алгебру алгоритміки встановлено зв'язок між
альтернативою і циклом за формулою {[u] А} = ([u] Е, А * {[u] А}), що
входить у СИГН. В АД використовуються похідні операції, які можуть
бути отримані в наслідок суперпозиції основних операцій і констант.

Операція фільтрації Ф (u) = {[u] Е, N}у АД зображена суперпозицією


тотожного Е для невизначених N операторів і альтернативи в алгебрі
алгоритміки, де N – фільтр дозволу виконання операцій обчислень.

Оператор циклу while doтакож представлений суперпозицією операцій


композиції і циклу в алгебрі алгоритміки.

Алгебра схем ЯноваАЯ =<{AHC, L(2)}; CИГН>, де АНС – сукупність


неструктурних схем, L(2) – сукупність різних булевих функцій, СИГН –
сигнатура з композиції А*В і операція неструктурного переходу P(u, F),
а також операції диз'юнкції, кон’юнкції і суперечності. АЯ містить у
собі операції побудови неструктурних логічних схем програм.

Схема Янова складається з предикатних символів множини P(p1, p2,…,),


операторних символів множини A{a1, a2,…} і графа переходів. Оператор
у даній алгебрі – це пари A{p}, що складається із символів множини А и
предикатних символів p. Граф переходу – це орієнтований граф, у
вершинах якого розміщуються перетворювачі, розпізнавачі й один
оператор зупинки. Дуги графа задаються стрілками і позначаються
знаками + і –. Дуги, що виходять з розпізнавача, розрізняються і
називаються відповідно плюс-стрілка і мінус–стрілка. Перетворювач
має одного нащадка, розпізнавач – двох. Одна вершина в графі переходу
зветься вхідною і помічається вхідною стрілкою. Також є вершина
зупинення, яка не має нащадків. Кожен розпізнавач містить у собі умови
виконання схеми. Перетворювач обробляє оператори, що вміщають
логічні змінні, що належать множині (p1, p2,…) [31].

Кожна схема АЯ відзначається великою складністю, вимагає серйозного


перетворення при переході до задання програми послідовністю дій,
умов переходу і безумовного переходу. У праці [30] розроблена теорія
інтерпретації схем Янова і доведено еквівалентність цих схем і
операторних схем алгебри алгоритміки.

Для зображення схеми Янова апаратом алгебри алгоритміки сигнатура


операцій АЯ вводяться композиції А* В і операція умовного переходу,
що залежно від умови u виконує перехід до наступних операторів або до
оператора, позначеного міткою (типу goto). Умовний перехід
трактується як бінарна операція P (u, F), що залежить від умови u і
розміток схеми F. Крім того, виконується заміна альтернативи і циклу
типу while do. Внаслідок виконання бінарних операцій отримується нова
схема F’, у якій встановлені бінарні операції P(u) замість мітки і булевих
операцій кон’юнкції і суперечності. Еквівалентність операцій
перетворення доводить правильність переходу до неструктурного
подання програм.

Система алгебр ГлушковаАГ= {ОП, УМ, СИГН}, де ОП – множина


операторів, що входять у сигнатуру СИГН, і УМ – множина логічних
умов, визначених на інформаційній множині ІМ.

Сигнатура СИГН = {СИГНад È Прогн.}, де СИГНад – сигнатура


операцій Дейкстри, Прогн. – операція прогнозування. Сигнатура САА
містить у собі операції алгебри АД, узагальнену тризначну булеву
операцію і операцію прогнозування (ліве множення умови на оператор u
= (А* u’) з породженням предиката u = УС такого, що u(m) = u’(м'), м' =
А(m), А Î ОП). ИМ – множина оброблюваних даних за операціями з
множин ОП і УС. Сутність операції прогнозування полягає в перевірці
умови u у стані m оператора А і визначення умови u’, обчисленої в
стані м' після виконання оператора А. Дана алгебра орієнтована на
аналітичну форму подання алгоритмів і оптимізацію алгоритмів за
вибраними критеріями.

Алгебра алгоритміки і прикладні підалгебри. Алгебру алгоритміки


розширено Г.О. Цейтліним дворівневою алгебраїчною системою і
механізмами абстрактного опису даних (класами алгоритмів). Під
багатоосновною алгоритмічною системою (БАС) розуміють систему S
={{Di÷ iΠI }; СИГН0 , СИГНn }, де Di – основи або
сорти, СИГН0 , СИГНn – сукупності операцій і предикатів, визначених
на Di . Якщо вони порожні, то визначаються багатоосновні моделі –
алгебри. Якщо сорти інтерпретуються як множина оброблюваних даних,
то БАС є концепцію АТД у вигляді підалгебри, що широко
використовується в об'єктному програмуванні. Тим самим установлено
зв'язок із сучасними тенденціями розвитку програмування.

Таким чином, можна зробити висновок, що проведене зіставлення


механізмів алгебри Дейкстри, алгебри схем Янова та логічних
операторів Глушкова проведено засобами алгоритміки Цейтліна. Це
вказує на їх однакову алгоритмічну потужність при різних засобах
подання алгоритмів програм.

Практичним результатом досліджень алгебри алгоритміки є побудова


оригінальних інструментальних систем проектування програм на основі
сучасних засобів підтримки ООП (Rational Rose).

You might also like