
- •Тема 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.7.3. Оптимізація розробки
Об’єктна модель, побудована на етапі аналізу вимог до програмної системи, містить інформацію про логічну структуру системи; на етапі розробки об’єкта модель уточнюється та поповнюється: до неї додаються деталі, пов’язані з необхідністю забезпечити ефективніший доступ до інформаційних структур у час роботи системи. Мета оптимізації розробки — замінити семантично коректну, але недостатньо ефективну модель, побудовану на етапі аналізу, ефективнішою моделлю. У процесі оптимізації розробки виконуються такі перетворення:
додаються надлишкові залежності, щоб мінімізувати втрати, які пов’язані з доступом до даних, та максимізувати зручності роботи з ними;
змінюється порядок обчислення для досягнень більшої ефективності;
зберігаються похідні атрибути, щоб усунути необхідність переобчислення складних висловлювань.
На етапі аналізу вимог до програмної системи надлишкові залежності небажані, оскільки вони не вносять в модель нової інформації. Проте на етапі розробки ми маємо пристосувати структуру об’єктної моделі до вимог ефективної реалізації системи. Приклад використання надлишкової (похідної) залежності для підвищення ефективності пошуку наведено на рис. 77; на рис. 77а подано залежності з початкової об’єктної моделі; додавання по- хідної (а отже, надлишкової) залежності (рис. 77б) дозволяє різко прискорити пошук співробітників, які розмовляють потрібною мовою.
Рис. 77. Прискорення пошуку за допомогою похідної залежності
Використання похідних атрибутів для вилучення повторних обчислень показано на рис. 78: запам’ятовування координат якось знайдених атрибутів та операцій у спеціальних списках дозволяє уникнути повторного пошуку.
Рис. 78. Використання похідних атрибутів для вилучення повторних обчислень
На рис. 79 показано, як завдяки введенню похідної залежності вдається уникнути переобчислення координат, які перекривають елементи вікон у віконній системі для графічного дисплея.
Рис. 79. Використання похідної залежності
Похідні атрибути мають змінювати свої значення, коли змінюються їх базові значення. Для забезпечення цього застосовують один із трьох методів:
явне переобчислення: кожний похідний атрибут визначається за допомогою одного чи кількох базових об’єктів; коли значення базових об’єктів змінюються, потрібною стає зміна значення всіх похідних атрибутів, які пов’язані з ними;
періодичне переобчислення всіх похідних атрибутів (у час зміни базового значення похідні атрибути переобчислюються);
використання активних значень: активним називається значення, з яким пов’язана певна множина залежних значень; всі залежні значення групуються біля активних значень, які їх визначають, та переобчислюються синхронно з ними.
7.7.4. Реалізація управління
Реалізація управління пов’язана з реалізацією динамічної моделі об’єктів системи. Відомі три підходи до реалізації динамічної моделі:
процедурне управління: стану відповідає певний фрагмент програми;
управління через події: явна реалізація скінченного автомата;
використання паралельних незалежних задач.
Процедурне управління є традиційним способом реалізації динамічної моделі; у цьому разі стан об’єкта визначається поточним оператором програми, а кожному переходу відповідає оператор вводу: наступний стан визначається за поточним станом та запровадженим іменем події. Приклад практичного використання процедурного управління подано на рис. 80.
Рис. 80. Псевдокод, який відповідає динамічній моделі АТМ