Основні поняття програмного забезпечення
Можливості комп’ютера як технічної основи системи обробки даних пов’язані з використанням програмного забезпечення (програмами).
Програма –цеупорядкована послідовність команд комп’ютеру для вирішення задачі.
Програмне забезпечення –цесукупність комп’ютерних програм і документальних засобів для створення й експлуатації систем опрацювання даних.
Програми призначені для комп’ютерної реалізації задач. Терміни задача і додаток мають широке вживання в контексті інформатики і програмного забезпечення.
Задача – це проблема, що підлягає вирішенню.
Додаток (або застосунок)– програмна реалізація розв’язання задачі на комп’ютері.
Таким чином, задача означає проблему, що підлягає реалізації з використанням засобів інформаційних технологій, а додаток – реалізоване на комп’ютері рішення задачі. Терміни додаток, застосунок є синонімами слова програма, використовуються для того, щоб підкреслити їх залежність від базового програмного забезпечення.
Існує багато різноманітних класифікацій задач. З позицій специфіки розробки і виду програмного забезпечення наведемо два класи задач – технологічні та функціональні.
Технологічні задачі ставляться і зважуються при організації технологічного процесу обробки інформації на комп’ютері. Технологічні задачі є основою для розробки сервісних засобів програмного забезпечення у вигляді утиліт, сервісних програм, бібліотек процедур тощо, які застосовуються для забезпечення працездатності комп’ютера, розробки інших програм або обробки даних функціональних задач.
Функціональні задачі вимагають рішення під час реалізації функцій управління в рамках інформаційних систем предметних областей. Наприклад, управління діяльністю торгового підприємства, планування випуску продукції, управління перевезенням вантажів тощо. Функціональні задачі в сукупності утворюють предметну область і цілком визначають її специфіку.
Предметна область – це сукупність пов’язаних між собою функцій, задач управління, за допомогою яких досягається виконання поставлених цілей.
Процес створення програмвключає таку послідовність дій:
q Постановка задачі.
q Створення алгоритму рішення задачі.
q Написання програми.
Постановка задачі – це точне формулювання вирішення задачі на комп’ютері з описом вхідної та вихідної інформації.
Постановка задачі – узагальнений термін, що означає визначеність змістовного аспекту обробки даних. Постановка задачі пов’язана з конкретизацією основних параметрів її реалізації, визначенням джерел і структурою вхідної і вихідної інформації, яку потребує користувач.
До основних характеристик функціональних задач, що уточнюються в процесі її формалізованої постановки, належать:
- мета або призначення задачі, її місце і зв’язки з іншими задачами;
- умови рішення задачі з використанням засобів ПК;
- зміст функцій обробки вхідної інформації при рішенні задачі;
- вимоги до періодичності рішення задачі;
- обмеження по термінах і точності вихідної інформації;
- склад і форма представлення вихідної інформації;
- джерела вхідної інформації для рішення задачі;
- користувачі задачі (хто здійснює її рішення і користується результатами рішення).
Вихідна інформація по задачі може бути представлена у вигляді документів (типу лістинга або машинограми), сформованих кадрів – відеограми на екрані монітора, файлу бази даних, вихідного сигналу пристрою управління.
Вхідна інформація по задачі визначається як дані, що надходять на вхід задачі та використовуються для її рішення. Вхідною інформацією є первинні дані документів ручного заповнення, інформація, збережена у файлах бази даних (результати вирішення інших задач, нормативно-довідкова інформація (класифікатори, кодифікатори, довідники), вхідні сигнали від датчиків.
Алгоритм – це система точно сформульованих правил, що визначає процес перетворення припустимих вхідних даних (вхідної інформації) у бажаний результат (вихідну інформацію) за кінцеве число кроків.
Алгоритм розв’язання задачі має ряд обов’язкових властивостей:
q дискретність – процес опрацювання даних відбувається поетапно, у описується у формі послідовності окремих простих команд, кроків;
q визначеність алгоритму – однозначність виконання кожного визначеного кроку перетворення інформації;
q результативність – певний результат одержують при припустимих вихідних даних за скінченну кількість кроків;
q масовість – придатність алгоритму для вирішення наперед визначеного класу задач.
В алгоритмі відображаються логіка і спосіб формування результатів рішення з указівкою необхідних розрахункових формул, логічних умов, співвідношень для контролю вірогідності вихідних результатів. В алгоритмі повинні бути передбачені всі ситуації, що можуть виникнути в процесі рішення комплексу задач.
Алгоритм вирішення комплексу задач і його програмна реалізація тісно взаємозалежні.
Програмування – це теоретична і практична діяльність, пов’язана зі створенням програм. Програмування є збірним поняттям і може розглядатися і як наука, і як мистецтво, на цьому заснований науково-практичний підхід до розробки програм.
Програма – результат інтелектуальної праці, для якої характерна творчість, а вона, як відомо, не має чітких границь. У будь-якій програмі присутня індивідуальність її автора, вона відбиває визначений ступінь мистецтва програміста. Разом з тим програмування припускає і рутинну працю, що може і повинна мати чіткий регламент виконання і відповідати стандартам.
Програмування базується на комплексі наукових дисциплін, спрямованих на дослідження, розробку та застосування методів і засобів розробки програм (спеціалізованого інструментарію створення програм). При розробці програм використовуються ресурсномісткі та наукомісткі технології, висококваліфікована інтелектуальна праця.
Основна категорія фахівців, зайнятих розробкою програм, – це програмісти. Вони неоднорідні за рівнем кваліфікації, а також за характером своєї діяльності. Найбільш часто програмісти поділяються на системних і прикладних.
Системний програміст займається розробкою, експлуатацією і супроводом системного програмного забезпечення, що підтримує працездатність комп’ютера і створює середовище для виконання програм, які забезпечують реалізацію функціональних задач.
Прикладний програміст здійснює розробку і налагодження програм для вирішення функціональних задач.
В умовах створення великих за масштабами і функціями обробки програм з’являється нова кваліфікація – програміст-аналітик, що аналізує і проектує комплекс взаємозалежних програм для реалізації функцій предметної області.
У процесі створення програм на початковій стадії беруть участь і фахівці – постановники задач.
Більшість інформаційних систем засновано на роботі з базами даних. Якщо база даних є інтегрованою, що забезпечує роботу з даними багатьох додатків, виникає проблема організаційної підтримки бази даних, що виконується адміністратором бази даних.
Основним споживачем програм є кінцевий користувач, що, як правило, відноситься до категорії користувачів-непрограмістів. Кінцевий користувач не є фахівцем у сфері програмування, тобто не володіє методами і технологією проектування і створення програм, але має елементарні знання і навички роботи з ПК.