Главная страница  Анализ эмпирических данных 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [ 40 ] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

ROUT Кодовый идентификатор программы, заме-

няющий ее имя. Идентификатор указывает на подсистему и функцию, в состав которых входит программа {Пример: Код А101 расшифровывается так: подсистема А, функция 1, модуль 01.)

PROBS Число действительных ошибок, т. е. таких

ошибок, которые требуют корректировки

текста программы Zi=TS Общее число операторов в программе

[TS = NEX + ЕХ] == Lloop ~ LL ЕЗ Сложность циклов модуля, рассчитываемая

по формуле

Ш0Р= Z

\ А--\ >

1 = 1

mi - число циклов в модуле, имеющих /-Й уровень вложения, wi - весовой множитель, Q - наивысший уровень вложенности циклов, 4 - нормирующий множитель

23 = Ер = 1РЕЗ Сложность условных операторов IF, рас-

считываемая по формуле

где fii - число условных операторов /-го урэвня, laj -весовой множитель (ана.чо-гичен Lloop)

24 = BR Общее число ветвлений

2б = АР Общее число логических операторов

Z7=SYS Количество непосредственных сопряжений

с другими прикладными программами

(но не обращений к ним) Ze = I/O Количество непосредственных сопряжений

с системными программными средствами Zg = СОМР Число операций ввода-вывода

Zio = DATA Число вычислительных операторов

Zn=NEX Число операторов обработки данных

Zi2 = ЕХ Количество неисполняемых операторов

Таблица 4.1

Параметры, входящие в уравнения регрессии



Исходными данными для анализа являлись отдельные программы и подпрограммы, идентифицируемые по именам, которые содержат условные обозначения выполняемых программами функций; программы объединялись в подсистемы по функциональному признаку Для каждого модуля определялись число действительных ошибок и значения 16 показателей.

Использованные для анализа в качестве факторов показатели приведены в табл. 4.1, а их значения для каждой из программ или подпрограмм - в табл. 4.2. Два из перечисленных в табл. 4.1 показателей, Lloop и Lif, рассчитывались с учетом определяемых LOOP и IF уровней вложения циклов и условных операторов-). Другие два, RAT и WK-LD - квалификация программиста и его загруженность работой соответственно, были получены в результате контактов с администрацией Проекта 3 для всех подсистем, исключая G и И. Считалось, что все показатели, кроме СОМ (число комментариев) и RAT, должны изменять общее число ошибок в положительном направлении. Последним двум показателям приписывался вес (-1). Это позволило распространить условие неотрицательности на все коэффициенты (для простоты вычислений)

) Значения Lloop и Lif приводятся увеличенными в 1000 раз.

) Характерной особенностью примененного метода нелинейного программирования является условие неотрицательности всех коэффициентов, принимаемое по умолчанию.

Продолжение табл. 4.1

Zi3==TI Общее число связей с другими програм.

мами Т1 = АР+ SYS

Zi4=COM Полное число комментариев, которые

не включаются в число неисполияемых операторов, NEX

Z.15 = RAT Средняя квалификапия по всем программи-

стам, которые разрабатывали данную программу

Zie = WK-LD Средняя загрузка по всем программистам,

которые разрабатывали данную прог- рамму



*) Свободный член в модели отсутствует.

) Основная причина этого - появление нерегулярных областей в пространстве коэффициентов, для которых ровместное распределение оценок имеет ненулевую вероятность.

4.2. Особенности обобщенной регрессионной модели

Пусть имеется N параметров Zj (/==1, 2, N), характеризующих К программ, объединенных в конкретный модуль. Предположим, что ожидаемое число ошибок в программе задается линейной моделью вида

Y, = Zfl;Z/ (4.1)

где Zji - значение параметра Z/ для г-й программы, а й/ - коэффициент влияния /-го параметра на вели* чину.отклика.

Допустим, что фактическое число ошибок i-й про* граммы равно Yj. Тогда для определения неизвестных коэффициентов а,- необходимо минимизировать сумму квадратов отклонений фактического числа ошибок от ожидаемого по каждой программе, т. е. найти минимум

к к / N \2

Q = Z (Y, - Y,) = Е ( Y, - I aiZ;i (4.2)

при ограничениях

а,>0, /=1, 2, N. (4.3)

Таким образом, задача оценки коэффициентов О/ представляет собой задачу нелинейного программирования с квадратичной целевой функций (4.2) и ограничениями типа неравенств (4.3).

Несмотря на то что широко используемые статистические методы регрессионного анализа неприменимы в рассматриваемом случае задачи с ограничениями типа неравенств 2), качество приближения от-клика линейной функцией заданных факторов мож-



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [ 40 ] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.