ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Структурне програмування: передумови і призначення; основні критерії оцінки якості програми для ЕОМ
         

     

    Інформатика, програмування

    МІНІСТЕРСТВО ОСВІТИ І НАУКИ РФ

    АСТРАХАНСЬКИЙ державний педагогічний університет

    Структурне програмування: передумови та призначення структурного програмування, основні критерії оцінки якості програми для ЕОМ.

    Реалізація структурного програмування мовою «Е-практикуму».

    Виконав: студент V курсу додаткової спеціальності "інформатика"

    Безніско Євген.

    Астрахань - 1999

    Передумови і призначення структурного програмування.

    Традиційна технологія програмування формувалася на зоріобчислювальної техніки, коли в розпорядженні користувачів булиобмежені ресурси ЕОМ, а розробник програм був в той же час іголовним її користувачем. У цих умовах головна увага зверталася наотримання ефективних програм в розумінні оптимального використання ресурсів
    ЕОМ.

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

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

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

    Проте уявлення про структурному програмуванні, як пропрограмуванні без використання оператора GOTO, є помилковим.
    Наприклад, Хоор визначає структурний програмування як "систематичневикористання абстракції для управління масою деталей і спосібдокументування, який допомагає проектувати програму ".

    Структурне програмування можна тлумачити як" проектування,написання та тестування програми відповідно до заздалегідь визначеноїдисципліною ".

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

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

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

    Нарешті, структурний програмування покликане поліпшити ефективністьпрограм.

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

    Основні критерії оцінки якості програми для ЕОМ.

    Відомо, що один і той же алгоритм може бути реалізований на ЕОМрізними способами, тобто може бути складено кілька різнихпрограм, що вирішують одну і ту ж задачу.

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

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

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

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

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

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

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

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

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

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

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

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

    6. Простота і ефективність. Програма повинна бути просто організована.
    Це може проявлятися і в структурі програми, і у використанні простих інайбільш природних засобів мови програмування, і в перевазіпростих структур даних і т.п.

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

    Реалізація структурного програмування мовою

    «Е-практикуму».

    До основних методів структурного програмування відноситься, перш заза все, відмова від безсистемного вживання оператора GOTO іпереважне використання інших структурованих операторів, методиспадного проектування розробки програми, ідеї покрокової деталізаціїі деякі інші угоди, касающіесся дисципліни програмування.

    Будь-яка програма, відповідно до структурним підходом допрограмування, може бути побудована тільки з використанням трьохосновних типів блоків.

    1. Функціональний блок, який на блок-схемі зображується у виглядіпрямокутників з одним входом і одним виходом:

    функціональному блоці в мовах програмування відповідають операторивведення та виведення або будь-який оператор присвоювання.

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

    2. Умовна конструкція. Цей блок включає перевірку деякогологічного умови (P), залежно від якого виконується або один
    (S1), або інший (S2) оператори:

    Мовою "Е-практикуму":

    . якщо

    . . то

    . . інакше

    . всі

    3. Блок узагальненого циклу. Цей блок забезпечує багаторазовеповторення виконання оператора S поки виконано логічне умова P:

    Мовою "Е-практикуму" цикли реалізуються 2 способами. Цикл зпараметром:

    . НЦ для від до

    . .

    . .

    . . ...

    . КЦ

    Цикл з передумовою:

    . НЦ поки

    . .

    . .

    . . ...

    . КЦ

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

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

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

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

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

    Мовою "Е-практикуму" послідовну деталізацію можна реалізуватиу вигляді допоміжного алгоритму (підпрограми, процедури, функції).

    ... нач

    . ...

    . вспомогательний_алгорітм (...)

    . ... кон алг [] вспомогательний_алгорітм (...) дано ... треба нач

    . ... кон

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

    S1

    S2

    S

    P

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status