Тема 3.1. Ошибки ПО: причины, источники, классификация

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

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

­ Оценивать реальное состояние проекта и планировать трудоемкость и срок до его завершения;

­ Рассчитывать необходимую эффективность средств защиты от невыявленных ошибок;

­ Оценивать требующиеся ресурсы ПК по памяти и производительности с учетом затрат на устранение ошибок;

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

Анализ первичных ошибок в программе производиться на двух уровнях детализации:

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

2. обобщенно – по суммарным характеристикам их обнаружения в зависимости от продолжительности разработки, эксплуатации и сопровождения ПС.

Классификация ошибок:

1. технологические ошибки. В документации и фиксировании программ в памяти ПК составляют 5-10% от общего числа ошибок обнаруживаемых при отладке. Большинство технологических ошибок выявляется автоматически формализованными методами. Например, при ручной подготовки машинных носителей (перфокарты, магнитные ленты) исходные данные имеют вероятность искажения около 10-3 на символ или 10-4 на двоичный разряд, т.е. все зависит от селектирующих свойств человека.

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

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

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


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



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