На рис.1 представлена класифікація програмного забезпечення для комп'ютера.
Програмне забезпечення умовно можна розділити на 3 класи: системне ПО, прикладне ПО і інструментальне ПО.
Системне програмне забезпечення, в свою чергу, складається з базового ПО і сервісного ПО.
Базове ПО поставляється разом з комп'ютером та забезпечує його працездатність. До складу базового ПО входить операційна система, операційна оболонка і мережеві програмні засоби.
Операційна система призначена:
для запуску і нормальної роботи комп'ютера,
для функціонування інших програм на комп'ютері,
для діагностики і контролю працездатності блоків і вузлів комп'ютера,
для виконання інших допоміжних технологічних процесів.
В даний час розроблено велику кількість ОС, що розрізняються за можливостями їх функціонування: в режимах: одно- і багатокористувацьких, одно- і багатозадачних, що підтримують мережеві режими та ін. Широке застосування знайшли такі ОС: Windows, Linux, Mac OS, NetWare, OS / 2, Solaris, QNX, MS DOS та ін.
Оболонка ОС призначена для комфортного спілкування користувача з ЕОМ. Вона знімає проблему управління комп'ютером за допомогою набору команд в командному рядку і їх запуску на виконання. Оболонка ОС реалізує текстовий або / і графічний інтерфейс. Наприклад, в ОС MS DOS в якості такої надбудови виступає програма-оболонка Norton Commander, що реалізує текстовий інтерфейс у вигляді двох таблиць з директоріями файлової системи, а в ОС Windows (і Mac OS) інтерфейс оболонки - графічний; є також текстовий інтерфейс, реалізований програмою Windows Commander.
Мережева ОС забезпечує роботу комп'ютера в мережі і підтримує всі мережеві служби - електронну пошту, обмін файлами, доступ до сайтів, спілкування між клієнтами через Інтернет тощо.
Сервісне ПО розширює можливості комп'ютера і може набуватися за окрему плату або в подальшому поставлятися через Інтернет (для зареєстрованих користувачів).
В даний час такі відомі операційні системи як Windows XP, MAC OS і деякі інші включають в себе всі перераховані вище компоненти системного ПЗ, будучи по суті комплексним системним ПО.
Прикладне програмне забезпечення призначене для розв'язання різноманітних задач з конкретних предметних областей.
ПО загального призначення зазвичай комплектується в пакетному варіанті. Наприклад, для ОС Windows є пакет прикладних програм Microsoft Office, що включає програмні засоби для створення текстових документів (Word), електронних таблиць (Excel), презентацій (Power Point), публікацій (Publisher), бази даних (Access), для підготовки і редагування Web -документів (FrontPage).
У цей пакет також входить ряд додаткових програмних засобів: Picture Manager для перегляду, систематизації та редагування графіки, Document Imaging для перегляду, читання і розпізнавання тексту в графічних документах і факси, Document Scanning для сканування багатосторінкових документів і розпізнавання тексту в графічних документах, файл бібліотеки картинок і ін.
ПО мультимедіа призначене для створення і використання двовимірної і тривимірної графіки, анімації, аудіо і відео файлів. Представниками цих ПЗ є широко відомі програмні комплекси Adobe Photoshop для створення і редагування двовимірної графіки, 3D Studio Max для тривимірного моделювання та проектування, Macromedia Flash для анімації і мультиплікації. Для обробки і редагування звуку використовуються популярні програми Nero, Audio Editor Gold, для відтворення звуку і відео Windows Media Player, QuickTime Player і ін.
Проблемно-орієнтоване ПО мабуть найпоширеніший підклас прикладних програмних засобів. Сюди відносяться пакети програм для управління виробництвом, ведення бухгалтерського обліку, управління кадрами, управління матеріальними цінностями та ін.
Великий спектр прикладних програм розроблений в якості інформаційних систем (див. "Інформатика і інформація" ), Куди відносяться і інформаційно-пошукові, і видавничі та інші системи.
Інструментальне програмне забезпечення призначене для розробки нових програм і програмних комплексів.
Безліч різних додатків на комп'ютері створюється за допомогою мов і систем програмування.
Мова програмування - це формалізований мову опису алгоритмів, використовуваних для вирішення різних завдань на комп'ютері.
У процесі становлення і розвитку обчислювальної техніки виникали і розвивалися також мови програмування. Деякі з них потім змінювалися, трансформувалися, інтегрувалися з іншими, деякі вмирали зовсім. Зараз у програмістів є багатий арсенал мов програмування на всі випадки програмістської життя: Assembler, Basic, C ++, Delphi, Fortran, Java, Pascal, та ін. Кожен з перерахованих мов програмування має цілий ряд модифікацій (наприклад, Basic, Q-Basic, Visual Basic і ін.), які за можливостями і властивостями істотно відрізняються один від одного.
Мови програмування можна розділити на машинно-залежні (низького рівня) і машинно-незалежні (високого рівня).
До мов низького рівня належать:
- машинні мови, написані в довічних кодах у вигляді нулів і одиниць,
- машинно-орієнтовані мови (асемблери), написані в так званих мнемокодах, закладених в систему команд конкретного процесора (наприклад, мнемокод скласти записаний як ADD, мнемокод очистити як DEL і т.д.).
До мов високого рівня відносяться:
алгоритмічні мови - переводять алгоритми з мови математики на мову програмних кодів,
процедурно - орієнтовані мови дозволяють записати програму у вигляді набору процедур,
проблемно-орієнтовані мови призначені для вирішення певного класу задач.
Програма, написана на мові високого рівня, не може безпосередньо використовуватися на комп'ютері. Вона повинна пройти етап трансляції вихідного коду, записаного на мові високого рівня, в об'єктний код, який потім за допомогою редактора зв'язків формує завантажувальний модуль, придатний для запуску на комп'ютері. Такий процес здійснюється, наприклад, при написанні програми на мові Фортран і називається компіляція.
В інших мовах високого рівня (наприклад, на Бейсике) трансляція вихідного коду у виконуваний відбувається послідовно з кожною командою (оператором). Така трансляція здійснюється програмою- інтерпретатором.
Створена програма повинна пройти перевірку на придатність до використання за допомогою відладчика програм. Він дозволяє відстежувати послідовне виконання програми, виявляти місця і види помилок в програмі, давати коментарі.
Система програмування складається з:
- мовних засобів розробника програм,
- компілятора,
- редактора зв'язків,
- відладчика,
- оптимізатора коду програм,
- набору бібліотек,
- довідкової системи та ін.
Інтегровані середовища програмування включають весь набір засобів для комплексного їх застосування на всіх технологічних етапах розробки програм. Основне призначення такого інструментарію полягає в тому, щоб з його допомогою підвищити продуктивність і ефективність праці програмістів.
Програмні комплекси використовуються при розробці складних прикладних інформаційних систем. Вони дозволяють автоматизувати весь технологічний процес аналізу, проектування, розробки, налагодження та супроводження проекту цілком.