- розробник (developer) - особа або організація, які виконують специфічні дії в контексті життєвого циклу програмного забезпечення та, які зорієнтовані на розробку продукту;
- супроводжуючий (mainteiner) - особа або організація, які виконують специфічні дії, пов'язані з супроводом продукту.
Український стандарт ДСТУ 2844-94 визначає продукт інженерії програмного забезпечення як програмний засіб (програмне забезпечення, software), призначений для постачання користувачеві. Якщо розглядати користувачів вказаних трьох типів, то це визначення і визначення ISO/IEC збігаються.
Таким чином, термін «продукт програмного забезпечення» використовується для позначення двох типів об'єктів:
- по-перше, так називаються комп'ютерні програми, що відповідають додатковим вимогам, що пов'язані з їх тривалим застосуванням користувачами. Ці вимоги здійснюються шляхом створення додаткових описів, інструкцій і даних;
- по-друге, так називаються результати виконання фаз життєвого циклу програмного забезпечення (робочий продукт), коли результати є інтегральними частинами розробленого продукту. Тому, продуктом може бути не тільки комп'ютерна програма, й специфікація вимог, документація або проект програми, що розробляється.
У зв'язку з розвитком і застосуванням інженерних методів у розробці і використанні комп'ютерних програм змінилося ставлення до результатів праці в цій галузі. Розширення асортименту розробників і користувачів продуктів призвело до необхідності класифікувати їх і визначити належність до того або іншого виду продукції.
Продукція інженерії програмного забезпечення - це сукупність Програм, програмних засобів і продуктів, що мають загальну класифікаційну ознаку (за приналежністю, місцем розробки, призначенням).
Нині розрізняють продукцію інженерії програмного забезпечення країни, галузі і підприємства.
Таким чином, у комп'ютері може знаходитися безліч комп'ютерних програм двох типів. До першого типу належать будь-які комп'ютерні програми, які користувач комп'ютера встановив з тих чи інших причин. До другого - належать комп'ютерні програми - продукти (продукція).
Безліч комп'ютерних програм у комп'ютері називається програмним забезпеченням (software) і є однією з двох найважливіших частин комп'ютерної системи. Інша частина - апаратне забезпечення (hardware) є власне комп'ютером. Зараз починає вирізнятися ще і третя частина - інтелектуальне забезпечення (know ware).
Стандарт ISO/IEC визначає програмне забезпечення (software) як все або частина програм, процедур, правил і пов'язаної з ними документації інформаційної обчислювальної системи.
Український стандарт визначає програмне забезпечення (software) як програмний засіб, тобто взаємозв'язану сукупність програм, процедур, правил, документації і даних, що стосуються функціонування обчислювальної системи.
3.3. Системи програмного забезпечення
Поняття системи програмного забезпечення, або програмної системи (software system) є дуже важливим в інженерії програмного забезпечення. Але чіткого визначення цього поняття не існує. У цьому розділі для того, щоб виявити, що таке програмна система, застосовується системний підхід. Тому, перш ніж визначити поняття програмної системи розглянемо властивості комп'ютерних програм з позицій системного аналізу.
Із системотехніки відомо, що об'єкт повинен володіти щонайменше чотирма властивостями, аби його можна було вважати системою, тому комп'ютерну програму можна розглядати як систему, якщо вона має такі властивості: цілісність і подрібненість, наявність зв'язків, наявність організації, наявність інтегральної якості,
Властивості цілісності і подрібненості виражаються в тому, що, з одного боку, програма - це цілісна конструкція, а з другого, - в її складі можна розрізняти елементи.
Елементи - це такі частини програми, які в даній програмі на певному рівні її розгляду не підлягають подальшому поділу на частини. Поза програмою елементи мають властивості, що є загальними і називаються системнозначимими. Увійшовши в програму, елемент набуває властивостей, що мас значення лише в цій програмі і яке називається системовизначеним. Наприклад, підпрограма обчислювальна tg(x) (системовнзначена властивість), увійшовши до складу програми управління польотом певного об'єкта, може обчислювати значення деформації (зрушення) шарів плоскої о тіла (системовизначена властивість).