
Тема 4 програмне забезпечення
Поняття програмного забезпечення та його класифікація.
Системне програмне забезпечення.
Прикладне програмне забезпечення.
Інструментальне програмне забезпечення.
Мережеве програмне забезпечення.
1. Поняття програмного забезпечення та його класифікація
В основу роботи комп'ютерів покладено програмний принцип керування, який полягає у тому, що комп'ютер виконує дії за заздалегідь заданою програмою. Цей принцип забезпечує універсальність використання комп'ютера: у певний момент часу розв'язується задача відповідно до вибраної програми. Після її завершення в пам'ять завантажується інша програма і т. д.
Програма – це запис алгоритму розв'язання задачі у вигляді послідовності команд або операторів мовою, яку розуміє комп'ютер.
Програмне забезпечення (ПЗ) розглядають як сукупність програм, даних і відповідної документації, призначеної для вирішення певного кола задач, яка забезпечує використання комп'ютера в інтересах кожного її користувача. Отже, програмне забезпечення – це або дані для використання в інших програмах, або алгоритм, реалізований у вигляді послідовності інструкцій для процесора.
Теоретичні основи програмного забезпечення комп'ютерів ґрунтуються на теорії скінченних автоматів, і практично були закладені британським математиком Аланом Тюрінгом у 1936 р. Він створив так звану машину Тюрінга, математичну модель абстрактної машини, здатної виконувати послідовно операції, які переводять її з одного фіксованого стану в інший, заданий наперед. Головна ідея полягала в математичному доведенні факту, що будь-який, попередньо сформульований стан системи може бути завжди досягнутий шляхом послідовного виконання скінченного набору елементарних команд (програми).
На відміну від апаратних складових (hardware) комп'ютера, ПЗ є інформацією, яка зберігається на матеріальних носіях у вигляді файлів і може передаватись по каналах зв'язку.
До програмного забезпечення належить також уся сфера діяльності, пов'язаної з його проектуванням і розробкою, а саме:
технологія проектування програм;
методи тестування програм;
методи доведення правильності програм;
аналіз якості роботи програм;
документування програм;
розробка й використання програмних засобів, що полегшують процес проектування програмного забезпечення та ін.
Програмне забезпечення – невід'ємна частина комп'ютерної системи; це логічне продовження технічних засобів. Сфера застосування конкретного комп'ютера визначається створеним для нього ПЗ.
Програмне забезпечення прийнято класифікувати за такими ознаками:
рівнями взаємодії програм;
способом розповсюдження (доставки, оплати, обмежень у використанні);
призначенням.
Класифікація програмного забезпечення за рівнями взаємодії
Програмне й апаратне забезпечення комп'ютера працюють у нерозривному зв'язку та взаємодії, тобто багато програм працюють, базуючись на програмах іншого рівня. Така сукупність засобів і методів взаємодії між різними програмами системи називається міжпрограмним інтерфейсом. Існує розподіл ПЗ на декілька пов'язаних між собою рівнів. Вони становлять піраміду, де кожен вищий рівень ґрунтується на програмному забезпеченні попередніх рівнів: прикладний, службовий, системний і базовий рівні.
Базовий рівень
Цей рівень є найнижчим і відповідає за взаємодію з базовими апаратними засобами. Базове ПЗ міститься у складі базового апаратного забезпечення і зберігається у спеціальних мікросхемах постійного запам'ятовуючого пристрою (ПЗП), утворюючи базову систему введення-виведення BIOS. Програми і дані записуються у ПЗП на етапі виробництва й не можуть бути змінені у процесі експлуатації.
Системний рівень
Системний рівень є перехідним. Програми цього рівня забезпечують взаємодію інших програм комп'ютера з програмами базового рівня й безпосередньо з апаратним забезпеченням. Від програм цього рівня залежать експлуатаційні показники всієї обчислювальної системи. При під'єднанні до комп'ютера нового обладнання на системному рівні має бути встановлена програма-драйвер для забезпечення решти програм взаємозв'язком із цим пристроєм.
Інший клас програм цього рівня відповідає за взаємодію з користувачем. Вони дають змогу вводити дані в обчислювальну систему, керувати її роботою й отримувати результат у зручній формі.
Сукупність ПЗ цього рівня утворює ядро операційної системи комп'ютера, яке виконує функції керування пам'яттю, процесами введення-виведення, файловою системою, здійснює облік використання ресурсів, обробку команд тощо.
Службовий рівень
Програми цього рівня взаємодіють як з програмами базового рівня, так і з програмами системного рівня. їх призначення – автоматизація робіт з перевірки та налаштування комп'ютерної системи, а також покращання функцій системних програм. Деякі службові програми одразу додають до складу операційної системи, доповнюючи її ядро, але більшість є зовнішніми і розширюють функції операційної системи.
Програмами цієї категорії є: диспетчери файлів (файлові менеджери), засоби стиснення даних (архіватори), засоби діагностики, програми інсталяції, засоби комунікації, засоби перегляду та відтворення, засоби комп'ютерної безпеки.
Прикладний рівень
Програмне забезпечення становить комплекс прикладних програм, за допомогою яких виконуються конкретні завдання (від виробничих до творчих, розважальних та навчальних). Між прикладним і системним ПЗ є тісний взаємозв'язок. Він полягає у тому, що універсальність обчислювальної системи, доступність прикладних програм і широта функціональних можливостей комп'ютера безпосередньо залежать від типу операційної системи, системних засобів, що містяться в її ядрі, та взаємодії комплексу людина – програма – обладнання.
До програм цього рівня належать: текстові редактори, текстові процесори, графічні редактори, растрові та векторні графічні редактори, системи управління базами даних (СУБД), електронні таблиці, системи автоматизованого проектування (CAD-системи), настільні видавничі системи, редактори HTML (веб-редактори), браузери (засоби перегляду веб-документів), системи автоматизованого перекладу, інтегровані системи діловодства, бухгалтерські системи, фінансові аналітичні системи, експертні системи, геоінформаційні системи (ГІС), системи відеомонтажу, інструментальні системи програмування тощо.
Класифікація ПЗ за способом розповсюдження
За способом розповсюдження (доставки, оплати, обмеження у використанні) вирізняють такі групи програмного забезпечення:
комерційне (commercial software);
безкоштовне (freeware);
вільне (free software);
відкрите (open source software);
умовно безкоштовне (shareware);
позаринкові програми (abandonware);
пропрієтарне (proprietary software);
програмне забезпечення, що містить рекламу (adware).
Розглянемо детальніше кожну з груп.
Комерційне програмне забезпечення (commercial software) створює комерційна організація з метою одержання прибутку від його використання іншими, наприклад шляхом продажу екземплярів.
Перевагами комерційного ПЗ є:
технічна підтримка продукту, тобто для продуктів, що розповсюджуються на комерційній основі, діють безкоштовні служби підтримки, що мають збільшити рівень довіри у клієнтів і потенційних покупців;
спектр виконуваних завдань. Оскільки основним рушійним фактором створення комерційного ПЗ є отримання прибутку, то комерційні програмні продукти першими заповнюють вільні ніші та пропонують варіанти вирішення завдань одразу, в міру появи вакууму в будь-якому секторі ринку;
програми "на замовлення". Окремий вид комерційних програм, коли роботу з їх написання оплачує безпосередньо замовник. Такі програми найчастіше позбавлені всіх переваг комерційних продуктів, адже мають обмежений бюджет, але більш адаптовані до вимог замовника.
Безкоштовне програмне забезпечення (freeware) – це програмне забезпечення, ліцензійна угода якого не потребує виплат правовласнику. Таке програмне забезпечення може безкоштовно поширюватися серед всіх бажаючих.
Вільне програмне забезпечення (free software) – програмне забезпечення, щодо якого користувач володіє "чотирма свободами", які сформулював у 1970-ті роки Річард Столман. Ці критерії обумовлюють ті права, які автор вільної програми передає користувачеві. Зокрема, до них належить такі:
програму можна використовувати з будь-якою метою;
можна вивчати, як програма працює, й адаптувати її для своїх цілей. Умовою цього є доступність вихідного тексту програми;
можна поширювати копії програми;
програму можна поліпшувати й публікувати власну поліпшену версію для того, щоб принести користь усьому співтовариству.
Щоб ПЗ стало вільним, його правовласники мають дати користувачу всі чотири перераховані вище свободи дій. Це досягається шляхом випуску вихідного коду програмного забезпечення під однією з особливих ліцензій, що називаються "вільними ліцензіями". При цьому автор програми зберігає свої авторські права.
В українській мові є різні слова для позначення безкоштовного й вільного ПЗ. Отже, мовної проблеми розрізнення безкоштовних та вільних програм немає. Однак багато текстів на тему програмного забезпечення складаються англійською, у якій слова "вільний" і "безкоштовний" перекладаються однаково, як "free". Це створює плутанину в іменуванні цих видів ПЗ. У процесі розв'язання такої проблеми для іменування безкоштовного ПЗ з'явився термін freeware, а для іменування вільного й відкритого – FOSS (free and open source software). Однак фонд вільного ПЗ рекомендує іменувати вільне програмне забезпечення як free software.
Відкрите програмне забезпечення (open source software), тобто ПЗ із "відкритим" вихідним кодом. Вихідний код створюваних програм загальнодоступний для перегляду та зміни. Це дає змогу всім бажаючим використовувати його для своїх потреб і, можливо, допомогти в розробці відкритої програми.
"Відкрита" ліцензія не потребує, щоб ПЗ завжди надавалося безкоштовно. Переважна більшість відкритих програм є одночасно "вільними", і навпаки, оскільки визначення відкритого й вільного ПЗ близькі, а більшість ліцензій відповідають обом типам.
Відмінність між відкритим і вільним ПЗ полягає у пріоритетах. Прихильники відкритого ПЗ наголошують на ефективності відкритих вихідних кодів як методу розробки. Прихильники вільного враховують ідеологічні міркування і вважають, що саме права на поширення, модифікацію й вивчення програм є головними його перевагами.
Умовно безкоштовні програми (shareware) – це програми, які вільно поширюються з метою ознайомлення. Якщо користувачу програма подобається, то він може оплатити вартість реєстрації (як правило, вона невисока) і одержати пароль або "ключ", введення якого перетворює пробну програму в повнофункціональну. Зареєстровані користувачі також одержують право на безкоштовну підтримку й консультації від власників.
Основний спосіб поширення shareware-програм – каталоги програмного забезпечення або реклама в пошукових системах. Прикладами таких програм є: система оптичного розпізнавання тексту ABBYY Fine Reader, емулятор CD та DVD Alcohol 120 %, перекладач PROMT Pro та ін.
Позаринкові програми (abandonwarе). Як правило, це колишні комерційні програми, які унаслідок низки причин перестають постачати на ринок.
ПЗ, яке більше не виставляє на продаж компанія-виробник і від якого виробник більше не отримує доходів, поширюється власником авторських прав на безоплатній основі, але із зобов'язанням заборони продавати й навіть без права подальшого безкоштовного тиражування.
Пропрієтарне програмне забезпечення (proprietary) розповсюджується з умовами, за якими забороняється його вільне подальше поширення, копіювання, модифікація, використання одержувачем у власному ПЗ, вивчення, декомпіляція, або які потребують для таких дій спеціальної окремої угоди з постачальником чи виробником ПЗ.
Запобігання використанню, копіюванню чи модифікації можуть бути досягнуті правовими або технічними засобами. Останні містять обмеження доступу до вихідного коду; правові – комерційну таємницю, копірайт і патенти.
Нині більшість ПЗ для масового застосування є пропрієтарним (наприклад, практично все ПЗ фірми Microsoft, у тому числі операційна система Windows та офісний пакет Microsoft Office).
Не слід плутати пропрієтарне ПЗ з комерційним або платним – це зовсім різні поняття. Наприклад, інтернет-браузер Microsoft Internet Explorer є безкоштовним, але при цьому пропрієтарним, а операційна система RedHat Linux – комерційною та платною, але не пропрієтарною.
ПЗ, що містить рекламу (adware), – вид ПЗ без обмежень функціональності, але із примусовим показом реклами, що може завантажуватися через Інтернет без відома користувача. Вмикається модуль фонового завантаження реклами, який містить небезпеку несанкціонованого дистанційного контролю комп'ютера. Антивірусні програми часто класифікують цей механізм як "троянського коня".
Прикладом такої програми може бути "рідний" клієнт ICQ (на відміну, наприклад, від клієнтів QIP, Miranda IM).
Класифікація програмного забезпечення за призначенням
За призначенням ПЗ поділяється на:
системне (загальне, або базове) ПЗ. Це сукупність програм для забезпечення ефективної роботи комп'ютера та комп'ютерних мереж;
прикладне. Це комплекс програм для вирішення задач певного класу конкретної предметної сфери;
інструментальне, призначене для використання під час проектування, розробки й супроводу програм.
Варто зауважити, що стрімкий розвиток і збільшення сфер застосування обчислювальної техніки прискорили процес еволюції програмного забезпечення, що приводить до зміни його класифікації.