Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tehnprogr_lec1,2.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
174.89 Кб
Скачать

Лекция 12.02.13

Анализ правильности проектной информации Основные проблемы и виды анализа проектной информации

Чем раньше обнаружена ошибка, тем меньше затрачивается средств на её исправление. Для нас наиболее важный период - это формирование требований к ПО.

Главной проблемой с которой сталкиваются разработчики ПО при попытке анализировать правильность проектной информации заключается в том, что универсальных методов проверки нету, дающие исчерпывающую информацию о правильности проектной информации. Очевидно, что эти методы должны базироваться на строгом, формальном (математическом) подходе. И в этом отношении существует 2 принципиальных подхода:

  • подход, основанный на извлечении правильной проектной информации из математических рассуждений

  • подход, который опирается на доказательстве правильности (верификации) информации

Оба подхода базируются на положении, что в основе должна лежать всегда правильная

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

Существует ряд недостатков формальных методов анализа проектной информации:

  • сложность

  • громоздкость, а следовательно большая вероятность допущения ошибки

  • невозможность прогнозировать функционирование ПО в случае неправильных исходных данных

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

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

В настоящее время среди формальных методов анализа наиболее распространенным является метод верификации - верификации программ на основе методов индуктивных утверждений, предложенной Флоидом и модифицированный Хоаром.

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

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

  • исходное

  • утверждение, полученное в результате преобразований (выведенной утверждение)

Затем формулируется теорема (условие верификации) о том, что выведенное утверждение правильно. Указанное доказательство теоремы свидетельствует, что программа работает правильно, в противном случае необходимо выесняется неправильность работы управляющего графа. Успешное доказательство теоремы свидетельствует о правильности работы программы. Кроме того, необходимо доказать, что программа должна закончить свою работу.

Обычно, формулируют не одно и несколько утверждение, количество определяется путями управляющего графа.

Наиболее сложные вещи в этом методе – поиск ошибки в циклах, т.к. механизм, предложенные в этом методе не всегда срабатывает.

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

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

К тестированию также относится и сквозной контроль – т.е. проверка правильности проектной информации путем имитации её выполнения на тестах. Имитация может быть ручной и автоматизированной. Тестирование относится к динамическим средствам проверки проектной информации, т.е. средствам, основанным на выполнении проверяемой информации. К ним также относится проверка в процессе выполнения некоторых утверждений (аннотаций о состоянии вычислений в её отдельных точках).

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

Таким образом, методы оценки правильности проектной информации можно рассматривать по 3 направления

  • статические и динамические

  • формальные и неформальные

  • ручные и автоматизированне

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

Еще одна проблема – обеспечение полноты проверки, которая состоит в планировании процесса проверки, например по стоимости, времени и т.д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]