- •Тема 6. Характеристики функціональної моделі програмноїсистеми
- •6.1. Діаграми потоків даних
- •Процеси
- •Потоки даних
- •Активні об’єкти
- •Сховища даних
- •Потоки управління
- •6.2. Опис операцій
- •6.3. Обмеження
- •6.4. Функціональна модель банківської мережі
- •Визначення вхідних та вихідних значень
- •Побудова дпд
- •6.5. Заключні зауваження
Сховища даних
Сховище даних — це пасивний об’єкт у складі ДПД, в якому дані зберігаються для подальшого доступу. Сховище даних допускає доступ до даних, що зберігаються в ньому у порядку, відмінному від того, в якому вони були туди розміщені. Агрегати сховища даних, скажімо, списки та таблиці, забезпечують доступ до даних у порядку їх надходження або за ключами. Приклади сховищ даних наведено на рис. 64.
Рис. 64. Сховища даних
Потоки управління
ДПД показують всі шляхи обчислення значень, але не пока- зують, у якому порядку значення обчислюються. Рішення про порядок обчислення пов’язані з управлінням програмою, яка відображається в динамічній моделі. Ці рішення, які виробляють- ся спеціальними функціями (предикатами), визначають, чи буде виконано той чи інший процес, але при цьому не передають процесу ніяких даних, так що їх включення у функціональну модель необов’язкове. Проте іноді буває корисно включати зазначені предикати у функціональну модель, щоб у ній були відображе- ні умови виконання відповідного процесу. Функція, яка прий- має рішення про запуск процесу, має бути включена до ДПД, породжує у ДПД потік управління (він зображується пунктирною стрілкою).
Приклад потоку управління наведено на рис. 65: клієнт, який має намір зняти частину своїх грошей з рахунку у банку, вводить у АТМ пароль та потрібну суму, однак фактичне зняття та видача грошей відбуваються лише в тому разі, коли введений пароль збігається з його зразком.
Рис. 65. Потік управління
Попри те, що потоки управління іноді бувають дуже корисними, слід мати на увазі, що включення їх до ДПД призводить до дублювання інформації, яка стосується динамічної моделі.
6.2. Опис операцій
Процеси ДПД зрештою повинні бути реалізовані як операції об’єктів. Кожен процес нижнього (базового) рівня, так само, як і процеси верхніх рівнів, до складу яких входять процеси нижчих рівнів, реалізуються як операції. При цьому реалізація процесів верхніх рівнів може відрізнятися від їх подання на ДПД, оскільки при реалізації звичайно досягається їх оптимізація: у результаті оптимізації процеси нижчих рівнів, які становлять процес вищого рівня, можуть «злитися», після чого стануть непомітними.
Усі операції мають бути специфіковані. Специфікація операції містить у собі її сигнатуру (ім’я операції, кількість, порядок та типи її параметрів, кількість, порядок та типи повернутих нею значень) та опис її ефекту (дії, перетворення). Для опису ефекту операції можна використовувати:
математичні формули;
табличні функції: таблиці, які порівнюють вихідні та вхідні значення;
рівняння, які пов’язують вхідні та вихідні значення;
аксіоматичне визначення операцій за допомогою перед- та пост-умов;
таблиці прийняття рішень;
псевдокод;
природна мова.
Приклад опису операцій (ефект описано природною мовою) подано на рис. 66.
змінити рахунок (рахунок, сума, вид проведення) → гроші, квитанція якщо сума знімається та більша за баланс рахунку, то «відмінити проведення» якщо сума знімається та менша за баланс рахунку, то «дебетувати рахунок» та «видати гроші» якщо сума вноситься на рахунок, то «кредитувати рахунок» якщо запит, то «видати запит» в усіх випадках: квитанція повинна містити номер АТМ, дату, час, номер рахунку, вид проведення, суму проведення (якщо вона є), новий баланс рахунку. |
Рис. 66. Специфікація операції «змінити рахунок»
(для опису ефекту операції використано операції «відмінити проведення», «видати запит», «видати гроші», «дебетувати рахунок» та «кредитувати рахунок»)
Зовнішня специфікація операції описує лише ті зміни, які видані поза операцією. Операція може бути реалізована так, що при її виконанні використовуватимуться деякі значення, визначені всередині операції (наприклад, з метою оптимізації). Деякі із цих значень можуть бути також частиною стану об’єкта. Ці деталі реалізації операції приховані від інших об’єктів і не беруть участі у визначенні зовнішнього ефекту операції. Зміни внутрішнього стану об’єкта не помітні поза ним, не змінюють значення об’єкта.
Усі нетривіальні операції можна поділити на три категорії: запити, дії та активності. Запитом називається операція без побічних ефектів щодо помітного зовні стану об’єкта (чиста функція). Запит, в якого немає параметрів, крім цільового об’єкта, є похідним атрибутом. Наприклад, для точки на координатній площині радіус та полярний кут — похідні атрибути. З цього прикладу бачимо, що між основними та похідними атрибутами немає принципової різниці і вибір основних атрибутів здебільшого випадковий.
Дією називається операція, яка має побічні ефекти, котрі можуть впливати на цільовий об’єкт та інші об’єкти системи, які досяжні з цільового об’єкта. Дії не потребують часу (виконуються миттєво). Кожна дія може бути визначена через ті зміни, що їх вона виробляє у стані об’єкта, який змінює значення його атрибутів та зв’язків. У якому порядку виробляються ті зміни, не істотно: ми вважаємо, що всі вони відбуваються одночасно та миттєво. Найпоширенішим способом опису дії є завдання алгоритму його виконання на комп’ютері.
Активністю називається операція, яка виконується об’єктом чи над об’єктом, виконання якої потребує певного часу. Активність має побічні ефекти. Активності можуть бути тільки в активних об’єктів, бо пасивні об’єкти є просто сховищами даних.
