- збереження в організації цінних людських ресурсів (наприклад, співробітників, що мають рідкісні знання і навички).
2.2.3. Модель СММI
Успіх використання СММ привів до розроблення значної кількості схожих моделей. Це викликало як конфлікти між цілями, що пов'язані з поліпшенням процесів і існуючими технологіями, так і проблеми, пов'язані з навчанням і вибором моделей. Для вирішення цих проблем SEI розгорнув роботи зі створення інтегрованої моделі СММ - СММI, що забезпечує кращі результати існуючих моделей. Джерелами для CMMI послужили такі моделі:
- SW-CMM - модель розробки програмного забезпечення;
- EIF/IS 731 - модель розробки систем;
- IPD-CMM - модель сумісної розробки продуктів.
Модель SW-CMM - це поетапна модель. Модель розробки систем - безперервна модель. CMM для сумісної розробки продукту - це «гібрид» моделей, що комбінує риси поетапно і безперервно.
Використовуючи вказівки моделі, організація ,може підійти до вдосконалення процесів або з погляду підвищення продуктивності окремих областей удосконалення, або з погляду підвищення зрілості організації в цілому. Реалізуючи перинні підхід, фокусуються на встановленні базових, початкових станів і вимірюванні результатів поліпшень для кожної області вдосконалення індивідуально. Такий підхід підтримується в безперервних моделях, ключовим терміном яких є «продуктивність» (capability). Другий навпаки -фокусується на групах областей удосконалення, призначених для визначення перевірених на практиці етапів у зрілості процесів усієї організації. Цей підхід використовується в поетапних моделях, ключовим терміном яких є «зрілість»(maturity),
З мстою збереження властивостей обох типів моделей була роз роблена інтегрована модель СММІ - СММ Integrated.
Модель містить 25 областей удосконалення, що розбиваються на чотири рівні зрілості уявленні і на чотири категорії процесів у безперервному уявленні.
3.1. Програми і програмування
Суть метолів, засобів і процесів, що розглядаються в інженерії програмного забезпечення, пов'язана з двома головними поняттями - «програма» (комп'ютерна програма) і «програмування». Перше поняття позначає засіб, який керує діями комп'ютера, а другий - процес, який спрямовано на створення програм.
3.1.1. Програма
Програма - це опис обчислень. Обчислення - це дії, здійснення яких доручається певному виконавцеві. Виконавці можуть бути різ ними і обов'язкова умова - виконавець повинен «розуміти» програму, ІЗ основі опису дій лежить поняття алгоритму. Мета обчислень - отримати результат. Основними об'єктами обчислень і результатом є значення. Значення - це конкретні елементи програми, об'єкти, що в обчисленнях замінюють змінні. Змінні - це програмні об'єкти що зберігають значення. Програма описує багато обчислень. Залежно від конкретних значень виконавець здійснює одне з них.
3.1.2. Комп'ютерні програми
Якщо виконавець програми - комп'ютер, то вона називається комп'ютерною. Комп'ютер - це «механістичний, рутинний» пристрій, тому дуже важливо, аби комп'ютерна програма містила всі вказівки про те, як необхідно виконувати обчислення. А це означає, що поняття алгоритму, що лежить в основі програми, повинно мати точний, конструктивний характер. Оскільки комп'ютер що і математична машина, то для представлення алгоритму було розроблено багато математичних способів. Проте, незалежно від способу представлення, алгоритму комп'ютерній програмі властиві такі аспекти:
- повна деталізація і визначеність опису обчислень і, тим самим, закінченість;
- масовість обчислень
- орієнтація на загальні зміни змінної;
- виконавець обчислень - комп'ютер;
- форми програми - текст;
- засіб запису програми - спеціальна мова.
Державний стандарт (ДСТУ 2844-94) визначає комп'ютерну програму (computer program) як послідовність інструкцій, які може виконувати ЕОМ.
3.1.3. Програмування
Процеси, пов'язані З написанням комп'ютерних програм, називаються програмуванням, У найзагальнішому вигляді програмування - це виконання трьох процесів:
- складання схеми програми - опис обчислень за допомогою спеціальних засобів (мови специфікацій) - псевдокоди, блок-схеми або формальні (математичні) мови;