Основные понятия и определения статического анализа программных средств

Виды поддержки и стадии этапа проектирования

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

Технологическая поддержка является детализацией документов методической поддержки, регламентирующей конкретную технологию обеспечения ЖЦ программ. Эти документы определяют допустимую трудоёмкость и длительность каждого этапа и обеспечивают нужное качество при допустимых затратах ресурсов.

Инструментальная поддержка состоит из ПС и средств вычислительной техники, обеспечивающих автоматизацию создания ПС и определяющих её программную и аппаратную оснащённость.

Процесс разработки ПС делится на стадии: техническое проектирование и рабочее проектирование.

Первая стадия включает этапы: структурное проектирование, подготовка технических средств, разработка программ.

Вторая стадия включает этапы: завершение разработки программ, отладка программ в статике, комплексная динамическая отладка программ, выпуск машинных носителей, испытания ПС.

Все виды работ и задач, выполняемых на этих этапах, сгруппированы для оценки трудоёмкости разработки ПС в 5 групп:

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

Статический анализ (СА) – это процесс анализа исходного текста программы без её выполнения на ЭВМ.

СА программ проводится:

– для проверки модульной структуры программного средства, а также логической структуры отдельных модулей и сравнения этих структур с приведенными в программной документации;

– подготовки исходных данных для проведения динамического анализа ПС и разработки плана тестирования ПС;

– оценки конструктивных характеристик программы, степени простоты модификации и сопровождения программы;

– определения наличия несовершенства в программе, неиспользуемых участков программы, лишних переменных;

– оценки текстовой сложности программы, затрат на ее разработку и освоение;

– экспертизы идентичности программ при установлении авторства и разрешении правовых споров;

– определения количественных характеристик при оценке уровня качества программы.

Статический анализ начинается со стадии проектирования программы (укрупненный анализ) и продолжается на всех последующих фазах жизненного цикла программного средства.

Статический анализ программного средства предусматривает получение следующих характеристик (графических и метрических):

модульная структура ПС;

логическая структура отдельного программного модуля;

характеристика текста программы.

Модульная структура анализируемого ПС представляется в виде графа вызовов; списка путей вызовов; матрицы вызовов и достижимости; точек вызовов; метрик иерархии вызовов.

Логическая структура отдельного программного модуля представляется в виде графа управления; путей тестирования; метрик структуры управления.

Характеристики текста программ включают в себя: статистические данные о комментированности программы и текстовые метрики Холстеда.

Граф вызовов – это ориентированный граф, в котором вершины – модули ПС, а рёбра ориентированы от вызывающего модуля к вызываемому.

Граф управления −это ориентированный граф, вершинами которого являются логические блоки, а направленные ребра ориентированы в направлении передачи управления между блоками.

Логический блок программы – это участок программы, состоящий из одного или нескольких операторов и не имеющий разветвлений. Матрица вызовов и достижимости – это матрица, характеризующая отношение вызова и достижимости между произвольными парами программных компонент (модулей).

Путь вызовов – это последовательность соприкасающихся ребер из графа вызовов, где начальная вершина есть корень графа, а конечная − лист дерева.

Путь тестирования – это маршрут в графе управления программного модуля, начальная вершина которого является входной вершиной графа, а конечная вершина − выходной вершиной графа.

Точка вызовов – это местоположение вызова программной компоненты (модуля), задаваемое номером строки и столбца расположения оператора вызова.

Кроме этого СА предусматривает определение ряда количественных характеристик, таких как иерархическая и структурная сложность, тестируемость и др.

Иерархическая сложность: I = N / L, где N – количество вершин в графе вызовов модулей; L – количество уровней.

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

Структурная сложность: S = D / N, где D – количество ребер в графе вызовов модулей; N – количество вершин.

Тестируемость – это свойство ПС, заключающееся в их приспособленности к эффективному применению контрольных тестов, зависящей от степени разветвления вычислительного процесса и

доступности модулей.

Доступность узла (модуля) характеризует структурную вероятность вызова этого модуля, зависящую от разветвленности дерева вызовов.

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

ЭФФЕКТИВНОСТЬ ТЕХНОЛОГИЙ ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: