Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет icon

Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет




НазваКонспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет
Сторінка19/19
Дата04.06.2013
Розмір1.62 Mb.
ТипКонспект
1   ...   11   12   13   14   15   16   17   18   19
^

4.8 Написання надійних програм



Помилки неминуче супроводжують будь-яку складну програму. Самі неприємні, дорогі помилки це ті, які допущені при визначенні основних завдань і цілей додатка, при проектуванні структури його керування й потоків передачі даних, а також помилки, пов'язані з невірною реалізацією алгоритмів. Часто вони не проявляються безпосередньо у вигляді збоїв у роботі програми, а виявляються після досить тривалого використання додатка й вимагають для свого виправлення істотних змін у проекті й програмі. Їх корінь може мати як об'єктивну природу (складність розв'язуваних завдань), так і суб'єктивну (нерозуміння замовником того, що йому необхідно). Як подолати такі помилки?

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

Одним із факторів, що впливають на надійність програм, є сама мова програмування. Відомо, що мова, у якій є оголошення змінних за замовчуванням, дозволені перетворення даних за замовчуванням у процесі обчислень, немає строгого контролю типів, - така мова є ненадійною, у ній значно легше створити ненадійну програму, яка містить помилку, що важко виявляється. Мову VBA важко вважати надійною мовою, вона скоріше займає по шкалі надійності серединне положення. Багато в чому, це пов'язане з історією його виникнення. Саме тому необхідно вживати ряд заходів для підвищення надійності. Звернімо увагу на деякі з них:

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

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

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

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

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

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



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

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

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

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

Частина помилок програми ловиться автоматично ще на етапі компіляції. Сюди ставляться всі синтаксичні помилки, помилки невідповідності типів і деякі інші. Однак синтаксично коректна програма має потребу в налагодженні, оскільки, хоча результати обчислень й отримані, але вони не відповідають необхідним специфікаціям. Найчастіше, ще не налагоджена програма  на одних вихідних даних працює правильно, на інші - дає помилковий результат. Мистецтво налагодження полягає в тому, щоб виявити всі ситуації, у яких робота програми призводить до помилкових обчислень. 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 с., ил.



Навчальне видання


Організація баз даних та знань

Конспект лекцій

для студентів спеціальності

080402 – Інформаційні технології проектування

денної форми навчання


Відповідальний за випуск зав.секцією ІТП кафедри інформатики, к.т.н., доц. І.В. Баранова


Редактор Н.М. Мажуга

Комп’ютерне верстання А.В. Нені


Підписано до друку 10.06.2009, поз

Формат 60х84/16. Папір офс. Гарнітур Times New Roman Cyr. Друк офс.

Ум. друк. арк. 11,63 Обл.-вид.арк. 7,56.

Тираж 50 пр. Собівартість вид.

Зам. №


Видавництво СумДУ при Сумському державному університеті

40007, м. Суми, вул. Римського-Корсакова, 2

Свідоцтво про внесення суб’єкта видавничої справи до Державного реєстру ДК №3062 від 17.12.2007 р.

Надруковано у друкарні СумДУ

40007, м. Суми, вул. Римського-Корсакова, 2.

1   ...   11   12   13   14   15   16   17   18   19

Схожі:

Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Сумський державний університет 2012 Міністерство освіти і науки, молоді та спорту України Сумський державний університет
Внутрішній економічний механізм підприємства: конспект лекцій / укладач Н. В. Мішеніна.– Суми : Сумський державний університет, 2012....
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2010 міністерство освіти І науки україНи
Затверджено на засіданні кафедри фінансів як конспект лекцій з дисципліни "Інформаційні системи і технології у фінансах"
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет до друку та в світ дозволяю на підставі «Єдиних правил»
Методи прийняття управлінських рішень. Конспект лекцій / Укладач Д. О. Смоленніков. – Суми: Вид-во СумДУ, 2008. – 89 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Внутрішній економічний механізм підприємства: Конспект лекцій/ Укладач І. В. Новикова. – Суми: Вид-во СумДУ, 2009. – 185с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україНи Сумський державний університет Менеджмент персоналу
Менеджмент персоналу: конспект лекцій / Укладач: К. В. Ілляшенко. – Суми: Вид-во СумДУ, 2010. – 78с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Психологія творчості : Конспект лекцій / Укладач О. А. Кривопишина.– Суми: Вид-во СумДУ, 2009.– 81 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Психологія творчості : Конспект лекцій / Укладач О. А. Кривопишина.– Суми: Вид-во СумДУ, 2009.– 81 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет граматичні таблиці з української мови для студентів-іноземців підготовчого відділення Суми Видавництво СумДУ
Граматичні таблиці з української мови для студентів-іноземців підготовчого відділення / Уклад.: Н. О. Ворона, Т. О. Дегтярьова, Н....
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет історія України
України: навчальні матеріали для студентів-іноземців підготовчого відділення / Укладачі: М. С. Казанджиєва, О. П. Коньок, Н. О. Тубол,...
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет медичний інститут кафедра інфекційних хвороб І епідеміології
Методичні рекомендації до семінарських занять лікарів-інтернів спеціальності “Інфекційні хвороби” / Укладачі М. Д. Чемич, Н.І. Ільїна,...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи