ББК 32.973 6 страница
Ответ понятен. В описанных примерах начало работы было на первый взгляд вполне разумным. Исполнитель заблаговременно составил и согласовал с заказчиком многотомный документ — техническое задание на разработку программного комплекса (формальные спецификации) и только после этого приступил к работе: проектированию, программированию и тестированию. Тестирование показало, что код программ был безошибочным и точно соответствовал спецификациям. Словом, программа была абсолютно правильной. Парадокс в том, что программа называется правильной, если она соответствует техническому заданию. А если ошибки умудрились просочиться в “святая святых” — задание на разработку системы? Вот тут-то и зарыта собака! Оказывается, тестирование — отнюдь не панацея. Иными словами, тестирование программ, даже самое придирчивое и дотошное, в большинстве случаев в принципе не позволяет обнаружить ошибки в спецификациях. СПЕЦИФИКАЦИИ ПРОГРАММ — ВОТ Со временем стало ясно, что одетые в “шапки-невидимки” ошибки в спецификациях наиболее коварны и представляют собой основную опасность. Они практически неуязвимы для лобовой танковой атаки массированного тестирования. Однако наиболее сенсационным стал вывод о том, что подготовка спецификаций — один из основных источников ошибок. Выяснилось, что на устранение ошибок в требованиях на программы уходит в среднем 82% всех усилий, затраченных коллективом разработчиков на устранение ошибок проекта, тогда как на устранение ошибок кодирования — 1%. Ошибки в спецификациях обнаруживаются обычно лишь после окончания приемосдаточных испытаний разработанной системы. Они “всплывают как мины на фарватере, уже на стадии внедрения и сопровождения готового программного продукта в организации-заказчике” (Г. Громов, 1993). Проблема спецификаций — одна из центральных в программировании. Джеймс Мартин пишет: “То и дело встречается одна и та же печальная история: после нескольких лет напряженной разработки системы обработки данных конечные пользователи заявляют, что это вовсе не то, что они хотели... Обычная реакция разработчиков на такую скверную ситуацию — заявление, что требования к системе не были определены пользователем достаточно полно. И это несмотря на то, что требования к системе иногда представляются в виде многих томов документации”. Что же является причиной ошибок в спецификациях? Рассмотрим вопрос на примере разработки АСУ технологическими процессами атомной электростанции (АСУ ТП АЭС). Заказчики (разработчики АЭС) прекрасно знают “физику процесса”, т. е. технологию работы реакторного и турбинного отделений и других систем АЭС, но, к сожалению, не являются профессорами по части АСУ и программирования. Исполнители (разработчики АСУ ТП АЭС), наоборот, детально знакомы с компьютерами, программированием, особенностями построения систем управления, но, увы, мало что смыслят в реакторах, спецводоочистке и прочих секретах АЭС. Таким образом, проблема состоит в том, что те и другие должны научиться понимать друг друга. Для этого нужно произвести взаимное обучение, взаимный обмен знаниями, которые обычно представлены в виде той или иной документации. Успех взаимного обучения во многом зависит от когнитивных свойств используемого профессионального языка (языка представления знаний). Очевидно, что речь идет о чрезвычайно тонких, деликатных и сложных когнитивных проблемах, в первую очередь, о проблеме понимания. Проведенный анализ позволяет сделать два замечания: 1) ошибки в спецификациях представляют собой одну из наиболее сложных проблем теории и практики программирования; 2) нерешенность этой проблемы связана с целой гаммой причин, среди которых не последнее место занимает недооценка когнитивных проблем и отсутствие эффективных языковых средств для облегчения и улучшения работы ума и решения проблемы понимания. СПЕЦИФИКАЦИИ ПРОГРАММ В методологии RAD используется весьма оригинальный подход к проблеме спецификаций — что-то вроде “умный в гору не пойдет, умный гору обойдет”. В самом деле, зачем создавать трудоемкие бумажные спецификации, если при наличии CASE -инструментов гораздо проще получить работоспособный прототип системы! Новый подход тесно связан с понятием “качество программного продукта”. По мнению Джеймса Мартина, раньше большинство организаций пользовались неудачным определением этого понятия. Они понимали его как “максимально возможное соответствие письменным спецификациям”. При традиционном подходе спецификации, подписанные пользователем, замораживались на весь период, пока выполнялись проектирование, кодирование и тестирование. Зачастую это приводило к тому, что внесение изменений в спецификации запрещалось на срок до восемнадцати месяцев и разрешалось лишь после запуска системы в работу. Естественно, за это время бизнес-требования к проектируемой системе успевали существенно измениться, а созданная система полностью игнорировала этот факт! Так что заказчик был вынужден начинать работу с заведомо непригодной системой, ибо она учитывала не все, а лишь часть его требований, не говоря уже об ошибках в спецификациях, вызванных просчетами пользователя, в связи с чем часть исходных требований была неточна, а многое вообще упущено из виду. Так было. Однако методология RAD дает новое определение качества программ, понимая его как “максимально возможное удовлетворение истинных бизнес-требований (требований пользователя) на момент предъявления работающей системы заказчику”. Чтобы этого добиться, пришлось многое изменить: резко увеличить скорость разработки с помощью I-CASE -инструментов и, сверх того, радикально улучшить взаимоотношения разработчика и пользователя. Если раньше пользователю “выкручивали руки”, заставляя подписывать бумажные спецификации, которые он плохо понимал, то теперь ситуация изменилась. После короткой серии четко организованных начальных ознакомительных переговоров, результаты которых немедленно вводятся в компьютер, разработчик быстро создает компьютерный прототип системы и немедленно передает его пользователю. Последний, сидя за компьютером, пробует проект “на зуб”, осознает свои заблуждения и направляет разработчику ответную порцию уточнений. Разработчик быстро изменяет прототип и тут же выдает пользователю усовершенствованную версию. Подобная игра в пинг-понг между разработчиком и пользователем повторяется несколько раз и приводит к тому, что прототип постепенно превращается в работающую систему. Главная хитрость в том, что пользователи больше не должны покупать кота в мешке и подписывать кишащие ошибками бумажные спецификации (разобраться в которых — выше их сил). Они ставят подпись на проекте, полученном с помощью инструментария I-CASE, который вполне доступен их пониманию и который они могут профессионально оценить. Таким образом, действия пользователя, связанные с контролем проекта, имеют компьютерную точность. Участвуя в отработке проекта за экраном компьютера, пользователь гораздо глубже вникает в детали, чем при умозрительном анализе бумажных спецификаций. Изложенный метод иногда называют “раннее прототипирование при спиральном цикле разработки”, потому что прототип тестируется заказчиком на каждом витке спирали, чтобы снизить вероятность ошибки в законченной системе. Нет сомнения, что перечисленные новшества весьма полезны. Однако нельзя забывать два обстоятельства. Во-первых, RAD — это не общая, а частная методология, так как она применима не к любым системам, а лишь к системам определенного класса (бизнес-приложениям). Во-вторых, наряду с достоинствами, методология RAD имеет и существенные изъяны. К ним относятся недооценка важности проблемы улучшения работы ума, проблемы понимания и когнитивно-эргономического подхода к проектированию языковых средств. Вследствие этого графические и иные средства RAD имеют слабые места и нуждаются в улучшении. По мнению автора, неумение осознать и поставить во главу угла приоритетную роль проблемы улучшения работы ума и проблемы понимания является общим недостатком многих современных подходов к созданию языковых средств проектирования и программирования. КОНЦЕПЦИЯ При разработке нового языка программирования обычно стараются найти разумный компромисс между различными, нередко противоречивыми требованиями, которые, в частности, включают следующие: 1) легкость понимания программ; 2) небольшая трудоемкость написания программ; 3) минимизация потребной машинной памяти; 4) малое время выполнения программ; 5) небольшое время трансляции; 6) легкость автоматизированного выявления ошибок. Перечисленные требования можно разбить на две группы. Группа когнитивных требований включает легкость написания программ и возможность их быстрого и глубокого понимания. Машинные требования охватывают все остальное: экономию машинных ресурсов, малое время выполнения и трансляции программ и т. д. Разработка языка ДРАКОН опирается на концепцию когнитивного программирования, в основе которой лежат следующие постулаты. ПОСТУЛАТ 1. Когнитивные требования к языку рассматриваются как основные, машинные — как второстепенные. Обоснование постулата состоит в том, что сегодня, когда быстродействие компьютеров и объем памяти резко возросли, а их удельная стоимость снизилась, основной проблемой является низкая производительность персонала, поэтому улучшение работы ума, повышение продуктивности человеческого мозга является задачей номер один. ПОСТУЛАТ 2. Легкость понимания программ — более важное требование, чем удобство их написания. Как отмечает Я. Пайл, возможность прочитать программу и отчетливо осознать ее смысл гораздо важнее, чем возможность кратко и быстро ее написать. Причиной служит однократное выполнение работы автором программы и необходимость многократного чтения программы в течение ее жизненного цикла[9]. Известно, что высокая удобочитаемость программ облегчает их сопровождение. ПОСТУЛАТ 3. При создании языка выполнение когнитивных и машинных требований следует осуществлять в два этапа, используя разные средства. На первом этапе основное внимание следует сосредоточить на реализации когнитивных требований и (в разумной степени) игнорировать вопросы машинной эффективности программ. При таком подходе использование языка приведет к созданию гарантированно понятных, но, возможно, неэффективных программ. На втором этапе (который во времени может перекрываться с первым) должна решаться проблема машинной эффективности программ, для чего следует использовать: 1) оптимизирующие трансляторы нового поколения; 2) методы автоматического улучшения (оптимизации) программ, обеспечивающие преобразование неэффективных, но понятных программ в эквивалентные, более эффективные; 3) методы интеллектуализации компьютеров; 4) улучшение характеристик компьютеров до границ, делающих массовую эксплуатацию неэффективных (или частично неэффективных) программ экономически приемлемой и даже выгодной; 5) введение в основной язык дополнительной возможности, позволяющей писать отдельные куски программ на языке ассемблера. Такая возможность используется в случае, когда неэффективность программы, написанной на основных средствах языка, выходит за пределы разумного. Преимущество двухэтапного подхода к реализации когнитивных и машинных требований состоит в том, что он позволяет ослабить давление машинных требований на язык программирования, облегчая задачу разработчиков языка и позволяя им сконцентрировать усилия на коренном улучшении тех свойств языка, от которых зависит решение наиболее важной задачи — кардинального повышения производительности труда персонала. Таким образом, парадигма когнитивного программирования рассматривает критерий улучшения работы ума и сверхвысокого понимания как главное требование к языку (хотя, разумеется, в жизни всегда возможны некоторые исключения). ВЫВОДЫ 1. Чтобы решить проблему понимания и сократить экономический ущерб, вызванный взаимным непониманием между заказчиками, разработчиками и эксплуатационниками, необходимо принять концепцию когнитивного программирования и коренным образом изменить приоритеты при создании языков нового поколения. 2. Сегодня первостепенное значение приобретает требование облегчения и улучшения работы ума, минимизации интеллектуальных затрат персонала, расходуемых на создание и сопровождение программного продукта в течение всего жизненного цикла. 3. Значительная или даже основная доля интеллектуальных усилий персонала при разработке сложных проектов затрачивается на процесс познания, на восприятие и понимание информации. Поэтому требование познаваемости проектов и алгоритмов и связанный с ним критерий сверхвысокой понимаемости становятся определяющими.
Г Л А В А 5 Проблема улучшения работы ума: Разум! Когда же кончится столь долгое несовершеннолетие твое! Уильям Гэзлит ТЕКСТ КАК ЗРИТЕЛЬНАЯ СЦЕНА Сетчатка человеческого глаза состоит из 126,5 миллионов чувствительных элементов — рецепторов. Она способна воспринимать свет с различной длиной волны (в пределах 380...760 нанометров), отражаемый объектами, находящимися в поле зрения, и преобразовывать его в электрические импульсы, которые направляются в высшие отделы мозга по зрительному нерву. Свет воздействует на чувствительное вещество (родопсин) рецепторов, вызывает изменения в структуре белка (опсина) и запускает цепь биохимических процессов в сетчатке, инициирующих передачу импульсов по зрительному нерву [1]. Какую информацию о физических объектах внешнего мира передают эти импульсы? Глаз способен воспринять не любые характеристики физических объектов, а только те, что связаны со световой энергией, т. е. оптические характеристики. Для глаза внешний мир — это оптический внешний мир, а составляющие его объекты — оптические объекты. Импульсы, бегущие в мозг по зрительному нерву, несут информацию только об оптических свойствах внешнего мира. Следовательно, с точки зрения глаза, любой текст и любая компьютерная программа, находящаяся в поле зрения, — это всего-навсего оптическое явление, т. е. оптический текст и оптическая программа. Диосцена — Двумерная Информационная Оптическая сцена, предназначенная для зрительного восприятия информации человеком, целиком лежащая в поле зрения и предъявляемая человеку на бумаге или экране компьютера. Диосцена обычно имеет форму прямоугольника, размеры которого удобно задавать с помощью понятия “формат диосцены”. Для простоты ограничимся форматами, принятыми в стандарте ЕСКД (Единая Система Конструкторской Документации): А0, А1, А2, А3, А4, А4×4. Для зрительного восприятия важен не только формат диосцены, но и ее телесный угол, зависящий от расстояния между глазом и диосценой. Диопрограмма — это любая компьютерная программа (будь то один из чертежей технологии I-CASE, исходный текст, распечатка объектного кода и т. д.), рассматриваемая как диосцена. СИМУЛЬТАННОЕ И СУКЦЕССИВНОЕ За миллионы лет эволюции система “глаз — мозг” изменялась таким образом, чтобы решать две задачи: “видеть, как можно больше (одномоментно), и видеть, как можно отчетливее” [2]. Для решения первой задачи у человека, во-первых, сформировалось поле зрения чрезвычайно больших размеров: 100...110° по вертикали и 120...130° — по горизонтали; во-вторых, образовался аппарат периферийного зрения. Для решения второй задачи в сетчатке глаза возникла область высокой остроты зрения (фовеа) и образовался аппарат центрального (фовеального) зрения [2]. Глаз и мозг способны работать в двух режимах: симультанном (быстрый панорамный прием обзорной информации с помощью периферийного зрения) и сукцессивном (медленный прием детальной информации с помощью центрального зрения). Их оптимальное сочетание позволяет получить важный приспособительный эффект. При симультанном (simultaneous) восприятии система “глаз — мозг” обладает способностью быстро, практически мгновенно воспринимать огромные объемы зрительной информации. Симультанно мы воспринимаем человеческие лица, картины природы, уличные сценки При чтении длинного словесного текста глаз и мозг работают преимущественно в сукцессивном режиме (т. е. медленно), при восприятии изображений доминирует симультанный (быстрый) режим. Если одну и ту же информацию можно представить и в текстовой, и в графической форме, последняя обеспечивает более высокую скорость понимания за счет того, что преимущественно сукцессивный режим восприятия текста заменяется на преимущественно симультанный режим анализа изображения [3]. КАК ПОВЫСИТЬ ПРОДУКТИВНОСТЬ Сетчатка человеческого глаза является двумерной поверхностью, поэтому любую информацию о внешнем мире фотокамера глаза превращает в двумерное изображение на сетчатке. Нас интересует восприятие двумерных искусственных зрительных сцен (диосцен и диопрограмм). Полезно заметить, что искусственные двумерные сцены и естественные трехмерные сцены окружающего мира имеют “общую судьбу”, ибо фотокамера глаза приводит их к одному знаменателю, преобразуя в двумерный сетчаточный зрительный образ. Учитывая этот факт и опираясь на известные результаты эволюционной теории, нейробиологии и психологии, можно сформулировать несколько постулатов, которые имеют важное значение для дальнейшего анализа. ! Чтобы повысить продуктивность мозга при работе с текстами и чертежами, необходимо реализовать возможно более полное использование тех особенностей работы глаза и мозга, которые выработались за миллионы лет эволюции, выбрать наилучшее сочетание симультанного и сукцессивного восприятия, центрального и периферийного зрения. ! Сетчаточный образ диосцены по своим параметрам должен (в пределах разумного) уподобляться сетчаточному образу естественных зрительных сцен. Структура, размеры и телесный угол искусственных зрительных сцен (диосцен) во многих отношениях могут и должны быть приближены к соответствующим параметрам естественных сцен, что позволяет с наибольшей эффективностью использовать уже имеющиеся в человеческом мозгу механизмы, сформировавшиеся в процессе восприятия естественных сцен и, прежде всего, мощные механизмы симультанного восприятия. ! Чтобы задействовать указанные механизмы как можно лучше в целях повышения продуктивности мозга, диосцены, их оптический алфавит и оптический синтаксис следует проектировать с помощью специально разработанных научно-обоснованных когнитивных методов. Для этого когнитивно-значимые параметры диосцен нужно согласовать с конструктивными характеристиками глаза и мозга. ! Диосцена должна отражать не только сущность, но и структуру проблемной ситуации, облегчать мышление, придавать ему большую точность и силу. ! Желательно, чтобы диосцена выглядела не как набор изолированных фрагментов с разорванными линиями, а как законченный целостный зрительный образ, имеющий четкий контур, причем фрагменты этого образа также имели бы контур из замкнутых линий. Наличие замкнутых контуров облегчает выделение смысловой фигуры из зрительного фона как на уровне всего чертежа, так и на уровне его фрагментов[10]. Наша ближайшая цель состоит в том, чтобы подвести читателя к следующему выводу: замена текста эквивалентным ему чертежом (например, переход от текстового программирования к визуальному) обеспечивает более высокую продуктивность мозга за счет “симультанизации”, т. е. увеличения скорости работы мозга при переходе от медленного сукцессивного восприятия текста к быстрому симультанному восприятию чертежа. КОГНИТИВНЫЙ НЕДОСТАТОК Органический, принципиально неустранимый порок текстового представления знаний (в частности, текстового программирования) состоит в том, что оно не позволяет задействовать огромные резервы производительности человеческого мозга, связанные с его способностью к скоростной обработке больших массивов симультанно воспринимаемой информации. Обоснование этого вывода состоит в следующем. Если встать на позиции нейробиологии и когнитивной эргономики, то — вопреки общепринятой точке зрения — изобретение текстовых книг, текстового программирования и компьютеров с текстовым пользовательским интерфейсом было в некотором смысле “противоестественным” событием. Во-первых, рабочее поле зрения ощутимо сузилось, так как телесный угол страницы текста или экрана текстового дисплея во много раз меньше физиологического поля зрения. Во-вторых, значительно уменьшилась скорость обработки информации в мозгу, ибо зрительный анализатор, созданный эволюцией прежде всего для быстрого симультанного восприятия огромных массивов информации, находящейся в широкоугольном поле зрения, мгновенного выделения из нее наиболее важных сведений и быстрого принятия решения, принудительно начал работать в искусственно замедленном и потому неэффективном сукцессивном режиме, неизбежном при чтении текста. Таким образом, ювелирная работа эволюции по формированию мощных симультанных механизмов периферийного зрения при чтении текста оказалась частично невостребованной. Возник нежелательный перекос в распределении нагрузки между двумя зрительными системами — центральной и периферийной, в результате чего роль последней оказалась ослабленной. Между тем периферийная система важнее центральной в том смысле, что “для адекватного понимания зрительной сцены важнее способность к одномоментному крупномасштабному схватыванию отношений между предметами, чем возможность тонкого... анализа отдельных деталей” [2]. Из клинической практики известно, что поражение всех зон поля зрения, кроме центральной (фовеальной) области практически равносильно слепоте. Таким образом, создав текстовые книги, текстовое программирование и компьютеры с текстовым пользовательским интерфейсом, т. е. искусственно отключив значительную часть периферийного зрения, авторы названных изобретений обрекли читателей деловой литературы, программистов и пользователей на частичную “слепоту”, образно говоря, выключили из работы значительную часть их мозга, вследствие чего громадные резервы коллективного интеллекта этих людей не используются. Во всех случаях, когда дальнейший рост продуктивности мозга работников становится неотложной и приоритетной задачей, можно прогнозировать, что текстовое представление знаний и текстовое программирование будет уступать место визуальному (графическому). Когнитивную сущность изложенных соображений можно охарактеризовать как принцип симультанизации: если текст и чертеж эквивалентны (содержат одну и ту же информацию), замена текста удачным чертежом увеличивает продуктивность мозга работников за счет более активного включения в работу симультанных механизмов восприятия и мышления. Слово “мышление” добавлено не случайно, ибо, как показал В. Глезер, можно “отождествить зрительное восприятие с конкретным предметным мышлением” [4]. КАКИМ ДОЛЖЕН БЫТЬ ФОРМАТ ДИОСЦЕНЫ? При традиционном подходе вопрос о выборе формата диопрограммы (т. е. ее габаритов — высоты и ширины) перед программистом почти никогда не встает. В самом деле, если компьютер и принтер уже куплены, то размеры экрана дисплея и формат страницы листинга жестко заданы. Вместе с тем следует иметь в виду, что выбор оптимального формата может оказать сильное влияние на производительность труда. Итак, каким должен быть формат диосцены? Какой формат диопрограммы обеспечивает максимальную продуктивность человеческого мозга? Ответ будет разным для текстового и визуального программирования. Для текстового случая обычно используемый формат экрана и принтера А4, видимо, близок к оптимальному. Однако для визуального программирования дело обстоит иначе. Принцип зависимости эффективности восприятия от используемой доли поля зрения. Скорость симультанного восприятия визуальной диосцены зависит от ее габаритов и телесного угла, т. е. от фактически используемой доли поля зрения. Если эта доля невелика, скорость будет незначительной, если велика — большой. Если доля слишком мала, следует говорить о недоиспользовании возможностей симультанного восприятия, т. е. об искусственно вызванной частичной “слепоте”, которая отрицательно влияет на продуктивность мозга. Другой недостаток состоит в том, что необоснованное уменьшение формата визуальной диосцены может привести к когнитивной перегрузке мозга. Предположим, имеется чертеж визуальной программы, занимающий всю площадь большого листа бумаги формата А1. Предположим далее, что мы в исследовательских целях разрезали его на восемь страниц формата А4 и стали поочередно предъявлять их человеку, который должен прочитать чертеж программы и детально в ней разобраться. Чтобы выявить суть дела, прибегнем к аналогии. Допустим, нужно опознать человека по фотографии. Если перед нами нормальная фотография, задача решается легко. Но что будет, если фотография разорвана на восемь частей, на которые запрещается смотреть одновременно и которые предъявляются только по очереди? Очевидно, при таких условиях решение задачи опознания становится чрезвычайно трудным, а с увеличением числа фрагментов — невозможным. Возвращаясь к примеру с чертежом программы, можно сказать, что расчленение целостного зрительного образа визуальной программы на несколько фрагментов есть искусственно вызванное усложнение задачи, приводящее к неоправданной перегрузке мозга. В условиях подобного расчленения 95% интеллектуальных усилий тратится на надуманную работу по воссозданию целостного зрительного образа и лишь 5% — на решение основной задачи (понимание программы). В самом деле, чтобы понять смысл ансамбля из восьми диосцен, читатель должен, постоянно листая страницы программы взад и вперед, поочередно прочитать, понять и запомнить все восемь фрагментов чертежа программы, найти и мысленно соединить все отрезки, обозначающие переход линий с листа на лист; после этого его мозг должен “склеить” фрагменты в единый взаимоувязанный образ. Все эти трудозатраты оказываются ненужными, когда мы смотрим на диопрограмму формата А1. Для условий описанного примера справедливо заключение: если заменить восемь “рваных кусков” формата А4 на единую стройную картину формата А1, можно значительно увеличить скорость мышления и продуктивность мозга программиста. Этот вывод подтверждается мировой практикой создания машиностроительных чертежей и электрических схем, где широко используются большие форматы А1 и А0, что нашло закрепление в соответствующих международных и национальных стандартах. Изложенные соображения позволяют сформулировать принцип приоритета целостного образа. Если имеются два эквивалентных графических представления одной и той же программы: 1) в виде одного большого чертежа (например, формата А4×4, А1 или А0), который хорошо отражает структуру проблемной ситуации в форме целостного и стройного визуального образа, и 2) в виде набора из нескольких маленьких чертежей (например, четырех, восьми или шестнадцати форматок А4), то замена набора мелких чертежей на один большой увеличивает продуктивность мозга за счет увеличения активно используемой доли физиологического поля зрения, замены образов памяти на образы восприятия, устранения паразитной когнитивной нагрузки и более эффективного использования симультанных механизмов. КОГНИТИВНЫЕ РЕКОМЕНДАЦИИ Говорят, один рисунок стоит тысячи слов, и это действительно так при условии, что рисунок хороший. Последнее условие является существенным, так как неумелое использование чертежей и рисунков может принести только вред. Возникает вопрос: при каких условиях замена текста изображением дает максимальный когнитивный выигрыш с точки зрения интенсификации работы мозга? Говоря упрощенно, таких условий всего два: визуальная диосцена должна иметь, во-первых, хорошие размеры, во-вторых, хорошую структуру[11]. Что значит хорошие размеры? Размеры зависят от когнитивной сложности проблемы. Для более простых случаев можно использовать форматы А4 и А3, для более сложных — форматы А4×4, А1, для особо сложных А0. Напомним еще раз, что все эти форматы прошли массовую проверку в мировой инженерной практике. Они начинают применяться и в практике программирования. Например, при использовании CASE -инструмента ProKit WORKBENCH фирмы McDonnel Douglas Information Systems используются программные чертежи размером 3 × 4 фута (91 × 122 см) — что-то среднее между форматами А1 и А0. Что значит хорошая структура? Ниже дается примерный ответ, но не для общего случая, а только для блок-схем (потому что язык ДРАКОН строится на основе блок-схем; большинство программных чертежей методологии RAD — тоже блок-схемы)[12]. По нашему мнению, блок-схемы обладают хорошей структурой, если при их создании учитываются (возможно, с исключениями) следующие правила. ! Структура диосцены должна быть не хаотичной, а регулярной и предсказуемой. ! Диосцену желательно разбить на зоны, имеющие зрительно-смысловое значение[13] (зона обычно содержит несколько блоков). ! Назначение зон желательно разъяснить с помощью надписей, расположение которых в поле чертежа подчиняется визуальной логике картины и облегчает ее понимание.
|