поэтому весьма полезно ее как-то фиксировать в виде отдельных документов
(часто не формализованных, рассчитанных только для восприятия человеком).
Обычно программы разрабатываются в расчете на то, чтобы ими могли
пользоваться люди, не участвующие в их разработке (их называют
пользователями). Для освоения программы пользователем помимо ее текста
требуется определенная дополнительная документация. Программа или
логически связанная совокупность программ на носителях данных, снабженная
программной документацией, называется программным средством (ПС).
Программа позволяет осуществлять некоторую автоматическую обработку
данных на компьютере. Программная документация позволяет понять, какие
функции выполняет та или иная программа ПС, как подготовить исходные
данные и запустить требуемую программу в процесс ее выполнения, а также:
что означают получаемые результаты (или каков эффект выполнения этой
программы). Кроме того, программная документация помогает разобраться в
самой программе, что необходимо, например, при ее модификации.
1.2. Неконструктивность понятия правильной программы.
Таким образом, можно считать, что продуктом технологии
программирования является ПС, содержащее программы, выполняющие
требуемые функции. Здесь под «программой» часто понимают правильную
программу, т.е. программу, не содержащую ошибок. Однако, понятие ошибки в
программе трактуется в среде программистов неоднозначно. Согласно Майерсу
[1.2, стр. 10-13] будем считать, что в программе имеется ошибка, если она не
выполняет того, что разумно ожидать от нее пользователю. «Разумное
ожидание» пользователя формируется на основании документации по
применению этой программы. Следовательно, понятие ошибки в программе
является существенно не формальным. В ПС программы и документация
взаимно увязаны, образуют некоторую целостность. Поэтому правильнее
говорить об ошибке не в программе, а в ПС в целом: будем считать, что в ПС
имеется ошибка (software error), если оно не выполняет того, что разумно
ожидать от него пользователю. В частности, разновидностью ошибки в ПС
является несогласованность между программами ПС и документацией по их
применению. В работе [1.3] выделяется в отдельное понятие частный случай
ошибки в ПС, когда программа не соответствует своей функциональной
спецификации (описанию, разрабатываемому на этапе, предшествующему
непосредственному программированию). Такая ошибка в указанной работе
называется дефектом программы. Однако выделение такой разновидности
ошибки в отдельное понятие вряд ли оправданно, так как причиной ошибки
может оказаться сама функциональная спецификация, а не программа.
Так как задание на ПС обычно формулируется не формально, а также из-за
того, что понятия ошибки в ПС не формализовано, то нельзя доказать
формальными методами (математически) правильность ПС. Нельзя показать
правильность ПС и тестированием: как указал Дейкстра [1.4], тестирование