vchilka.in.ua 1 2 3 4

Що таке інформаційне середовище програми?


Метою програмування є опис процесів обробки даних (надалі - просто процесів): дані (data) - це представлення фактів і ідей у формалізованому вигляді, придатному для передачі і переробці в якомусь процесі, а інформація (information) - це сенс, який додається даним при їх уявленні. Обробка даних (data processing) - це виконання систематичної послідовності дій з даними. Дані представляються і зберігаються на т.зв. носіях даних. Сукупність носіїв даних, використовуваних при якій-небудь обробці даних, називатимемо інформаційним середовищем (data medium). Набір даних, що містяться в який-небудь момент в інформаційному середовищі, називатимемо станом цього інформаційного середовища. Процес можна визначити як послідовність станів деякого інформаційного середовища, що змінюють один одного.
Що таке автономна відладка програмного продукту?

Автономна відладка ПП означає послідовне роздільне тестування різних частин програм, що входять в ПП, з пошуком і виправленням в них помилок, що фіксуються при тестуванні. Вона фактично включає відладку кожного програмного модуля і відладку сполучення модулів.

При автономній відладці ПП кожен модуль насправді тестується в деякому програмному оточенні, крім випадку, коли відладжувана програма складається тільки з одного модуля. Це оточення складається [10.8] з інших модулів, частина яких є модулями відладжуваної програми, які вже відладжені, а частина - модулями, керівниками відладкою (налагоджувальними модулями, див. нижчий). Таким чином, при автономній відладці тестується завжди деяка програма (тестована програма), побудована спеціально для тестування відладжуваного модуля. Ця програма лише частково збігається з відладжуваною програмою, крім випадку, коли відладжується останній модуль відладжуваної програми. В процесі автономної відладки ПП проводиться нарощування тестованої програми відладженими модулями: при переході до відладки наступного модуля в його програмне оточення додається останній відладжений модуль. Такий процес нарощування програмного оточення відладженими модулями називається інтеграцією програми [10.1]. Налагоджувальні модулі, що входять в оточення відладжуваного модуля, залежать від порядку, в якому відладжуються модулі цієї програми, від того, який модуль відладжується і, можливо, від того, який тест пропускатиметься.

Що таке програмний продукт?

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

Що таке налагоджувальний імітатор програмного модуля?

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


    Що таке помилка в програмному продукті?

Продуктом технології програмування є ПП, що містить програми, які виконують необхідні функції. Тут під «програмою» часто розуміють правильну програму, тобто програму, що не містить помилок. Проте, поняття помилки в програмі трактується в середовищі програмістів неоднозначно. Згідно Майерсу рахуватимемо, що в програмі є помилка, якщо вона не виконує того, що розумно чекати від неї користувачеві. «Розумне очікування» користувача формується на підставі документації по застосуванню цієї програми. Отже, поняття помилки в програмі є істотно не формальним. У ПП, програми і документації взаємно пов'язані, утворюють деяку цілісність. Тому правильніше говорити про помилку не в програмі, а в ПП в цілому: вважатимемо, що в ПП є помилка (software error), якщо воно не виконує того, що розумно чекати від нього користувачеві. Зокрема, різновидом помилки в ПП є неузгодженість між програмами ПП і документацією по їх застосуванню. У роботі [1.3] виділяється в окреме поняття окремий випадок помилки в ПП, коли програма не відповідає своїй функціональній специфікації (опису, що розробляється на етапі, попередньому безпосередньому програмуванню). Така помилка у вказаній роботі називається дефектом програми. Проте виділення такому різновиду помилки в окреме поняття навряд чи виправдано, оскільки причиною помилки може виявитися сама функціональна специфікація, а не програма.


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

    програми від відмов іншої програми в мультипрограмному режимі?

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

Розрізняють два різновиди такого захисту:

простий захист від несанкціонованого доступу

захист від злому захисту.

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

Альтернативою правильного ПП є надійне ПП. Надійність (reliability) ПП - це його здатність безвідмовно виконувати певні функції за заданих умов протягом заданого періоду часу з достатньо великою вірогідністю [1.5]. При цьому під відмовою в ПП розуміють поява в ньому помилки. Таким чином, надійне ПП не виключає наявності в ньому помилок - важливо лише, щоб ці помилки при практичному застосуванні цього ПП в заданих умовах виявлялися достатньо рідко. Переконатися, що ПП володіє такою властивістю можна при його випробуванні шляхом тестування, а також при практичному застосуванні. Таким чином, фактично ми можемо розробляти лише надійні, а не правильні ПП.


Що таке інсталятор програмного продукту?

Керівництво по інсталяції ПП. Призначене для адміністраторів ПП. Воно повинне детально наказувати, як встановлювати системи в конкретному середовищі, зокрема, повинно містити опис комп'ютерно-прочитуваного носія, на якому поставляється ПП, файли, представляючі ПП, і вимоги до мінімальної конфігурації апаратури.
Що таке технологія програмування?

Відповідно до звичайного значення слова «технологія» [1.6] під технологією програмування (programming technology) розумітимемо сукупність виробничих процесів, що приводить до створення необхідного ПП, а також опис цієї сукупності процесів. Іншими словами, технологію програмування ми розумітимемо тут в широкому сенсі як технологію розробки програмних засобів, включаючи в неї всі процеси, починаючи з моменту зародження ідеї цього засобу, і, зокрема, пов'язані із створенням необхідної програмної документації. Кожен процес цієї сукупності базується на використанні яких-небудь методів і засобів, наприклад, комп'ютер (в цьому випадку говоритимемо про комп'ютерну технологію програмування). У технології програмування акцент робиться на вивченні процесів розробки ПП (технологічних процесів) і порядку їх проходження - методи і інструментальні засоби розробки ПП використовуються в цих процесах (їх застосування і утворюють технологічні процеси).
Що таке управління конфігурацією програмного продукту?

Керівництво по супроводу ПП (system maintenance guide), який описує особливості реалізації ПП (зокрема, труднощі, які довелося долати) і як враховані можливості розвитку ПП в його будові (конструкції). У нім також фіксуються, які частини ПП є аППаратно- і програмно-залежними.

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

Що таке проста і складна системи?

При розробці ПП чоловік має справу з системами. Під системою розумітимемо сукупність елементів, що взаємодіють (що знаходяться в стосунках) один з одним. ПП можна розглядати як приклад системи. Логічно зв'язаний набір програм є іншим прикладом системи. Будь-яка окрема програма також є системою. Зрозуміти систему - означає осмислено перебрати всі шляхи взаємодії між її елементами. Через обмеженість людини до перебору розрізнятимемо прості і складні системи [2.2]. Під простій розумітимемо таку систему, в якій людина може упевнено перебирати всі шляхи взаємодії між її елементами, а під складною розумітимемо таку систему, в якій він цього робити не в змозі. Між простими і складними системами немає чіткої межі, тому можна говорити і про проміжний клас систем: до таких систем відносяться програми, про які фольклор програміста стверджує, що "в кожній відладженій програмі є хоч би одна помилка".
Що таке ядро програмного продукту?

Таким чином, для забезпечення мобільності ПП потрібно вирішити два завдання:

виділення по можливості найбільшої частини програм ПП, незалежності, що володіє властивостями, від пристроїв і автономності (іншими словами, незалежною від апаратно-операційної платформи);

· забезпечення супроводженості для решти частин програм ПП.

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



    Що таке мала і велика системи?

При розробці ПП ми не завжди можемо упевнено знати про всі зв'язки між її елементами із-за можливих помилок. Тому корисно уміти оцінювати складність системи по числу її елементів: числом потенційних шляхів взаємодії між її елементами, тобто n!, де n - число її елементів. Систему назвемо малою, якщо n < 7 (6! = 720 < 1000), систему назвемо великою, якщо n > 7. При n=7 маємо проміжний клас систем. Мала система завжди проста, а велика може бути як простій, так і складною. Завдання технології програмування - навчитися робити великі системи простими.

Отримана оцінка простих систем по числу елементів широко використовується на практиці. Так, для керівника колективу вельми бажано, щоб в нім не було більше шести що взаємодіють між собою підлеглих. Вельми важливо також слідувати правилу: «все, що може бути сказане, має бути сказане в шести пунктах або менше». Цьому правилу ми прагнутимемо слідувати в справжній допомозі: всякі перерахування взаємозв'язаних тверджень (набір рекомендацій, список вимог і тому подібне) відповідним чином групуватимуться і узагальнюватимуться. Корисно йому слідувати і при розробці ПП.
Що таке оболонка програмного продукту?
Що таке життєвий цикл програмного продукту?

Під життєвим циклом ПП (software life cycle) розуміють весь період його розробки і експлуатації (використання), починаючи від моменту виникнення задуму ПП і кінчаючи припиненням всіх видів його використання [3.1-3.4]. Життєвий цикл охоплює досить складний процес створення і використання ПП (software process). Цей процес може бути організований по-різному для різних класів ПП і залежно від особливостей колективу розробників.

В даний час можна виділити 5 основних підходів до організації процесу створення і використання ПП [3.5].

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


· Дослідницьке програмування. Цей підхід припускає швидку (наскільки це можливо) реалізацію робочих версій програм ПП, що виконують лише в першому наближенні необхідні функції. Після експериментального застосування реалізованих програм проводиться їх модифікація з метою зробити їх кориснішими для користувачів. Цей процес повторюється до тих пір, поки ПП не буде достатнє прийнятно для користувачів. Такий підхід застосовувався на ранніх етапах розвитку програмування, коли технології програмування не надавали великого значення (використовувалася інтуїтивна технологія). В даний час цей підхід застосовується для розробки таких ПП, для яких користувачі не можуть точно сформулювати вимоги (наприклад, для розробки систем штучного інтелекту).

· Прототіпірованіє. Цей підхід моделює початкову фазу дослідницького програмування аж до створення робочих версій програм, призначених для проведення експериментів з метою встановити вимоги до ПП. Надалі повинна послідувати розробка ПП по встановлених вимогах в рамках якого-небудь іншого підходу (наприклад, водопаду).

· Формальні перетворення. Цей підхід включає розробку формальних специфікацій ПП і перетворення їх в програми шляхом коректних перетворень. На цьому підході базується комп'ютерна технологія (CASE-технология) розробки ПП.

Складальне програмування. Цей підхід припускає, що ПП конструюється, головним чином, з компонент, які вже існують. Має бути деяке сховище (бібліотека) таких компонент, кожна з яких може багато разів використовуватися в різних ПП. Такі компоненти називаються повторно використовуваними (reusable). Процес розробки ПП при даному підході складається швидше із збірки програм з компонент, чим з їх програмування.



следующая страница >>