З мстою збереження властивостей обох типів моделей була роз роблена інтегрована модель СММІ - СММ Integrated.
Модель містить 25 областей удосконалення, що розбиваються на чотири рівні зрілості уявленні і на чотири категорії процесів у безперервному уявленні.
Розділ 3. ПРОГРАМНІ ПРОДУКТИ І СИСТЕМИ
3.1. Програми і програмування
Суть метолів, засобів і процесів, що розглядаються в інженерії програмного забезпечення, пов'язана з двома головними поняттями - «програма» (комп'ютерна програма) і «програмування». Перше поняття позначає засіб, який керує діями комп'ютера, а другий - процес, який спрямовано на створення програм.
3.1.1. ПрограмаПрограма - це опис обчислень. Обчислення - це дії, здійснення яких доручається певному виконавцеві. Виконавці можуть бути різ ними і обов'язкова умова - виконавець повинен «розуміти» програму, ІЗ основі опису дій лежить поняття алгоритму. Мета обчислень - отримати результат. Основними об'єктами обчислень і результатом є значення. Значення - це конкретні елементи програми, об'єкти, що в обчисленнях замінюють змінні. Змінні - це програмні об'єкти що зберігають значення. Програма описує багато обчислень. Залежно від конкретних значень виконавець здійснює одне з них.
3.1.2. Комп'ютерні програмиЯкщо виконавець програми - комп'ютер, то вона називається комп'ютерною. Комп'ютер - це «механістичний, рутинний» пристрій, тому дуже важливо, аби комп'ютерна програма містила всі вказівки про те, як необхідно виконувати обчислення. А це означає, що поняття алгоритму, що лежить в основі програми, повинно мати точний, конструктивний характер. Оскільки комп'ютер що і математична машина, то для представлення алгоритму було розроблено багато математичних способів. Проте, незалежно від способу представлення, алгоритму комп'ютерній програмі властиві такі аспекти:
- повна деталізація і визначеність опису обчислень і, тим самим, закінченість;
- масовість обчислень
- орієнтація на загальні зміни змінної;
- виконавець обчислень - комп'ютер;
- форми програми - текст;
- засіб запису програми - спеціальна мова.
Державний стандарт (ДСТУ 2844-94) визначає комп'ютерну програму (computer program) як послідовність інструкцій, які може виконувати ЕОМ.
3.1.3. ПрограмуванняПроцеси, пов'язані З написанням комп'ютерних програм, називаються програмуванням, У найзагальнішому вигляді програмування - це виконання трьох процесів:
- складання схеми програми - опис обчислень за допомогою спеціальних засобів (мови специфікацій) - псевдокоди, блок-схеми або формальні (математичні) мови;
- складання тексту програми - опис обчислень за допомогою спеціального засобу - мова програмування з використанням схеми програми;
- налагодження програми - виконання програми з використанням спеціально підібраних значень з метою пошуку і усунення дефектів, допущених у програмах при реалізації перших двох процесів,
Два ключові об'єкта беруть участь у Програмуванні - програміст і мова програмування.
Програміст - це спеціально підготовлений суб'єкт (професіонал), який знає одну або декілька мов специфікацій і програмування та вміє виконувати процеси програмування.
Мова програмування — це штучна знакова система, призначена для запису комп'ютерних програм. Як будь-яка знакова система мова програмування задається синтаксисом - множина правил, що визначають вид пропозицій (мови), і семантикою - множина правил, що визначають операційне значення (сенс) пропозицій мови. Кожна мова програмування за допомогою синтаксису і семантики описує певного носія мови, яким ця мова визначається однозначно. Носій мови входить до складу перекладачів (трансляторів), які здійснюють переклад програми з мови програмування на мову виконавця. Теоретичну основу мов програмування складають алгоритмічні мови (засоби для запису алгоритмів), при цьому набори описових засопів мов програмування перевищують мінімальні набори, необхідні для їх алгоритмічної універсальності, що викликане практичною орієнтацією МОВ програмування. За весь період розвитку програмування було розроблено значну кількість мов програмування (рис.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. Продукція інженерії програмного забезпеченняУ зв'язку з розвитком і застосуванням інженерних методів у розробці і використанні комп'ютерних програм змінилося ставлення до результатів праці в цій галузі. Розширення асортименту розробників і користувачів продуктів призвело до необхідності класифікувати їх і визначити належність до того або іншого виду продукції.
Продукція інженерії програмного забезпечення - це сукупність Програм, програмних засобів і продуктів, що мають загальну класифікаційну ознаку (за приналежністю, місцем розробки, призначенням).
Нині розрізняють продукцію інженерії програмного забезпечення країни, галузі і підприємства.
3.2.3. Програмне забезпеченняТаким чином, у комп'ютері може знаходитися безліч комп'ютерних програм двох типів. До першого типу належать будь-які комп'ютерні програми, які користувач комп'ютера встановив з тих чи інших причин. До другого - належать комп'ютерні програми - продукти (продукція).
Безліч комп'ютерних програм у комп'ютері називається програмним забезпеченням (software) і є однією з двох найважливіших частин комп'ютерної системи. Інша частина - апаратне забезпечення (hardware) є власне комп'ютером. Зараз починає вирізнятися ще і третя частина - інтелектуальне забезпечення (know ware).
Стандарт ISO/IEC визначає програмне забезпечення (software) як все або частина програм, процедур, правил і пов'язаної з ними документації інформаційної обчислювальної системи.
Український стандарт визначає програмне забезпечення (software) як програмний засіб, тобто взаємозв'язану сукупність програм, процедур, правил, документації і даних, що стосуються функціонування обчислювальної системи.
3.3. Системи програмного забезпечення