
- •Тема 7. Розробка архітектури прогоамних систем
- •7.2. Розділи, топологія системи та асинхронізація
- •7.3. Розподіл підсистем за процесорами та задачами
- •Оцінка потрібних ресурсів
- •Заміна програм апаратурою
- •Розподіл підсистем за процесорами
- •7.4. Управління сховищами даних
- •7.5. Архітектури прикладних систем
- •7.6. Архітектура системи управління банківською мережею
- •7.7. Розробка об’єктів
- •7.7.1. Спільний розгляд трьох моделей
- •7.7.2. Алгоритм реалізації операції
- •7.7.3. Оптимізація розробки
- •7.7.4. Реалізація управління
- •7.8. Уточнення успадкування класів та розробка залежностей
7.5. Архітектури прикладних систем
Існують кілька типів архітектур, які здебільшого використовуються в існуючих системах. Кожна з них добре підходить до певного типу систем. Проектуючи систему одного з нижчеперелічених типів, доцільно використовувати відповідну архітектуру. Розглянемо такі типи систем:
система пакетної обробки — обробка даних проводиться один раз для кожного набору вхідних даних;
системи безперервної обробки — обробка даних проводиться безперервно над змінними вхідними даними (рис. 73);
системи з інтерактивним інтерфейсом — системи, які управляють зовнішніми впливами (рис. 74);
системи динамічного моделювання — системи, які моделюють поведінку об’єкта зовнішнього світу;
системи реального часу — системи, де переважають суворі часові обмеження;
системи управління транзакціями — системи, які забезпечують сортування та оновлення даних;
типовою системою управління транзакціями є СУБД.
Рис. 73. Система безперервної обробки: машинна графіка
Рис. 74. Система з інтерактивним інтерфейсом: АТМ
При розробці системи пакетної обробки необхідно виконати такі кроки:
Розбиваємо повне перетворення на фази, кожна з яких виконує певну частину перетворення, система описується діаграмою потоку даних, яка будується при розробці функціональної моделі.
Визначаємо класи проміжних об’єктів між кожною парою послідовних фаз; кожна фаза знає про об’єкти, розміщені на об’єктній діаграмі до та після неї (ці об’єкти являють собою відповідно вхідні та вихідні дані фази).
Складаємо об’єктну модель кожної фази (вона має таку саму структуру, що й модель всієї системи в цілому: фаза розбивається на підфази); яка розробляє кожну підфазу.
При розробці системи безперервної обробки необхідно виконати такі кроки.
Будуємо діаграму потоку даних; активні об’єкти з початку та в кінці відповідають структурам даних, значення яких безперервно змінюються; сховища даних, зв’язані з її внутрішніми фазами, відображають параметри, які впливають на залежність між вхідними та вихідними даними фази.
Визначаємо класи проміжних об’єктів між кожною парою послідовних фаз; кожна фаза знає про об’єкти, розташовані на об’єктній діаграмі до та після неї (ці об’єкти подають відповідно вхідні та вихідні дані фази).
Подаємо кожну фазу як послідовність змін значень елементів вихідної структури даних в залежності від значень елементів вхідної структури даних та значень, які дістають із сховища даних (значення вихідної структури даних формується частинами).
При розробці системи з інтерактивним інтерфейсом необхідно виконувати такі кроки:
Виділяємо об’єкти, які формують інтерфейс.
Якщо є змога, використовуємо готові об’єкти для організації взаємодій (наприклад, для організації взаємодій системи з користувачем крізь екран дисплея можна використовувати бібліотеку системи X-Window, яка забезпечує роботу з меню, формами, кнопками і т. ін.).
Структуру програми визначаємо за її динамічною моделлю; для реалізації інтерактивного інтерфейсу використовуємо паралельне управління (багатозадачний режим) чи механізм подій (переривання), а не процедурне управління, коли час між виводом чергового повідомлення користувачеві та його відповіддю система проводить в режимі очікування.
Із численних подій виділяємо фізичні (апаратні, прості) події та стараємося при організації взаємодій використовувати насамперед їх.
При розробці системи динамічного моделювання необхідно виконати такі кроки:
За об’єктною моделлю визначаємо активні об’єкти; ці об’єкти мають атрибути з періодично оновлюваними значеннями.
Визначаємо дискретні події, такі події відповідають дискретним взаємодіям об’єкта (наприклад, ввімкнення постачання) та реалізуються як операції об’єкта.
Визначаємо безперервні залежності (наприклад, залежності атрибутів від часу); значення таких атрибутів повинні періодично оновлюватися у відповідності із залежністю.
Моделювання управління об’єктами, які відстежують часові цикли послідовностей подій.
Розробка системи реального часу аналогічна розробці системи з інтерактивним інтерфейсом.
При розробці системи управління транзакціями необхідно виконати такі кроки:
Відображуємо об’єктну модель на базу даних.
Визначаємо асинхронно працюючі пристрої та ресурси з асин- хронним доступом; у разі потреби визначаємо нові класи.
Визначаємо набір ресурсів (у тому числі — структур даних), до яких потрібен доступ в час транзакції (учасники транзакції).
Розробляємо паралельне управління транзакціями; системі може знадобитися кілька разів повторити невдалу транзакцію, перш ніж видати відмову.