Много
висок
|
Свръх висок
|
Атрибути на продукта
|
|
|
|
|
|
|
Изисквана надеждност
|
0.75
|
0,88
|
1,00
|
1,15
|
1.40
|
|
Размер на базата данни
|
|
0,94
|
1,00
|
1,08
|
1,16
|
|
Сложност на продукта
|
0,70
|
0,85
|
1,00
|
1,15
|
1,30
|
1,65
|
Атрибути на компютъра
|
|
|
|
|
|
|
Ограничение по бързина
|
|
|
1,00
|
1,11
|
1,30
|
1,65
|
Ограничение по оперативна
памет
|
|
|
1,00
|
1,06
|
1,21
|
1,65
|
Изменяемост на виртуалната
машина
|
|
0,87
|
1,00
|
1,15
|
1,30
|
|
Цикъл на обръщение към ком-
пютъра
|
|
0,87
|
1,00
|
1,07
|
1,15
|
|
Атрибути на изпълнителя
|
|
|
|
|
|
|
Квалификация на проектанти-
те
|
1,46
|
1,19
|
1,00
|
0,86
|
0,71
|
|
Опит в приложната област
Квалификация на програмис-
тите
|
1,29
1,42
|
1,13
1,17
|
1,00
1,00
|
0,91
0,86
|
0,82
0,70
|
|
Опит от работа с компютъра
|
1,21
|
1,10
|
1,00
|
0,90
|
|
|
Опит с езика за програмиране
|
1,14
|
1.07
|
1,00
|
0,95
|
|
|
Атрибути на проекта
|
|
|
|
|
|
|
Прилагане на съвременни ме-
тоди
|
1,24
|
1,10
|
1,00
|
0,91
|
0,82
|
|
Ползване инструментални
средства
|
1,24
|
1,10
|
1,00
|
0,91
|
0,83
|
|
Ограничения в срока на разра-
ботка
|
1,23
|
1,08
|
1.00
|
1,04
|
1.10
|
|
Табл. 10.3. Атрибути и рейтинги
129
При извършването на оценката експертите следва да се ръководят от тази
таблица и за конкретния проект трябва да определят за всеки атрибут съответ-
ния рейтинг. Получените стойности се заместват в формулата, която вече е при-
добила по-сложен вид:
ЧМ = к х ХРПКР х A1 x A2... х А15,
където ЧМ и ХРПК са вече познатите величини,
к и р са коефициенти, които са различни за различните типове софтуер,
както се вижда и от табл. 10.2.
А, са рейтингите на атрибутите
Разликата в междинния и детайлния модел е в начина на получаване на
крайната оценка. Основната разлика е в това, че при детайлния вариант се при-
лагат различни коригиращи коефициенти (рейтинги) за всяка фаза от производ-
ствения процес. По-сложен е и процесът, чрез който от оценките на отделните
модули се получават оценки за подсистемите и от тях — за цялостния продукт.
При междинния вариант нивото модул се игнорира.
10.3.5. Критика на„редове първичен код"
Основните критики към СОСОМО се свеждат до следните две:
Няма нито стандарт, нито единно виждане за това, какво е „ред първичен код".
Много е трудно дори за експерти с голям опит да предскажат достатъч-
но точно в ранен етап на разработването броя на редовете първичен код.
По въпроса за редовете първичен код се изтъкват следните проблеми:
Какво всъщност да се разглежда — физически или логически редове.
Физическият край на даден ред се получава с натискането на клавиша Enter,
което води до генериране на съответни служебни символи за край на реда. Ло-
гическият край е някакъв ограничител, зависещ от конкретния език за програ-
миране, например двоеточие, запетая или друг точно определен знак. Езици,
които позволяват написването на няколко оператора на един ред, могат да да-
дат неколкократна разлика при двата вида броене. Същото може да се случи в
обратна посока и когато (за прегледност или по други причини) един логически
оператор се разполага върху 2 или повече реда. Показателно е едно изследване
[7], което показва, че в САЩ 35% от ръководителите на проекти броят физи-
ческите редове, 15% броят логическите, а останалите 50% въобще не смятат за
уместно да борят редовете първичен код.
Друг елемент на несигурност внасят различните от семантична гледна
точка типове редове. Почти всеки процедурен език включва 4 типа първични
редове:
изпълними оператори, чрез които се задават различни операции (логи-
чески, аритметични, вход/изход и др.);
определения на данни, чрез които се дефинират различните типове данни;
коментари, които дават разясняваща информация;
празни редове, които се ползват за повишаване прегледността на прог-
рамата.
Установено е, че в дадено типично бизнесприложение около 40% от общия
брой оператори за изпълними, 35% са определения на данни, 15% са комента-
ри и 10% — празни редове. При системния софтуер (например операционни
130
системи) 45% са изпълними оператори, 30% са определения на данни и отново
15% са коментари и 10% празни редове.
Правени са изследвания сред създателите на софтуер и отново е установе-
но различие в разбиранията — 10% броят само изпълнимите редове, 20 % бро-
ят изпълнимите редове и определенията на данни, 15% добавят коментарите, а
5% броят дори и празните редове. Както вече беше казано, 50% въобще не
броят редовете първичен код.
3. Голям проблем е повторно използваемият код. По съвсем общи оцен-
ки един програмист на традиционните процедурни езици за програмиране Фор-
тран, С, КОБОЛ, средно копира от други програми между 20 и 30% код в сво-
ите програми. За обектно ориентирани езици като Smalltalk, C++ този процент
достига до 50. Има отделни софтуерни фирми, които са организирали специал-
ни библиотеки от модули за повторно използване и там въпросният процент
достига дори 75. При това положение спорът се върти около това как да се брои
даден повторно използван модул:
да се брои при всяко негово появяване;
да се брои само веднъж независимо от броя появявания;
въобще да не се брои, доколкото този модул не е разработван за оценя-
вания проект.
Изследванията показват, че в САЩ първата алтернатива се прилага от 25%
от професионалистите, втората — от 20%, третата — от 5%. За останалите 30%
вече се разбра, че не броят.
4. Друга област на несигурност е как да се ползват редовете първичен код
при приложения, писани на повече от един език. Има данни, че около една
трета от софтуера в САЩ е написан на повече от един език за програмиране.
Колкото и да изглежда невероятно, дори около 1996 година най-срещаните ком-
бинации от езици все още са били следните:
КОБОЛ заедно с някакъв език за обработка на заявки за търсене от типа
на SQL;
КОБОЛ и език за дефиниция на данни от типа на DL/1;
КОБОЛ и някакъв специализиран език;
С и Асемблер;
АДА и Асемблер.
Доколкото, както стана вече ясно, няма стандарти и единство дори при
броенето в приложения с един език, още по-малко, може да се очаква такова
единство при софтуер, написан на повече от език.
5. Има и някои допълнителни, по-малки проблеми от рода на това да се
включва или изключва временно поставен в програмата код, код от типа мак-
рос, код, свързан с управлението на заданието в рамките на операционната
система. Трудности предизвиква и разликата в стила на програмистите. Преди
време в IBM направили малък експеримент, като възложили на 8 програмисти
да напишат първичен код по зададена спецификация. Разликата в броя редове
първичен код (преброени, естествено, по една и съща фиксирана методика) меж-
ду най-големия и най-малкия била петкратна.
Независимо от критиката по горните 5 пункта моделът СОСОМО продъл-
жава да има своите привърженици и да се прилага. Причината е в особената
сложност и динамика на софтуера и неговото създаване и невъзможността, по-
не за момента, да се предложи напълно адекватен метод и модел. Това е и при-
131
чината да са създадени и да продължават да се предлагат и да се усъвършенст-
ват немалък брой методи, независимо от огромните усилия, необходими за съз-
даването, валидирането и прилагането им.
Сподели с приятели: |