Смекни!
smekni.com

Організація баз даних та знань (стр. 26 из 26)

· простежте, щоб всі прапорці на вкладці Editor з меню Tools|Options були включені. Автоматична перевірка синтаксису в процесі написання програм, підказка про значення змінних, підказка про параметри функції, - всі вкрай корисні властивості. Особливу увага звертаємо на прапорець "Require Variable Declaration", при включенні якого в кожен модуль вставляється опція Option Explicit, що примушує явно повідомляти всі змінні. Із цим включеним прапорцем у мови VBA стає одним недоліком менше.

· при оголошенні змінних намагайтеся вказати точний тип змінної й об'єкта. Уникайте оголошень типу Variant й Object. У цьому випадку на Вашій стороні буде контроль типів, що дозволить уникнути багатьох можливих помилок.

· при оголошенні процедур явно вказуйте оператори ByRef й ByVal, пам’ятайте про особливості передачі аргументів по посиланню в VBA.

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

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

4.9 Мистецтво налагодження

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

Мистецтво тестера полягає в тому, щоб створити по можливості повну систему тестів, що перевіряє всі можливі галузі обчислень. Пояснимо це на найпростішому прикладі. Нехай програма знаходить суму перших N елементів масиву X, що містить M елементів. Крім "нормального" тесту, що перевіряє ситуацію, у якій 1<N<M, варто перевірити й крайні випадки: N=1, N=M, N=0, N<0, N>M. Але це простий випадок, а цикли звичайно вкладені, і усередині них виробляється розбір випадків, усередині яких свої цикли.

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

Засоби налагодження

Частина помилок програми ловиться автоматично ще на етапі компіляції. Сюди ставляться всі синтаксичні помилки, помилки невідповідності типів і деякі інші. Однак синтаксично коректна програма має потребу в налагодженні, оскільки, хоча результати обчислень й отримані, але вони не відповідають необхідним специфікаціям. Найчастіше, ще не налагоджена програма - на одних вихідних даних працює правильно, на інші - дає помилковий результат. Мистецтво налагодження полягає в тому, щоб виявити всі ситуації, у яких робота програми призводить до помилкових обчислень. VBA має досить витончені засоби, призначеними для налагодження програм, тобто для виявлення помилок у програмах (тестування) і їхнього виправлення. Є дві групи засобів VBA, що допомагають програмістові виявити й виправити помилки:

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

2. Друга група засобів дозволяє контролювати зміни стану обчислювального процесу (значень змінних і властивостей об'єктів) у процесі виконання. І тут можна вмішатися й змінити стан, залежно від того, як ідуть справи, нові значення для тих або інших змінних.

У ході налагодження програма може перебувати в одному з трьох станів: проектування, обчислення й переривання. Закінчивши проектування, можна запустити програму на виконання. Перервавши виконання програми в заданій точці, перейшовши в стан переривання, можна проконтролювати значення змінних і властивостей об'єктів у даній точці й, якщо потрібно, змінити ці значення "вручну". При цьому можна змінити порядок виконуваних операторів і редагувати програмний текст перед продовженням обчислення. Перехід зі стану обчислення в стан переривання може відбуватися через різні причини, наприклад, по досягненні точки переривання, при виконанні однієї із численних умов переривання, через покрокове виконання програми.

4.10 Доказ правильності програм

Ми вже зазначили, що налагодження, засноване на побудові системи тестів, не може довести правильність програми. Тому в теоретичному програмуванні були початі більші зусилля з розроблення методів доказу правильності програм, такі ж строгі, як і методи доказу правильності теорем. На практиці ці методи не одержали широкого поширення з двох причин. По-перше, побудувати доказ правильності програми складніше, ніж написати саму програму. По-друге, помилки в доказі настільки ж можливі, як й у самій програмі. Проте, знання основ доказу правильності програм повинне бути частиною створення програміста.

Нехай P(X,Y) - програма, із заданими вхідними даними X і результатами Y. Предикат Q(X), визначений на вхідних даних, будемо називати предумовою програми P, а предикат R(X,Y), що пов'язує вхідні і вихідні змінні будемо називати постумовою програми P. Будемо також припускати, що в ході своєї роботи програма не міняє своїх вхідних змінних X.

Програма P(X,Y) коректна стосовно предумови Q(X) і постумови R(X,Y), якщо з істинності Q(X) до початку виконання програми необхідно, щоб, будучи запущеною, програма завершила свою роботу й по її завершенню предикат R(X,Y) буде істиною Умову коректності записують у вигляді тріади (тріади Хоора) - Q(X) {P(X,Y)} R(X,Y)

Вже з цього визначення стає ясно, що говорити про правильність треба не взагалі, а стосовно заданих специфікацій, наприклад, у вигляді предумови й постумови. Довести правильність тріади для складних програм, як уже зазначалось, досить складно. Один з методів (метод Флойда) полягає в тому, що програма розбивається на ділянки, розмічені предикатами - Q1, Q2, …QN, R... Перший із предикатів представляє предумову програми, останній - постумову. Тоді доказ коректності зводиться до доказу коректності послідовності тріад:

Q1{P1}Q2; Q2{P2}Q3; …QN{PN}R

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

Список використаної літератури

1. К. Дж. Кейт Введення в системи баз даних/ Пер. с англ. 8-е изд. М.: Издательский дом «Вильямс», 2006.– 1328 с.

2. Пушников А.Ю. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие/ Изд. Башкирского ун-та. - Уфа, 1999. - 108 с.

3. Пушников А.Ю. Введение в системы управления базами данных. Часть 2: Нормальные формы отношений и транзакции: Учебное пособие/Изд. Башкирского ун-та. - Уфа, 1999. 138 с.

4. Мартин Грубер. Понимание SQL. /Пер. Лебедева В.Н. М., 1993.– 291 с.

5. Томас Коннолли, Каролин Бегг Базы данных. Проектирование, реализация и сопровождение. Теория и практика.– 3-е изд. М.: Издательский дом «Вильямс», 2003.1436 с.

6. Джен Л. Харрингтон Проектирование реляционных баз даннях. - М.: Издательство «Лори», 2006.- 230 с.

7. Киммел, Пол Освой самостоятельно программирование для Microsoft Access 2002 за 24 часа / Пер. с англ.- М.: Издательский дом «Вильямс», 2003.- 480 с.: іл.- парал. тит. англ.

8. Кириллов В.В. Основы проектирования реляционных баз данных: Учебное пособие. СПб.: ИТМО, 1994. – 90 с.

9. В.В. Кириллов, Г.Ю. Громов. Учебное пособие по SQL: Структурированный язык запросов (SQL). http://www.citforum.ru/database/sql_kg/index.shtml

10. Пасічник В.В. Організація баз даних та знань: підручник для ВНЗ/ В.В. Пасічник, В.А. Резніченко.-К.: Видавнича група BHV,2006.-384с.

11. Бекаревич Ю.Б., Пушкина Н.В. Microsoft Access 2000.- СПб.: БХВ – Санкт- Петербург, 1999.- 480 с., ил.