- •Восточно-сибирский государственный технологический университет
- •Метрология программного обеспечения
- •220400 «Программное обеспечение вычислительной техники и автоматизированных систем»
- •Введение
- •1. Роль стандартизации в развитии разработок в области информационных технологий.
- •1.1. Нормативно-методическая база стандартизации по
- •1.2. Основные направления стандартизации процессов разработки программных средств.
- •2. Стандартизация информационных технологий: состояние и перспективы развития.
- •2.1. Современное состояние стандартизации в мире
- •2.2. Состояние и проблемы стандартизации в России
- •3. Система показателей качественных и количественных характеристик программного продукта
- •3.1. Стандартизация характеристик качества
- •3.2. Выбор показателей качества
- •3.3. Оценки качества по
- •4. Модели и метрики оценки качества по
- •4.1. Оценка сопровождаемости программ.
- •4.2. Корректность
- •4.3. Метрики сложности программ
- •4.3.1. Метрики размера программ
- •4.3.2. Метрики сложности потока управления программ.
- •3.4.3. Метрики сложности потока данных
- •4.4. Модели надежности программ
- •4.4.1. Модели надежности по по структуре времени
- •4.4.2. Методы оценки числа оставшихся в по ошибок, основанные на метриках Холстеда
- •4.4.3. Методы оценки показателей надежности по, основанные на моделях «посева» и разметки ошибок и на моделях структуры входных данных.
- •4.4.4. Методы оценки, основанные на моделях структуры входных данных
- •4.4.5. Текстовые модели надежности по
- •4.5. Метрики стилистики и понятности программ
- •4.6. Метрика изменения длины программной документации.
- •4.7. Методы проведения контроля за качеством по
- •5. Сертификация программного обеспечения
- •5.1. Понятие сертификации
- •5.2. Виды сертификации программного обеспечения
- •5.3. Органы сертификации программного обеспечения в Российской Федерации
- •Список используемой литературы
3.4.3. Метрики сложности потока данных
Другая группа метрик сложности программ - метрики сложности потока данных, т.е. использования, конфигурации и размещения данных в программах.
МЕТРИКА ОБРАЩЕНИЯ К ГЛОБАЛЬНЫМ ПЕРЕМЕННЫМ.
Рассмотрим метрику, связывающую сложность программ с обращениями к глобальным переменным.
Пара "модуль-глобальная переменная" обозначается как (p,r), где p - модуль, имеющий доступ к глобальной переменной r. В зависимости от наличия в программе реального обращения к переменной r формируются два типа пар "модуль-глобальная переменная": фактические и возможные. Возможное обращение к r с помощью p показывает, что область существования r включает в себя p.
Характеристика Aup говорит о том, сколько раз модули Up действительно получали доступ к глобальным переменным, а число Pup - сколько раз они могли бы получить доступ.
Отношение числа фактических обращений к возможным определяется:
Rup = Aup/Pup.
Эта формула показывает приближенную вероятность ссылки произвольного модуля на произвольную глобальную переменную. Очевидно, чем выше эта вероятность, тем выше вероятность "несанкционированного" изменения какой-либо переменной, что может существенно осложнить работы, связанные с модификацией программы.
К сожалению, пока нельзя сказать, насколько удобен и точен этот метод на практике, так как нет соответствующих статистических данных.
МЕТРИКА СПЕНА
Определение спена основывается на локализации обращений к данным внутри каждой программной секции. Спен - это число утверждений, содержащих данный идентификатор, между его первым и последним появлением в тексте программы. Следовательно, идентификатор, появившийся n раз, имеет спен, равный n-1. При большом спене усложняется тестирование и отладка.
МЕТРИКА ЧEПИНА
Суть метода состоит в оценке информационной прочности отдельно взятого программного модуля с помощью анализа характера использования переменных из списка ввода-вывода.
Все множество переменных, составляющих список ввода-вывода, разбивается на 4 функциональные группы :
1. P - вводимые переменные для расчетов и для обеспечения вывода.
Примером может служить используемая в программах лексического анализатора переменная, содержащая строку исходного текста программы, т.е. сама переменная не модифицируется, а только содержит исходную информацию.
2. M - модифицируемые, или создаваемые внутри программы переменные.
3. C - переменные, участвующие в управлении работой программного модуля (управляющие переменные).
4. T - не используемые в программе ("паразитные") переменные. Поскольку каждая переменная может выполнять одновременно несколько функций, необходимо учитывать ее в каждой соответствующей функциональной группе.
Далее вводится значение метрики Чепина :
Q = a1*P + a2*M + a3*C + a4*T,
где a1, a2, a3, a4 - весовые коэффициенты.
Весовые коэффициенты использованы для отражения различного влияния на сложность программы каждой функциональной группы. По мнению автора метрики, наибольший вес, равный трем, имеет функциональная группа C, так как она влияет на поток управления программы. Весовые коэффициенты остальных групп распределяются следующим образом: a1=1, a2=2, a4=0.5. Весовой коэффициент группы T не равен 0, поскольку "паразитные" переменные не увеличивают сложность потока данных программы, но иногда затрудняют ее понимание.
Q = P + 2M + 3C + 0.5T
Следует отметить, что рассмотренные метрики сложности программ основаны на анализе исходных текстов программ и графов, что обеспечивает единый подход к автоматизации из расчета.