Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture_Marta.doc
Скачиваний:
53
Добавлен:
12.02.2016
Размер:
2.11 Mб
Скачать

6. Оптимізація проекту

Буквальна і прямолінійна реалізація може призвести до дуже низької ефективності системи.

Причиною може бути швидкість виконання деяких функцій або пам'яті і дуже обширне використання пам'яті деякими системами.

У таких випадках слід зробити оптимізацію.

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

  • використання статичних змінних замість динамічних,

  • застосування вкладеного коду замість процедур, що викликаються,

  • вибір типів з мінімальними величинами.

Ці методи можуть призвести до менш зрозумілого коду замість його оптимізації. Обробка помилок може стати складнішою або неможливою.

Кориснішим було б проведення оптимізації ще на етапі дизайну або навіть аналізу.

Ефективність обробки даних повинна враховуватися в першу чергу. Наприклад, при зміні алгоритму сортування шляхом введення допоміжного файлу з ключами і вказівниками, доступ до відсортованих об'єктів може збільшити швидкість в десятки разів.

Ще одним важливим моментом в знаходженні слабких місць і обережному поводженню з ними є розуміння процедур. Загальновідомо, що 20% коду займає 80% часу виконання. Затримки можуть бути усунені шляхом написання часто використовуваних функцій на мовах низького рівня, наприклад, C.

Часто затримки викликані операціями над базами даних. Перевантаження, потрібне реляційним базам даних, також є важливим чинником. В деяких випадках оптимізація може відбуватися шляхом денормалізації бази даних, з'єднанням осередків в одну, застосуванням індексів і інших структур.

Оптимізація повинна бути пов'язана з аналізом буферизації в пам'яті і розглядом різних рівнів буферизації.

Обмеження середовища реалізації

Дизайнер може зустріти багато обмежень в ході реалізації.

Типовими обмеженнями в переході від аналітичної моделі до моделі дизайну є:

  • відсутність множинного наслідування;

  • відсутність наслідування;

  • відсутність віртуальних методів;

  • відсутність складних атрибутів;

  • відсутність мультимедійних типів.

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

Малюнок 7.7.1. Приклад подолання множинного наслідування.

7. Фізична структура системи

Одним із завдань етапу дизайну - описати фізичну структуру системи.

Вона включає:

  • Опис структури початкового коду, тобто визначення початкових файлів, їх взаємозв'язків і знаходження компонентів.

  • Декомпозиція системи на конкретні програми.

  • Фізичний розподіл даних і програм.

Малюнок 7.8.1. Позначення фізичної структури (Booch).

Малюнок 7.8.2. Графічний опис структури апаратури.

8. Правильність і якість проекту

Системний проект повинен бути веріфіковано, а його якість - оцінено. Правильність означає завершеність, сумісність і узгодженість. Повинні бути збережені принципи системи позначень. Але це не означає, що проект відповідає призначеним для користувача вимогам.

Правильний проект повинен бути:

  • завершеним;

  • сумісним;

  • узгодженим;

  • повинна зберегтися семантика позначень.

Малюнок 7.9.1. Приклад компіляції в C++.

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

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

Правильність класу і діаграм станів

Всі діаграми проекту повинні бути веріфіковані.

У верефікації діаграм класів потрібно враховувати наступне:

  • ациклічні відносини узагальнення-спеціалізації,

  • варіанти відносин циклічного об'єднання,

  • класи, що не мають відношення до інших класів, не повинні бути включені. Але іноді таке трапляється,

  • введення в специфікацію методів, що мають відношення до вводу, виводу і специфікації результата.

Якість системи

Багато методів і позначень є неформальними, і їх використання залежить від типу проекту. Оцінка якості вельми важка і під час будівництва ПЗ, і при задоволенні користувача: рівень відповідності вимогам, надійність, ефективність і ергономічність. Якість вказує на узгодженість, рівень зв'язків і прозорість. Існують формальні заходи для оцінки якості, і вони є дуже важливими, але не повністю визначають ефективність системи.

Узгодженість

Узгодженість описує ступінь відповідності частин системи один одному і взаємини операцій. Критерії декомпозиції дуже важливі. Вони визначають вид узгодженості.

Критерії декомпозиції:

  • Випадкова декомпозиція. Розділення на модулі відбувається із-за неможливості обхватити всю систему в різних завданнях.

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

  • Часова декомпозиція. Компоненти працюють в однаковий час.

  • Послідовна декомпозиція. Компоненти працюють в певній послідовності. Вихідні дані одного компоненту є вхідними для іншого.

  • Функціональна декомпозиція. Всі компоненти потрібні для виконання однієї функції.

Рівні зв'язку між компонентами

У хорошому проекті зв'язки між компонентами повинні бути слабкі. Це визначає декомпозицію проекту на частини, а ПЗ - на модулі.

Малюнок 7.9.2. Рівні зв'язку між компонентами.

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

Прозорість

Хороший проект повинен бути прозорим, тобто чітким і легким для розуміння. Прозорість визначають наступні чинники:

  • Представлення реальності

Компоненти і їх зв'язки повинні представляти структуру системи. Тісні зв'язки проекту з реальністю дозволяє полегшити його розуміння і підтримку.

  • Узгодженість і рівень зв'язків компонентів

Слабкі зв'язки між компонентами мають меншу підтримку і заважають розповсюдженню помилок. Сильна узгодженість робить код зрозумілим, чітким і спрощує його виконання. Метою повинне бути досягнення сильної узгодженості і слабкої зв'язаності.

  • Зрозуміла термінологія

Термінологія визначає легкість розуміння проекту. Вона повинна бути зрозумілою користувачеві, який не знайомий з подробицями проекту. Також вона повинна бути послідовною - перед початком проекту повинно пройти узгодження термінів.

  • Зрозуміла і повна специфікація

Специфікація повинна бути написана на зрозумілій користувачеві мові. Слід уникати професійного сленгу.

  • Відповідна складність компонентів на кожному рівні.

Застосування наслідування і методів в класах спрощує розуміння проекту.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]