Міжнародні інформаційні системи - Навчальний посібник ( Коломієць В.Ф.)

Розділ 6

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

6.1. Технологія розв'язку задач інформаційною системою

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

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

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

Структурна схема поетапної розробки програмного забезпечення (ПЗ) для вирішення ІС подана на мал. 19. Кожний з етапів має принципове значення для автоматизації вирішення задачі і буде розглянутий більш детально.

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

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

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

Постановка задачі повинна виконуватися спільно з замовниками, для яких ставиться завдання, та фахівцями з алгоритмізації. Таке поєднання фахівців дозволяє забезпечити усю глибину і повноту проробки, зробити задачу обгрунтованою, що багато в чому визначає ефективність її наступного практичного використання. Проте головна роль тут приділяється не стільки фахівцю з алгоритмізації, скільки фахівцю-замовнику в даній області, оскільки тільки він може чітко сформулювати завдання, накласти необхідні обмеження на технічні, економічні, соціальні параметри і т.д. Таких фахівців, в інтересах яких вирішується задача ІС, звичайно називають користувачами на відміну від людей, що займаються обслуговуванням обчислювальної техніки ІС – програмістів та електронників. Цей етап реалізації задач на системі потребує до себе самого серйозного відношення. Похибка, допущена тут, може звести нанівець свою подальшу роботу, що триває місяці, іноді роки. Так, практика розробки задач для вирішення ІС показала, що в середньому на розробку задачі група в складі 5 чоловік затрачає від 2 до б місяців. Сам етап постановки задачі займає за часом до 10 \% від загального процесу її автоматизації.

У процесі постановки задачі спільними зусиллями фахівців у конкретній предметній області і в області інформатики повинні бути виконані такі обов'язкові процедури:

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

2. Опис таких параметрів, як:

ціль вирішення задачі і її призначення з вказівкою органа управління, в інтересах якого буде вирішуватись дана задача;

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

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

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

очікувана періодичність вихідних результатів, припустима точність і тривалість їх дії.

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

Мал. 19. Етапи розробки програмного забезпечення для ІС

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

Формалізація задачі - обгрунтування методу її вирішення (наприклад, метод вирішення системи рівнянь, метод обчислення усереднених значень статистичних даних і інше). При цьому розгорнутий змістовний опис задачі замінюється на згорнуту формалізовану схему, у якій значеневі компоненти позначені відповідними символами. У згорнутому формалізованому вигляді поставлена задача може бути подана, наприклад, узагальненою функцією виду: Y= f(Х1, Х2... . ХN), де Y - вихідний розмір, шукана функція, Х - вхідні розміри, аргументи. Формалізована схема відбиває лише сукупність змінних задачі, її вхідні та вихідні величини, але не відбиває зв'язків між ними. Завершальною ланкою формалізації задачі є побудова математичної моделі її вирішення. Модель повинна відбивати усі необхідні перемінні та їхні взаємні зв'язки. Тільки на цих умовах можливо правильне вирішення задачі. Побудова адекватних моделей для соціально-економічних і міжнародних задач - складний і трудомісткий процес. Це пояснюється наявністю діалектичного протиріччя між вимогами, з одного боку, відповідності опису дійсності, а з іншого, аналітичної простоти одержуваної моделі для можливості її реалізації ІС . У цьому зв'язку математичне моделювання слушно називають вузькою стежкою між болотом переускладнень і пастками переспрощень. Прагнення одержати адекватну модель досліджуваного процесу звичайно призводить до її ускладнення, у той же час прості та зручні для реалізації на комп'ютері системі моделі частіше усього погано описують реальні процеси. На практиці звичайно вибирається якийсь компромісний варіант. Відзначимо лише, що при вирішенні задач на комп'ютері ІС найбільший інтерес для користувача являють математичні моделі різноманітних видів і рівнів складності. Для порівняно простих розрахункових задач вони представляються формулами, системами рівнянь, нерівностей і т.д.

Головним змістом даного етапу вирішення задачі ІС є побудова алгоритму. Поняття алгоритму є одним із найважливіших не тільки в інформатиці, але й у цілому ряді інших наук. Зупинимося на ньому докладніше.

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

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

Слово “алгоритм” походить від ALHORIZM - латинської форми написання імені великого математика IX сторіччя Аль-Хорезми, що сформулював правила виконання арифметичних дій. Спочатку під алгоритмами розуміли тільки правила виконання чотирьох арифметичних дій над багатозначними числами. Надалі це поняття почали використовувати взагалі для позначення дій, що призводять до вирішення поставленої задачі.

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

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

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

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

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

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

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

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

При упорядкуванні блок-схеми використовуються стандартні символічні позначення головних функціональних елементів обчислювального процесу: вхідні дані позначаються прямокутником, логічні умови - ромбом, введення інформації -паралелограмом і т.д.

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

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

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

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

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

Найменування

Позначення

Функціональне призначення

 

1. ПРОЦЕС

 

Виконання операцій або групи операцій, в результаті яких змінюються які-небуть величини

2. РОЗВ`ЯЗАННЯ (ЛОГІЧНА УМОВА)

 

 

Вибір напрямку алгоритму в залежності від умов

 

3. ВВЕДЕННЯ-ВИВЕДЕННЯ

 

Введення та перетворення формул які придатні для обробки. Вивід, відображення результатів обробки

 

 

4. ДОКУМЕНТ

 

 

 

Носій – папір

 

 

5. КОМЕНТАРІЙ, АНОТАЦІЯ

 

 

 

Звя`зок між елементом схеми та поясненням

 

 

6. ДИСПЛЕЙ

 

 

Введення та виведення інформації за допомогою клавіатури екранних пристроїв

7. ПУСК (ПОЧАТОК),

ЗУПИНКА (КІНЕЦЬ)

 

Початок та кінець процесів обробки

Мал. 20. Типові частини структури алгоритму

Лінійні алгоритми складаються з лінійної послідовності дій.

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

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

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

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

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

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

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

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

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

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

До мов другого рівня відносяться Автокоди, Асемблери, Макроасемблери і інші. Мови 1-го та 2-го рівнів розроблені для конкретних типів комп'ютерів і тому їх також називають машинно-орієнтованими мовами. Перевагою цих мов є висока швидкість вирішення задач і оптимальний розподіл пам'яті комп'ютера, тому що при складанні програми враховуються особливості окремих пристроїв комп'ютера. Їхньою хибою є велика працездатність при написанні і налагодженні програми. Програмуванням на машинно-орієнтованих мовах займаються переважно фахівці-програмісти. Вони складають для нових моделей машин програми, призначені для запуску комп'ютера й обслуговування процесу обчислень. Крім того, усі транслятори пишуться на машинно-орієнтованих мовах.

Третій рівень. Мови третього рівня призначені для вирішення визначеного класу задач і не залежать від конкретного типу комп’ютерів ІС. Поява мов третього рівня істотно полегшила роботу програмістів.

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

Транслятори перекладають програми мов високого рівня на машинні мови. У кожного типу комп'ютера є свій набір трансляторів, тому програма на мові високого рівня може використовуватися на будь-яких комп’ютерів ІС, що має транслятор із даної мови. Зараз існує багато мов третього рівня. Найбільшого поширення одержали в минулому: АЛГОЛ, ФОРТРАН - для математичних і фізичних моделей, КОБОЛ - для обробки економічної інформації. ПЛ/1 - велика і складна мова для наукових розрахунків і обробки великих масивів інформації, ПАСКАЛЬ - проста і компактна мова для обробки соціально-економічної інформації, інженерно-технічних та інших розрахунків. У навчальних цілях широко використовуються мови БЕЙСІК, ФОКАЛ і інші. Дані мови зручні та прості в використанні.

Велике значення для розвитку програмування мало створення мови високого рівня БЕЙСІК. В даний час БЕЙСІК є одною із головних мов у програмному забезпеченні персональних комп'ютерів. Простота й універсальність мови БЕЙСІК дали можливість непідготовленим користувачам швидко і легко оволодіти нею та застосовувати її для самостійного вирішення задач.

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

Четвертий рівень. Мови цього рівня максимально наближені до людської мови. Вони призначені для прямого спілкування людини та комп’ютера. Мови цього рівня будуть реалізовані в головному на комп’ютерах п'ятого покоління.

На мовах четвертого рівня можуть працювати як фахові програмісти, так і не знаючі основ програмування звичайні користувачі.

Процес написання програм при доброму знанні мови програмування і при наявності докладного алгоритму не є складним і займає порівняно невелику частину в загальних витратах часу на створення математичної моделі та реалізації її ІС. Труднощі виникають на етапі налагодження і дослідної реалізації програми. Ці труднощі пов'язані з необхідністю виявлення та усунення похибок, допущених на попередніх етапах. Пошук та усунення похибок являє собою складний, трудомісткий процес , що, в цілому, погано піддається автоматизації. Особливу складність тут викликає виправлення логічних похибок, допущених у ході постановки та алгоритмізації задачі. Тому даний етап потребує спільних зусиль усіх фахівців, що приймали участь у постановці, розробці та рішення задачі. Найчастіше він займає до 30 - 40\% від загального часу автоматизації вирішення задачі.

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

Програміст аналізує помилки , що виявляються, виправляє їх, вводить зміни в програму і проводить процес трансляції доти, поки комп’ютер не повідомить про відсутність помилок у програмі.

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

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

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

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

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

У процесі експлуатації програми замість даних контрольного прикладу вводяться вхідні дані поставленої задачі та проводяться розрахунки.

Після налагодження програми програміст і постановник задачі складають документацію на програму, до складу якої входять: інструкція для користувача, керівництво діяльністю програміста, оператора і т.д. Контрольний варіант разом із виданими комп'ютером ІС результатами додається до опису програми. Надалі цей варіант використовується для перевірки працездатності програми перед початком досліджень і служить як зразок завдання вихідних даних і одержання результатів. Програма звичайно зберігається на магнітній стрічці або диску разом із документацією. Експлуатація програми здійснюється користувачем самостійно або за допомогою операторів ІС.

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

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

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

6.2. Структура програмного забезпечення інформаційних систем

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

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

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

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

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

У цілому усі функції, виконувані ОС, можна розділити на три групи:

1. Організація взаємодії користувача з комп'ютером ІС;

2. Керування усією введеною в ІС інформацією;

3. Виконання прикладних програм ІС.

Третя функція пов'язана з поняттям сумісності ОС і прикладних програм. Якщо програма сумісна з ОС комп'ютера, то не виникає ніяких проблем: ОС віддасть команду виконати те, що записано в програмі. Якщо ОС і програма несумісні, комп'ютер ІС не зможе зрозуміти і виконати програму.

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

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

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

 

 

Мал. 21. Структура програмного забезпечення ІС