- складання тексту програми - опис обчислень за допомогою спеціального засобу - мова програмування з використанням схеми програми;
- налагодження програми - виконання програми з використанням спеціально підібраних значень з метою пошуку і усунення дефектів, допущених у програмах при реалізації перших двох процесів,
Два ключові об'єкта беруть участь у Програмуванні - програміст і мова програмування.
Програміст - це спеціально підготовлений суб'єкт (професіонал), який знає одну або декілька мов специфікацій і програмування та вміє виконувати процеси програмування.
Мова програмування — це штучна знакова система, призначена для запису комп'ютерних програм. Як будь-яка знакова система мова програмування задається синтаксисом - множина правил, що визначають вид пропозицій (мови), і семантикою - множина правил, що визначають операційне значення (сенс) пропозицій мови. Кожна мова програмування за допомогою синтаксису і семантики описує певного носія мови, яким ця мова визначається однозначно. Носій мови входить до складу перекладачів (трансляторів), які здійснюють переклад програми з мови програмування на мову виконавця. Теоретичну основу мов програмування складають алгоритмічні мови (засоби для запису алгоритмів), при цьому набори описових засопів мов програмування перевищують мінімальні набори, необхідні для їх алгоритмічної універсальності, що викликане практичною орієнтацією МОВ програмування. За весь період розвитку програмування було розроблено значну кількість мов програмування (рис.3.1).
Рис 3.1. Мови програмування
3.2. Продукти інженерії програмного забезпечення, продукція і програмне забезпечення
Нині для комп'ютерів розроблено і продовжує розроблялися значна кількість програм. Серед них особливе місце займають програми, які називаються продуктами інженерії програмного забезпечення і продукцією.
3.2.1. Продукти інженерії програмного забезпечення
Стандарт ISO/IEC 14598-1 визначає продукт інженерії програмного забезпечення (продукт програмного забезпечення, програмний продукт, software product) як безліч комп'ютерних програм, процедур і пов'язаних з ними документації та даних. До того ж, підкреслюється, що продукти можуть бути таких типів:
- для постачання користувачеві;
- інтегральні частини інших продуктів;
- для розробників і супроводжуючих.
Таким чином, ті, хто використовує продукт інженерії програмного забезпечення, можуть бути таких типів;
- користувач (user) - особа або організація, які використовують продукт для виконання своїх специфічних функцій;
- розробник (developer) - особа або організація, які виконують специфічні дії в контексті життєвого циклу програмного забезпечення та, які зорієнтовані на розробку продукту;
- супроводжуючий (mainteiner) - особа або організація, які виконують специфічні дії, пов'язані з супроводом продукту.
Український стандарт ДСТУ 2844-94 визначає продукт інженерії програмного забезпечення як програмний засіб (програмне забезпечення, software), призначений для постачання користувачеві. Якщо розглядати користувачів вказаних трьох типів, то це визначення і визначення ISO/IEC збігаються.
Таким чином, термін «продукт програмного забезпечення» використовується для позначення двох типів об'єктів:
- по-перше, так називаються комп'ютерні програми, що відповідають додатковим вимогам, що пов'язані з їх тривалим застосуванням користувачами. Ці вимоги здійснюються шляхом створення додаткових описів, інструкцій і даних;
- по-друге, так називаються результати виконання фаз життєвого циклу програмного забезпечення (робочий продукт), коли результати є інтегральними частинами розробленого продукту. Тому, продуктом може бути не тільки комп'ютерна програма, й специфікація вимог, документація або проект програми, що розробляється.
3.2.2. Продукція інженерії програмного забезпечення
У зв'язку з розвитком і застосуванням інженерних методів у розробці і використанні комп'ютерних програм змінилося ставлення до результатів праці в цій галузі. Розширення асортименту розробників і користувачів продуктів призвело до необхідності класифікувати їх і визначити належність до того або іншого виду продукції.