Анализ защищенности программного обеспечения
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
качества ПО, каждый из которых детализирован несколькими характеристиками. Аналогом международного стандарта IS09126:1991 является российский стандарт ГОСТ 28195-89. Он близок к международному стандарту по структуре и идеологии, хотя номенклатура показателей несколько отличается от номенклатуры показателей качества, предложенной в международном стандарте.
Оценка показателей качества ПО может производиться различными методами, учитывающими специфику каждого конкретного показателя. Основными из них являются:
метод экспертных оценок;
оценки с применением различных математических методов (так называемые метрики программ);
эвристические методы, выработанные практикой.
Несмотря на довольно большое количество метрик программ (несколько сотен), измеряемых с помощью инструментальных программных средств, метрология программного обеспечения на настоящий момент развита достаточно слабо. Например, используя существующие метрики, пока невозможно однозначно оценить уровень качества анализируемой программы без дополнительного применения экспертных методов.
Все существующие на сегодняшний день показатели качества ПО можно разделить на следующие классы:
)Показатели сопровождения - структурная и информационная сложность ПО, структурность ПО, наглядность, повторяемость.
)Показатели надежности.
)Показатели удобства работы - легкость освоения, доступность эксплуатационной программной документации, удобство эксплуатации и обслуживания.
)Показатели эффективности - уровень автоматизации, временная эффективность, ресурсоемкость.
)Показатели универсальности - гибкость, мобильность, модифицируемость.
)Показатели корректности - логическая корректность, полнота реализации, согласованность, проверенность.
Дадим подробный анализ перечисленных показателей качества ПО и методов, используемых для их оценки.
.4.1 Показатели сопровождения программного обеспечения
Показатели сопровождения ПО характеризуют технологические аспекты, обеспечивающие простоту поиска и устранения ошибок в программе и программной документации и поддержания ПО в актуальном состоянии.
Оценку структурной (топологической) и информационной сложности ПО в настоящее время проводят различными способами, которые можно разделить на метрики сложности потока управления и метрики сложности потока данных [16]. Метрики сложности потока управления связывают сложность ПО со сложностью структуры передач управления при работе оцениваемого ПО. Оценку сложности потока управления проводят с помощью следующих методов:
а) Метрика Холстеда.
Метрика Холстеда [17] используется для численной оценки сложности программы. Исходными данными для нее являются:
количество уникальных операндов в программе;
количество операторов в программе;
общее количество операторов данного языка программирования. Метрика Холстеда заключается в следующем.
Введем обозначения:
- число уникальных операторов в программе,
- число уникальных операндов, в программе,
- словарь программы,
- общее число операторов в программе,
- общее число операндов в программе,
- длина программы.
Тогда объем программы вычисляется по формуле:
Длину программы и словарь программы связывает следующая зависимость:
Значение расчетной длины, значительно отличающееся от измеренной длины, указывает на наличие в программе избыточных конструкций (несовершенств). Холстед приводит шесть классов несовершенств:
дополняющие друг друга операции;
синонимические операнды;
неоднозначные операнды;
наличие общих подвыражений;
ненужное присваивание;
нефакторизированные выражения.
Потенциальный объем ПО вычисляется по формуле:
где - число входных и выходных данных программы.
Данный показатель целесообразно применять для оценки неструктурированных компонентов, поскольку сложность структурной программы коррелирует с ее размером. Уровень программы вычисляется формуле:
По уровню программы можно судить об избыточности программы. При этом более качественные (неизбыточные) программы имеют большее значение уровня.
Зависимости, используемые в метрике Холстеда, вытекают из положений теории информации. Используя метрику Холстеда, можно оценить теоретическую длину конкретной программы, ее объём, избыточность реализации алгоритма и численно оценить уровень языка программирования, на котором написана программа. Важно отметить, что эта оценка будет достаточно правдоподобной. Правдоподобность такой оценки подтверждается проведенным корреляционным и регрессионным анализом на примере типичных программных модулей. [18]
б) Метрика Маккейба.
Метрика Маккейба [19] использует графовое представление структуры программы - структурное дерево программы (СДП) и структуры передач управления при ее работе между операторами, или, на более высоком уровне, между модулями - управляющий граф программы (УГП). Такое представление позволяет оценить сложность программы различными методами. Например, методами алгебры графов оценивают связность построенного УГП и, таким образом, оценивают степень отличия данного УГП от графа типа дерево, что характеризует структурную сложность программы :
где: - количество ребер в графе вызовов модулей (УГП);
- ко