- •Национальный исследовательский университет «Высшая школа экономики»
- •Контрольное домашнее задание
- •Формулировка задания
- •Описание программы Постановка задачи Характеристики комплекса задач
- •Оценка характеристик на основе метрик Холстеда
- •Третий критерий
- •Алгоритмическая сложность на основе метрики Маккейба
- •Оценка характеристик программы на основе модели функциональных указателей Оценочные элементы программы f1..F5
- •Значения коэффициентов регулировки сложности
- •Расчет показателей
- •Расчет силы связности
- •Расчет силы сцепления
- •Оценка надежности программы Оценка надежности программы на основе модели Джелински-Моранды:
- •Оценка надежности программы на основе модели Миллса:
Расчет показателей
Общее количество ФП:
F= 12+4+42 = 56
Количество функциональных указателей:
FP = F*(0.65+0,01*∑ki) = 56*(0.65+0.01*24) = 49,84
На основе рассчитанного значения количества функциональных указателей FP можно рассчитывать показатели качества, производительности, удельной стоимости и документированности.
Расчет силы связности
Программа состоит из 19 программных модулей. Рассмотрим их по типам связности:
Методы
isPerfect
searchForNearestPerfect
getNumberOfPolyLines
getPolylineList
getLine
getPolyline
validateInputTextAsInteger
выполняют автономные опецерации со входными данными (расчеты, заполнение массивов).
Тип связности – функциональный, сила связности – 10.
Методы
FirstTaskButton_Click
SecondTaskButton_Click
closeSecondTaskButton_Click
closeFitrstTaskButton_Click
отвечают за взаимодействие форм программы (открытие, закрытие).
Тип связности – функциональный, сила связности – 10
Методы
changeFormElementStates
changeFormElementStates
inputNumberTextBox_TextChanged
XTextBox_TextChanged
YTextBox_TextChanged
KTextBox_TextChanged
являются обработчиками событий изменения текста. Они отвечают за проверку корректности введенных значений и изменение элементов формы в соответствии с результатами проверки.
Тип связности – функциональный, сила связности - 9
Методы
drawPicture_Click
searchForNearestPerfectButton_Click
отвечают за ход выполнения подпрограмм, в них важен порядок действий внутри модуля. Каждый из этих методов решает более одной «задачи».
Тип связности – коммуникационный, сила связности – 7.
Расчет силы сцепления
Определим уровень сцепления модулей, для чего проанализируем каждый из модулей разработанного решения на предмет межмодульной связи:
Методы
getPolylineList
getPolyline
являются вызываемыми, их входными параметрами являются простые и структурные данные (массивы, числа, строки). Следовательно, рассматриваемые модули имеют сцепление по образцу, сила сцепления - 3.
Методы
isPerfect
searchForNearestPerfect
getNumberOfPolyLines
getLine
validateInputTextAsInteger
являются вызываемыми, их входными параметрами являются простые данные (числа). Следовательно, рассматриваемые модули имеют сцепление по данным, сила сцепления - 1.
Методы
changeFormElementStates
changeFormElementStates
inputNumberTextBox_TextChanged
XTextBox_TextChanged
YTextBox_TextChanged
KTextBox_TextChanged
являются одновременно вызываемыми и взывающими. Поскольку уровень сцепления вызывающего метода выше, то мы не рассматриваем этот метод как вызываемый.
Эти методы отвечают за взаимодействие между формами и имеют сцепление по управлению, сила сцепления - 4.
Методы
drawPicture_Click
searchForNearestPerfectButton_Click
являются вызывающими, в них происходит вызов всех основных методов для расчета и вывода результата.
Эти методы имеют сцепление по управлению, сила сцепления - 4.
Вывод
В результате проведения оценки было рассчитано общее количество функциональных показателей программы = 49,84. Рассчитанная мера может быть использована для подсчета метрики дефектов качества
Если принять DQ = 1 (программа нормального качества), получим количество максимально допустимых ошибок 50. Кроме того, на основе функциональных показателей можно вычислить другие характеристики ПС, такие как производительность, удельная стоимость и документированность.
Учитывая другие показатели (связность, сцепление), можно достаточно четко оценить уровень качества программы. В решении преобладают модули с силой связности 7 и 10, что говорит о достаточно высоком качестве программы и её легкой тестируемости. Сила же сцепления программных модулей принимает значения 1,3 и 4 что говорит об уровне качества программы выше среднего.