
- •Лекція 4. Проектування бази даних
- •4.1. Огляд життєвого циклу інформаційних систем Інформаційна система - ресурси, що дозволяють виконувати збір, коректування, поширення інформації усередині організації.
- •4.2. Життєвий цикл програми баз даних
- •4.2.1. Планування розробки бази даних Планування розробки бази даних - підготовчі дії, що дозволяють з максимально можливою ефективністю реалізувати етапи життєвого циклу програми бази даних.
- •4.2.2. Визначення вимог до системи Визначення вимог до системи - визначення діапазону дій і границь програми бази даних, складу її користувачів і областей застосування.
- •Вимога - деяка функція, що повинна бути включена в створювану систему.
- •4.2.4. Проектування бази даних Проектування бази даних - процес створення проекту бази даних, призначений для підтримки функціонування підприємства і сприятливий досягненню його цілей.
- •4.2.5. Вибір цільової скбд Вибір цільової скбд - вибір скбд придатного типу, призначеної для підтримки створюваного програми бази даних.
- •4.2.6. Розробка програм Розробка програм - проектування інтерфейсу користувача і прикладних програм, призначених для роботи з базою даних.
- •4.2.7. Створення прототипів
- •Створення прототипу - cтворення робочої моделі програми бази даних.
- •4.2.8. Реалізація Реалізація - фізична реалізація бази даних і розроблених програм.
- •4.2.10. Тестування Тестування - процес виконання прикладних програм з метою пошуку помилок.
- •Стратегії тестування
- •4.2.11. Експлуатація і супровід Експлуатація і супровід - спостереження за системою і підтримка її нормального функціонування по закінченні розгортання.
- •4.3. Загальний огляд процедури проектування бази даних
- •4.3.1. Моделювання даних
- •Критерії оцінки моделі даних
- •Концептуальне і логічне проектування
- •Злиття представлень окремих користувачів
- •Метод інтеграції представлень - злиття окремих локальних логічних моделей даних, що відбивають представлення різних груп користувачів, у єдину глобальну логічну модель даних.
- •4.4. Проектування програми
- •4.4.1. Проектування транзакцій Транзакція - одна дія чи послідовність дій, виконуваних тим самим користувачем (чи прикладною програмою), що здійснює доступ до бази даних чи зміну її вмісту.
- •4.4.2. Рекомендації з проектування користувальницького інтерфейсу
- •Легко пізнавані назви полів
- •Погоджена термінологія і скорочення
- •Погоджене використання кольорів
- •Переваги використання case-інструментів
- •4.6. Вибір скбд
- •4.6.1. Вибір оптимальної системи
- •Визначення області компетенції проведеного вивчення
- •Скорочення списку претендентів до двох-трьох продуктів
- •Оцінка продуктів
- •Проведення обґрунтованого вибору і підготовка звіту
- •4.7. Адміністрування даних і адміністрування бази даних
- •4.7.2. Задачі адміністрування даних
- •4.7.4. Задачі адміністрування бази даних
- •4.7.5. Порівняння задач адміністрування даних і бази даних
- •Питання
Стратегії тестування
Для оцінки закінченості і коректності виконання програми бази даних може використовуватися кілька різних стратегій тестування. Основні з них перераховані нижче.
"згори-вниз" тестування.
"знизу-вгору" тестування.
Тестування потоків.
Інтенсивне тестування.
Кожна з перерахованих вище стратегій тестування володіє і недоліками, і достоїнствами. При тестуванні великих систем звичайно використовується набір з декількох подібних стратегій. Різні стратегії можуть використовуватися для різних частин системи і на різних етапах загального процесу тестування.
При тестуванні системи доцільно застосувати послідовний підхід. Інакше кажучи, систему краще тестувати не як єдине ціле, утворене сукупністю всіх її модулів, а вроздріб. Цей процес варто продовжувати доти, поки всі протестовані модулі не утворять цілком готову систему. Таким чином, при виявленні помилки проблема може бути локалізована аж до останнього доданого модуля і його інтерфейсів.
"Згори-вниз" тестування починається на рівні підсистем з модулями, що представлені заглушками, тобто простими компонентами, що мають такий же інтерфейс, як модуль, але без функціонального коду. Кожен модуль низького рівня представляється заглушкою. В остаточному підсумку всі програмні компоненти заміняються фактичним кодом і знову тестуються. Перевагою цього підходу є те, що помилки проектування можуть бути виявлені ще на ранній стадії тестування, що дозволяє виключити дорогі роботи з повторного проектування і реалізації. Крім того, уже на ранній стадії створення можна одержати працюючу систему, хоча і з обмеженою функціональністю, здатну продемонструвати гнучкість обраної схеми. Недоліком цієї. стратегії тестування є необхідність створення численних заглушок модулів для моделювання низькорівневих компонентів системи. Крім того, перевірка вихідних Даних на більш високих рівнях системи може бути утруднена, і система насправді не видасть ніяких вихідних даних, якщо не організувати їхню видачу штучним шляхом.
"Знизу-вгору" тестування виконується в протилежному напрямку стосовно "згори-вниз". Воно починається з тестування модулів на найнижчих рівнях ієрархії системи, продовжується на більш високих і закінчується на найвищому рівні. Переваги і недоліки при цьому мають зворотний сенс переваг і недоліків, якими володіє стратегія спадного тестування (див. вище).
Тестування потоків - це стратегія тестування систем, що працюють у реальному масштабі часу, що звичайно складаються з великої кількості взаємодіючих процесів, керованих за допомогою переривань. Ці системи досить важко тестуються, оскільки взаємодія процесів системи залежить від часу. Стратегія тестування потоків спрямована на спостереження за окремими процесами. При цьому "потік" обробки кожної зовнішньої події "проходить" через різні системні процеси. Дана стратегія включає ідентифікацію і виконання кожного можливого "потоку" обробки в системі. Однак виконати вичерпне тестування джерел системи просто нереально через величезну кількість можливих комбінацій вхідних і вихідних умов.
Деякі системи створюються з метою роботи в конкретних режимах максимального чи мінімального навантаження. Стратегія інтенсивного тестування призначена для перевірки можливості системи справлятися з запланованим навантаженням. Таке тестування часте включає серію тестів з поступово зростаючим навантаженням і продовжується доти, поки система не вийде з ладу. Ця стратегія володіє двома основними перевагами: вона перевіряє поводження системи, а також натискає на систему, викликаючи появу збоїв, що не могли б бути виявлені в звичайних умовах експлуатації.