Анализ защищенности программного обеспечения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

ии технологии структурного проектирования ПО, количество ошибок в нем значительно снижается. Существует несколько метрик для оценки структурности ПО, например, метрика структурности программы, основанная на оценке линеарности УГП - подсчете точек пересечения дуг графа программы . Полученная оценка линеарности УГП может использоваться для оценки меры неструктурированности программы. Данное предположение основано на том, что структурные конструкции при представлении их управляющим графом планарны и, таким образом, точка пересечения дуг в УГП появляется только при наличии неструктурной конструкции. Следовательно, по их количеству можно оценить неструктурированность программы.

Наглядность

Наглядность ПО - это наличие и представление в наиболее легко воспринимаемом виде исходных текстов ПО, полное их описание в соответствующих программных документах. Оценка наглядности ПО требует привлечения наук, изучающих психологию человека и/или экспертных оценок. Данное понятие пока формализовать невозможно, но существуют методики косвенной оценки наглядности, например, оценка уровня комментированности программы :

 

 

где: - количество комментированных строк исходного текста программы;

- общее количество строк исходного текста программы.

На основе практического опыта принято считать, что для наглядности исходных текстов программы требуется , т.е. на каждые десять строк программы должен приходиться хотя бы один комментарий.

Используя оценку уровня языковых средств, применяемых в программе, можно также косвенно оценивать наглядность данной программы.

Наглядность ПО можно также косвенно оценить по его структурности. При этом более структурированное ПО имеет более высокую наглядность.

Повторяемость

Повторяемость ПО - это степень использования типовых проектных решений, или компонентов, входящих в ПО. Оценивается на основе статистики об использовании типовых решений и модулей, входящих в состав ПО, собранной в процессе разработки данного ПО.

 

1.4.2 Показатели надежности

Надежность ПО - это способность ПО в конкретных областях применения выполнять заданные функции в соответствии с программными документами в условиях возникновения отклонений в среде функционирования, вызванных сбоями технических средств, ошибками во входных данных, ошибками обслуживания и другими дестабилизирующими воздействиями [15]. В понятии надежности ПО обычно выделяют два понятия[23]:

работоспособность ПО, т.е. способность ПО выполнять свои функции в соответствии с программными документами;

устойчивость функционирования ПО, т.е. способность ПО выполнять свои функции в условиях возникновения сбоев и отклонений в среде функционирования.

Сравнительно недавно начали появляться методы оценки надежности, разработанные специально для оценки надежности ПО. Они используют понятие математической модели надежности программы (МНП). МНП - это математическое выражение, связывающее один или несколько показателей надежности ПО с непосредственно измеренным параметром, характеризующим ПО в некоторой среде. Иными словами, это предельно абстрагированная математическая модель программы, в которой отсутствуют детали, не влияющие на надежность. Это заметно упрощает процедуру оценки надежности программы [24].

Среди МНП можно выделить следующие:

априорные МНП (АМН);

эмпирические МНП (ЭМН);

полные (ПМН).

В основе АМН лежат такие характеристики ПО, как объем, сложность и характеристики процесса создания. С помощью АМН можно оценить показатели надежности ПО до начала его испытаний. Существующие на сегодняшний день АМН пока не позволяют применить их на практике, в основном, это оценка сложности разрабатываемого ПО, например, по метрике Холстеда, и попытка связать ее с надежностью будущего ПО. Точная взаимосвязь сложности ПО с его надежностью пока неясна. Так как главным, если не единственным источником ошибок является программист, то здесь необходимо привлекать дисциплины, изучающие самого человека.

В ЭМН используется информация, полученная в процессе функционирования ПО (отладки и т.д.). Эмпирические МНП делятся на:

непрерывные ЭМН. Если ЭМН имеет в качестве одного из аргументов время, то такая модель называется непрерывной ЭМН (НЭМН).

дискретной ЭМН (ДЭМН), если время отсутствует, а используется порядковый номер испытания.

Для получения необходимой для ЭМН информации пользуются результатами отладки ПО в процессе разработки, результатами бета-тестирования (тестирования предварительной или окончательной версии ПО в условиях, близких к реальным, группой специально подготовленных пользователей - бета-тестеров).

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

В настоящее время наиболее известной НЭМН является модель Шумана. Согласно этой модели интенсивность отказов определяется тем, насколько часто в процессе выполнения программы приходится сталкиваться с дефектами. То есть, интенсивность отказов зависит от количества обнаруженных дефектов. Если допустить, что интенсивность отказов пропорциональна количеству обнаруженных ошибок, то можно получить экспоненциальную модель. В этой модели предполагается, что зависимость инте