Фактори масштабу (Scale Factors)

Лабораторна робота 2

КОНСТРУКТИВНА МОДЕЛЬ ВАРТОСТІ COCOMO

Мета роботи: вивчити алгоритми різних рівнів конструктивних моделей Б. Боема і автоматизувати процес розрахунку економічних показників проекту з розробки програмного продукту.

COCOMO

COCOMO (Constructive Cost Model) - це конструктивна модель вартості, розроблена на початку 80-х років Баррі Боемом для оцінки трудомісткості розробки програмних продуктів. Вона заснована на статистичному аналізі фактичних даних по виконанню 63 проектів в компанії TRW Aerospace, де Баррі Боем був директором відділу досліджень програмного забезпечення і технологій. Аналізувалися проекти обсягом від 2 до 100 000 рядків коду, на мовах програмування від асемблеру до високорівневої мови PL/1, засновані на каскаднiй моделі життєвого циклу розробки ПЗ.

Модель складається з ієрархії трьох послідовно деталізуємих і уточнюваних рівнів [3]. На кожному рівні всі проекти розбиваються на три групи за рівнем складності:

— поширений тип (organic projects);

— вбудований тип (embedded projects);

— напівнезалежний тип (semidetached projects).

Поширений тип характеризується тим, що проект виконується невеликою групою фахівців, що мають досвід у створенні подібних виробів і досвід застосування технологічних засобів. Умови роботи стабільні, і виріб має відносно невисоку складність.

Вбудований тип характеризується дуже жорсткими вимогами на програмний продукт, інтерфейси, параметри ЕОМ. Як правило, у таких виробів висока ступінь новизни і планування робіт здійснюється при недостатній інформації, як про сам виріб, так і про умови роботи. Вбудований проект вимагає великих витрат на зміни та виправлення.

Напівнезалежний тип займає проміжне положення між поширеним і вбудованим - це проекти середньої складності. Виконавці знайомі лише з деякими характеристиками (або компонентами) створюваної системи, мають середній досвід роботи з подібними виробами, виріб має елемент новизни. Тільки частина вимог до виробу жорстко фіксується, в іншому розробки мають ступені вибору.

Тип тієї чи іншої групи можна розглядати як один з параметрів моделі COCOMO.

Розглянемо рівні моделі.

2.1.1 Базовий рівень (Basic COCOMO)

Модель цього рівня - двохпараметрична. Як параметри виступають тип проекту і обсяг програми (число рядків коду).

Рівняння базового рівня моделі мають вигляд:

Фактори масштабу (Scale Factors) - student2.ru ,

Фактори масштабу (Scale Factors) - student2.ru ,

де

PM (People × Month) - трудомісткість (чол. × міс.);

TM (Time at Month) - час розробки в календарних місяцях;

SIZE - обсяг програмного продукту в тисячах рядків вихідного тексту (Kilo of Source Line of Code - KSLOC).

Коефіцієнти ai, bi, ci і di вибираються з табл. 2.1.

Модель цього рівня підходить для ранньої швидкої приблизної оцінки витрат, але точність її дуже низька, тому що не враховуються такі чинники, як кваліфікація персоналу, характеристики обладнання, досвід застосування сучасних методів розробки програмного забезпечення та сучасних інструментальних середовищ розробки та ін.

Таблиця 2.1. Значення коефіцієнтів базової рівня моделі COCOMO залежно від типу проекту

Тип проекту a b c d
Поширений 2,4 1,05 2,5 0,38
Напівнезалежний 3,0 1,12 2,5 0,35
Вбудований 3,6 1,20 2,5 0,32

2.1.2 Проміжний рівень (Intermediate COCOMO)

На цьому рівні базова модель уточнена за рахунок введення додаткових 15 «атрибутів вартості» (або факторів витрат) Cost Drivers (CDk), які згруповані за чотирма категоріями:

- Характеристики продукту (Product Аttributes):

· Необхідна надійність ПЗ (Required Software Reliability);

· Розмір БД додатку (Size of Application Database);

· Складність продукту (Complexity of the Product);

- Характеристики апаратного забезпечення (Hardware Аttributes):

· Обмеження швидкодії при виконанні програми (Run-Time Performance Constraints);

· Обмеження пам'яті (Memory Constraints);

· Нестійкість оточення віртуальної машини (Volatility of the Virtual Machine Environment);

· Необхідний час відновлення (Required Turnabout Time);

- Характеристики персоналу (Personnel Аttributes):

· Аналітичні здібності (Analyst Capability);

· Здібності до розробки ПЗ (Software Engineer Capability);

· Досвід розробки (Applications Experience);

· Досвід використання віртуальних машин (Virtual Machine Experience);

· Досвід розробки на мовах програмування (Programming Language Experience);

- Характеристики проекту (Project Аttributes):

· Використання інструментарію розробки ПЗ (Use of Software Tools);

· Застосування методів розробки ПЗ (Application of Software Engineering Methods);

· Вимоги дотримання графіка розробки (Required Development Schedule).

Значення кожного атрибута вибирається з табл. 2.2 відповідно до його

ступеня значущості (рейтингу) в конкретному проекті.

Таблиця 2.2. Значення атрибутів вартості залежно від їх рівня

 

    Рейтинг
  Атрибути вартості, CDk   Дуже низький Низький Середній Високий Дуже високий Критический
Характеристики продукту
1. Необхідна надійність ПЗ 0,75 0,88 1,00 1,15 1,40 n/a
2. Розмір БД додатка n/a 0,94 1,00 1,08 1,16 n/a
3. Складність продукту 0,70 0,85 1,00 1,15 1,30 1,65
Характеристики апаратного забезпечення
4. Обмеження швидкодії n/a n/a 1,00 1,11 1,30 1,66
5. Обмеження пам'яті n/a n/a 1,00 1,06 1,21 1,56
6. Нестійкість оточення віртуальної машини n/a 0,87 1,00 1,15 1,30 n/a
7. Необхідний час відновлення n/a 0,87 1,00 1,07 1,15 n/a
Характеристики персоналу
8. Аналітичні здібності 1,46 1,19 1,00 0,86 0,71 n/a
9. Досвід розробки 1,29 1,13 1,00 0,91 0,82 n/a
10. Здібності до розробки ПЗ 1,42 1,17 1,00 0,86 0,70 n/a
11. Досвід використання віртуальних машин 1,21 1,10 1,00 0,90 n/a n/a
12. Досвід розробки на мовах програмування 1,14 1,07 1,00 0,95 n/a n/a
Характеристики проекту
13. Застосування методів розробки ПЗ 1,24 1,10 1,00 0,91 0,82 n/a

14.

 
 
 
 
 
 
 
 
 
Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru
 
Фактори масштабу (Scale Factors) - student2.ru
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Фактори масштабу (Scale Factors) - student2.ru
 
Фактори масштабу (Scale Factors) - student2.ru
 
Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru
 
 
 
Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru
 
Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru

Використання інструментарію розробки ПЗ 1,24 1,10 1,00 0,91 0,83 n/a
15. Вимоги дотримання графіка розробки 1,23 1,08 1,00 1,04 1,10 n/a
                       

Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru Фактори масштабу (Scale Factors) - student2.ru

Примітка: n / a (not available) - дані відсутні, тобто відповідний рівень не оцінюється

Формула проміжного рівня моделі має вигляд

Фактори масштабу (Scale Factors) - student2.ru ,

де PM - трудомісткість (чол. × міс.);

SIZE - обсяг програмного продукту в тисячах рядків вихідного тексту

(Kilo of Source Line of Code - KSLOC).

EAF (Effort Adjustment Factor) – добуток обраних атрибутів вартості з табл. 2: EAF = Фактори масштабу (Scale Factors) - student2.ru .

Коефіцієнти моделі ai іbi вибираються з табл. 2.3.

Таблиця 2.3. Значення коефіцієнтів проміжного рівня моделі COCOMO залежно від типу проекту

Тип проекту, i ai bi
1. Поширений 3,2 1,05
2. Напівнезалежний 3,0 1,12
3. Вбудований 2,8 1,20

Час розробки розраховується за тією ж формою, що і для базової моделі.

2.1.3 Детальний рівень (Advanced COCOMO)

Підвищує точність оцінки за рахунок ієрархічної декомпозиції створюваного ПО та обліку вартісних факторів на кожному рівні ієрархії і за фазами робіт (тут не розглядається).

COCOMO II

У 1997 методика була вдосконалена і отримала назву COCOMO II. Калібрування параметрів проводилася вже по 161 проекту розробки ПЗ.

Відрізняють дві стадії оцінки проекту: попередня оцінка на початковій фазі (Early Design) і детальна оцінка після опрацювання архітектури (Post Architecture).

Формула оцінки трудомісткості проекту в чол. × міс. має вигляд:

Фактори масштабу (Scale Factors) - student2.ru ,

де Фактори масштабу (Scale Factors) - student2.ru ;

B = 0,91; A =2,94для попередньої оцінки; A =2,45для детальноїоцінки;

SFj –фактори масштабу(Scale Factors) (табл. 5);

SIZE –обсяг програмного продукту в тисячах рядків вихідного тексту

(KSLOC – Kilo of Source Line of Code);

EMj –множники трудомісткості (Effort Multiplier). n = 7 - для попередньої оцінки (табл. 6), n = 17 - для детальної оцінки (табл. 7);

EAF (Effort Adjustment Factor) - добуток обраних множників трудомісткості: Фактори масштабу (Scale Factors) - student2.ru .

Фактори масштабу (Scale Factors)

У методиці COCOMO II використовуються п'ять факторів масштабу SFj, опис яких наведено в табл.4.

Таблиця 4. Опис рівнів значимості факторів масштабу

  Опис Рівень значимості фактора
SFj Дуже низький Низький Середній Високий Дуже високий Критичний
1. PREC. Precedentedness. Прецедентність, наявність досвіду аналогічних розробок досвід в продукті і платформі відсутній продукт і платформа трохи знайомі деякий досвід в продукті і платформі присутній продукт і платформа в основномувідомі продукт і платформа в більшій ступені знайомі продукт і платформа повністю знайомі
2. FLEX. Development Flexibility Гнучкість процесу розробки процес строго детермінований допускаються деякі компроміси значна жорсткістьпроцесу відносна жорсткістьпроцесу незначна жорсткістьпроцесу визначені тільки загальні цілі
3. RESL. Architecture / Risk Resolution Архітектура і дозвіл ризиків ризики відомі / проаналізовані на 20% ризики відомі / проаналізовані на 40% ризики відомі / проаналізовані на 60% ризики відомі / проаналізовані на 75% ризики відомі / проаналізовані на 90% ризики дозволені на 100%
4. TEAM. Team Cohesion Спрацьованість команди формальні взаємодії Тяжкі взаємодії до деякої ступені Частіше всього колективна робота в основному колективна робота висока ступінь взаємодії повна довіра, взаємозамінність і взаємодопомога  
5. PMAT. Process Maturity Зрілість процесів СММ Рівень 1 (нижче середнього) СММ Рівень 1 (вище середнього) СММ Рівень 2 СММ Рівень 3 СММ Рівень 4 CMM Рівень 5  

Примітка. СММ (Capability Maturity Model) - п'ятирівнева модель зрілості можливостей компанії-розробника ПЗ, запропонована SEI (Software Engineering Institute).

Ці фактори застосовуються на обох стадіях оцінки проекту.

Числові значення фактора масштабу залежно від оцінки його рівня, наведені в таблиці 5.

Таблиця 5. Значення фактора масштабу залежно від оцінки його рівня

  Фактор масштабу, SFj Оцінка рівня фактора
  Very Low Low Nominal High Very High Extra High
 
1. PREC 6,20 4,96 3,72 2,48 1,24 0,00
2. FLEX 5,07 4,05 3,04 2,03 1,01 0,00
3. RESL 7,07 5,65 4,24 2,83 1,41 0,00
4. TEAM 5,48 4,38 3,29 2,19 1,10 0,00
5. PMAT 7,80 6,24 4,68 3,12 1,56 0,00

2.2.2 Множники трудомісткості (Effort Multipliers)

Кількість і значення множників трудомісткості відрізняються для різних стадій оцінки проекту.

1. Стадія попередньої оцінки трудомісткості програмного проекту (Early Design). Для цієї оцінки необхідно оцінити для проекту рівень семи множників трудомісткості EMj:

- параметри персоналу:

1. PERS (Personnel Capability) - кваліфікація персоналу (Extra Low - аналітики і програмісти мають нижчу кваліфікацію, плинність більше 45%; Extra High - аналітики і програмісти мають вищу кваліфікацію, плинність менше 4%);

2. PREX (Personnel Experience) - досвід персоналу (Extra Low - новий додаток, інструменти та платформа; Extra High - додаток, інструменти та платформа добре відомі);

- параметри продукту:

1. RCPX (Product Reliability and Complexity) - складність і надійність продукту (Extra Low - продукт простий, спеціальних вимог по надійності немає, БД маленька, документація не потрібно; Extra High - продукт дуже складний, вимоги щодо надійності жорсткі, БД надвелика, документація потрібна в повному обсязі);

2. RUSE (Developed for Reusability) - розробка для повторного використання (Low - не вимагається; Extra High - передбачається перевикористання в інших продуктах);

- параметри платформи:

1. PDIF (Platform Difficulty) - складність платформи розробки (Extra Low - спеціальні обмеження по пам'яті і швидкодії відсутні, платформа стабільна; Extra High - жорсткі обмеження по пам'яті і швидкодії, платформа нестабільна);

- параметри проекту:

1. FCIL (Facilities) - обладнання (Extra Low - інструменти найпростіші, комунікації утруднені; Extra High - інтегровані засоби підтримки життєвого циклу, інтерактивні мультимедіа комунікації);

2. SCED (Required Development Schedule) - потрібне виконання графіка робіт (Very Low - 75% від номінальної тривалості; Very High - 160% від номінальної тривалості).

Значення множників трудомісткості залежно від їх рівня наведено в табл. 6.

Таблиця 6. Значення множників трудомісткості залежно від оцінки їх рівня (EarlyDesign)

  множник трудомісткості, EMi Оцінка рівня множника трудомісткості
Extra Low Very Low Low Nominal High Very High Extra High
 
PERS 2,12 1,62 1,26 1,00 0,83 0,63 0,50
PREX 1,59 1,33 1,22 1,00 0,87 0,74 0,62
RCPX 0,49 0,60 0,83 1,00 1,33 1,91 2,72
RUSE n/a n/a 0,95 1,00 1,07 1,15 1,24
PDIF n/a n/a 0,87 1,00 1,29 1,81 2,61
FCIL 1,43 1,30 1,10 1,00 0,87 0,73 0,62
SCED n/a 1,43 1,14 1,00 1,00 n/a n/a

Примітка: n / a (not available) - дані відсутні, тобто відповідний рівень не оцінюється

2. Стадія детальної оцінки після опрацювання архітектури (Post Architecture). Для цієї оцінки необхідно оцінити для проекту рівень сімнадцяти множників трудомісткості EMj:

- параметри персоналу:

1) Analyst Capability (ACAP) - можливості аналітика;

2) Applications Experience (AEXP) - досвід розробки додатків;

3) Programmer Capability (PCAP) - можливості програміста;

4) Personnel Continuity (PCON) - тривалість роботи персоналу;

5) Platform Experience (PEXP) - досвід роботи з платформою;

6) Language and Tool Experience (LTEX) - досвід використання мови програмування та інструментальних засобів.

- параметри продукту:

7) Required Software Reliability (RELY) - необхідна надійність програми;

8) Database Size (DATA) - розмір бази даних;

9) Software Product Complexity (CPLX) - складність програми;

10) Required Reusability (RUSE) - необхідна можливість багаторазового використання;

11) Documentation Match to Life-Cycle Needs (DOCU) - відповідність документації потребам життєвого циклу.

- Параметри платформи:

12) Execution Time Constraint (TIME) - обмеження часу виконання;

13) Main Storage Constraint (STOR) - обмеження пам'яті;

14) Platform Volatility (PVOL) - змінюваність платформи.

- Параметри проекту:

15) Use of Software Tools (TOOL) - використання інструментальних програмних засобів;

16) Multisite Development (SITE) - багатоабонентська (віддалена) розробка;

17) Required Development Schedule (SCED) - потрібне виконання графіка робіт.

Значення множників трудомісткості залежно від їх рівня наведено в табл. 7.

Таблиця 7. Значення множників трудомісткості залежно від оцінки їх рівня (Post Architecture)

Effort Multiplier, EMj Very Low Low Nominal High Very High Extra High  
  Personnel Factors    
ACAP Analyst Capability 1,42 1,29 1,00 0,85 0,71 n/a    
AEXP Applications Experience 1,22 1,10 1,00 0,88 0,81 n/a    
PCAP Programmer Capability 1,34 1,15 1,00 0,88 0,76 n/a    
PCON Personnel Continuity 1,29 1,12 1,00 0,90 0,81 n/a    
PEXP Platform Experience 1,19 1,09 1,00 0,91 0,85 n/a    
LTEX Language and Tool Experience 1,20 1,09 1,00 0,91 0,84 n/a    
  Product Factors    
RELY Required Software Reliability 0,84 0,92 1,00 1,10 1,26 n/a    
DATA Database Size n/a 0,23 1,00 1,14 1,28 n/a    
CPLX Software Product Complexity 0,73 0,87 1,00 1,17 1,34 1,74    
RUSE Required Reusability n/a 0,95 1,00 1,07 1,15 1,24    
DOCU Documentation Match to Life-Cycle Needs 0,81 0,91 1,00 1,11 1,23 n/a    
  Platform Factors    
TIME Execution Time Constraint n/a n/a 1,00 1,11 1,29 1,63    
STOR Main Storage Constraint n/a n/a 1,00 1,05 1,17 1,46    
PVOL Platform Volatility n/a 0,87 1,00 1,15 1,30 n/a    
  Project Factors    
TOOL Use of Software Tools 1,17 1,09 1,00 0,90 0,78 n/a    
SITE Multisite Development 1,22 1,09 1,00 0,93 0,86 0,80    
SCED Required Development Schedule 1,43 1,14 1,00 1,00 1,00 n/a    
   
                                               

Примітка: n / a (not available) - дані відсутні, тобто відповідний рівень не оцінюється

2.2.3 Оцінка тривалості проекту

Час розробки проекту TM в методиці COCOMO II для обох рівнів розраховується за формулою:

Фактори масштабу (Scale Factors) - student2.ru ,

де С =3,67;D=0,28;

PMNS –розрахована трудомісткість проекту без урахування множника SCED, визначаючого стиск розкладу.

Інші параметри визначені вище.

Завдання

1. Використовуючи вибрану інструментальну середовище розробки, створити програмний додаток «Калькулятор сосом» для розрахунку трудомісткості термінів розробки програмного продукту на основі різних конструктивних моделей вартості COCOMO зі зручним для користувача інтерфейсом.

2. Дослідити вплив обсягу програмного коду (SIZE) на трудомісткість (РМ) і час розробки проекту (ТМ) для різних рівнів і версій COCOMO.

3. Отримати значення PM і ТМ по всіх моделях для одного і того ж значення параметра SIZE, вибравши номінальний (середній) рівень складності проекту. Повторити розрахунок для простого проекту і проекту, що має високий ступінь новизни.

4. Результати досліджень оформити графічно.

ЛІТЕРАТУРА

1. Соммервілл, Іан. Інженерія програмного забезпечення, 6-е вид. : Пер.з англ. - М .: Видавничий дім «Вільямс», 2002. - 624 с.

2. Миньков С.Л. Техніко-економічне обґрунтування виконання проекту: методичний посібник. - Томськ: ТУСУР, 2014. - 30 с. [Електронний ресурс]. - Режим доступу:

http://asu.tusur.ru/learning/spec080801/d26/s080801_d26_work.docx

3 . Миньков С.Л. Розробка та застосування ППП в економіці: Навчальний посібник. - Томськ: ТМЦДО, 2002. - 231 с.

Додаток (довідковий)

Деякі приклади автоматизації розрахунку COCOMO

Наши рекомендации