Блок-схемы
Литературный источник |
Использование детальных и укрупненных блок-схем нашло широкое распространение с первых дней появления программирования. В недавние годы критики отмечали растущее недовольство многих программистов в случаях, когда требовалась разработка детальных блок-схем. Брукс [13] назвал блок-схемы проклятием. Ледгарт и Гмура, используя более умеренные выражения, настаивали на том, что «блок-схемы могут легко скрыть полезную информацию, выделяя лишь последовательность передачи управления, что отвлекает программиста от важных функциональных взаимосвязей проектируемого программного средства в целом» [41]. Апологеты метода, одним из которых является Бол [7], утверждают, что блок-схемы являются «важным инструментом решения задач».
Таблица 11.7. Прочие управляющие структуры
^ Литературный
Результаты экспериментов источник
Для понимания программы арифметический оператор IF в Фортране труднее для начинающих, чем логический IF, этот вывод не касается программистов средней квалификации [70]
Для обеспечения правильности программ конструкция вида IF-YMOBne-THEN-ELSE - противоположное условие значительно лучше, чем обычный оператор типа IF-условие-THEN-ELSE [78] В отношении наилучшего восприятия и измеримости качества программы комбинация конструкций CASE и ITERATION лучше, чем любая из конструкций IF-THEN-ELSE или CASE [27]
В тех случаях, когда блок-схемы существенно длиннее текста программы, они могут оказаться более трудными для изучения и рассеивать внимание. Компактные укрупненные блок-схемы могут прояснить взаимодействие модулей программы, которое гораздо труднее понять при изучении ее текста. Дальнейшее рассмотрение блок-схем будет продолжено в гл. 5.
На практике можно использовать описания алгоритмов на метаязыке [языке проектирования программ PDL] вместо составления блок-схем. Во всяком случае, следует избегать использования чрезмерно детализированных блок-схем. В комплект документации по алгоритмам программ следует непременно включать дополнительные документы типа описаний структур данных.
1.3.3. Отладка
Отладка есть процесс обнаружения и исправления ошибок в программах. Исследования процесса отладки охватывают классификацию типов ошибок, методов отладки и конструкций языков программирования, влияющих на процесс отладки.
На практике результаты отладки не дают ясной картины. Очевидно, что если отладочные средства не используются, то это не значит, что их использование не было бы полезным. Возможно, наиболее строгим полученным результатом является демонстрация влияния особенностей употребляемого языка на появление ошибок в программе. Для минимизации числа ошибок следует применять язык программирования со строгим контролем типов переменных и не использовать массивы (табл, 1.9—1,11). J
Таблица 1.8. Достоинства и недостатки блок-схем
„ Литературный
Результаты экспериментов источник
Текст процедуры запомнить легче, чем ее блок-схему [90]
Меньшее число ошибок достигается при кодировании программы в соответствии с блок-схемой (а ие с текстом процедуры на естественном языке) [37, 90]
В ряде задач (составление, освоение, отладка и модификация программ) существенная полезность блок-схем не отмечена [75] Блок-схемы полезны для прослеживания последовательности передач управления в программе, но не помогают в нахождении ошибок [11, 12] Наличие документации по используемым структурам данных полезнее для понимания программы, чем блок-схемы или описание на языке проектирования [72] Программисты создают более качественные проекты при использовании описаний на языке проектирования PDL [58] Использование описаний на языке проектирования не лучше и не хуже для освоения программы или ее последующего кодирования, чем применение блок-схем [58]