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

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

Лекция 12.02.13

Аркадий Чикибаев. Союз граждан Украины.

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

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

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

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

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

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

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

· сложность

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

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

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

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

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

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

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

· исходное

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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