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