ББК 32.973 3 страница
Язык ДРАКОН — общедоступный интеллектуальный инструмент нового типа, специально сконструированный для облегчения и улучшения работы ума интеллектуальных работников и учащихся, особенно полезный при решении трудных и сверхтрудных задач систематизации и автоформализации профессиональных знаний, описания структуры человеческой деятельности и многих других задач, о которых речь впереди. Отличие ДРАКОНА в том, что это не текстовый, а визуальный (графический) язык. Образно говоря, он прокладывает кратчайший путь к цели, взрывая логико-математические, алгоритмические и технологические скалы и препятствия динамитом наглядных картинок. Благодаря этим и другим приемам многие (хотя, разумеется, далеко не все) сложные проблемы превращаются в простые, непонятное становится понятным. В итоге достигается искомый выигрыш: производительность растет, качество улучшается, трудная работа облегчается и оказывается более приятной, умственные перегрузки резко уменьшаются, опускаясь намного ниже опасной черты. СЕКРЕТЫ МУДРОГО ДРАКОНА: Некоторые идеи, связанные с языком ДРАКОН, необычны. Их очень трудно изложить кратко, понятно и вместе с тем строго научно. Чтобы избавить читателя от утомительных длиннот и громоздких объяснений, этот параграф написан в форме забавного диалога. Автор. Не правда ли, выполняемая вами работа очень сложна и требует больших умственных усилий? Так вот, если изобразить вашу работу на языке ДРАКОН, наблюдается следующий неожиданный эффект. Хорошо знакомая задача на глазах преображается и предстает перед вашим изумленным взором в совершенно новом свете — она резко упрощается и становится ясной, четкой и обозримой. То, что выглядело сложным и запутанным, оказывается прозрачным и очевидным. Смутное — отчетливым. Абстрактное — наглядным. А прежде скрытые ошибки видны, как на ладони. Читатель. Но ведь чудес не бывает! За счет чего это достигается? Автор. За счет использования более эффективных (более ДРУЖЕЛЮБНЫХ по отношению к человеку) образных средств представления профессиональных знаний, проектов и документации. Читатель. Наверно, это очень трудно? Автор. Как раз наоборот. Язык наглядных образов — самый легкий язык. Девиз ДРАКОНА: взглянул — и сразу стало ясно! Читатель. Но ведь языков и так расплодилось великое множество. Зачем создавать еще один? Автор. Пришла хозяйка в магазин: товару много, а купить нечего. В общем, языки есть, да не про нашу честь. Давайте послушаем притчу. Притча о том, как Господь Бог языки создавал На восьмой день Творения, когда мир уже был создан, Господь приступил к разработке формальных языков. И тут произошло нечто удивительное. — Поскольку больше всего я люблю программистов, — заявил Всевышний, — специально для них я создал три тысячи прекрасных языков. — А как же остальные? — удивились референты и апостолы. — Ведь им тоже нужны свои языки. — Какие такие остальные? — Ну все остальные, кроме программистов: физики, химики, геологи, медики, энергетики, атомщики, управленцы, экономисты, биологи, юристы всякие. — Зачем им свои языки? Пусть пользуются языками программирования. — Да они их не знают. — Что значит не знают. Пускай выучат. Наступило неловкое молчание. Наконец, апостол Павел дипломатично произнес: — Ваше Божественное Всемогущество! Поскольку Вы сами создали все языки, для Вас выучить язык программирования — раз плюнуть. Но человек слаб. — Это верно, он слаб, — подтвердил Господь. — Поэтому для среднего работника умственного труда (не программиста), у которого своих забот выше крыши, разобраться в тонкостях программирования довольно трудно. — Трудности можно преодолеть. — Можно-то оно можно. Так ведь душа не лежит, потому как — противно, а главное — зачем? Нельзя же насильно заставлять человека учить то, что ему не нужно для работы. Для большинства людей язык программирования — это “собачий” язык, а написанные на нем программы — странная окрошка из египетских иероглифов. Они непонятны никому, кроме горстки их создателей. — Что вы такое говорите! — возмутился Господь. — Сразу видно, что вы отстали от жизни. Академик Ершов учит, что “программирование — вторая грамотность”. Нынче даже школьники программы освоили. А студенты их, как орехи, щелкают. Запомните: программирование должны знать все! Это и будет общий язык для взаимопонимания между специалистами. И никаких других языков не нужно. Все. Совещание окончено. Выполняйте! Однако, как это часто бывает, с реализацией руководящих указаний по неизвестным причинам возникла небольшая заминка. Или, наоборот, большая. Потому что лозунг “программирование — вторая грамотность”, подразумевающий чуть ли не поголовное умение программировать, воплотить в жизнь до сих пор не удалось. Практика показывает, что умеющие программировать составляют лишь около 10% от общей численности работников умственного труда. Поэтому сегодня в сообществе интеллектуальных работников образовался значительный языковый дисбаланс. Он заключается в том, что меньшинство (10% программистов) владеет огромным языковым богатством, включающим 3000 языков программирования. А подавляющее большинство (90% специалистов) кроме языка математики не имеют в своем распоряжении никакого другого широко распространенного и универсального формального средства. Читатель. Так, может, этим специалистам и не нужны никакие языки? Автор. Это не так. Язык — интеллектуальное оружие специалиста. Чем лучше язык, тем лучше работает мозг, тем выше производительность умственного труда. Читатель. Как же быть? Автор. Прежде всего следует признать, что при выборе генерального направления разработки искусственных языков допущена стратегическая ошибка. Нынешняя ситуация, когда 90% специалистов не имеют языка, пригодного для быстрого и эффективного решения своих задач, является ненормальной и неприемлемой. Читатель. Где же выход? Автор. Нужно устранить диспропорцию в обеспечении специалистов языковыми средствами. Поскольку меньшинство (т. е. программисты) уже располагает достаточным числом высокоэффективных языков, настало время подумать об остальных. Сегодня необходимо создать не очередной язык для меньшинства, а язык для всех, который позволит укрепить слабое звено и улучшить умственную продуктивность большинства специалистов. Для этого нужно построить формальный или частично формальный язык, который был бы не “собачьим” или “птичьим”, а “человечьим” — общедоступным, удобным и понятным для каждого. Язык ДРАКОН как раз и призван хотя бы отчасти заделать эту зияющую брешь. ДРАКОН — это язык не для элиты, а для широких масс, которые категорически не приемлют “птичьи” языки программирования. Смена терминов Читатель. Стало быть, ДРАКОН — это не язык программирования, а что-то новенькое. Как же прикажете его величать? Автор. Назвать можно как угодно. Например, “технологический язык”, сокращенно “техноязык”. Читатель. Все-таки непонятно: зачем менять устоявшуюся терминологию, к которой все привыкли? Чем вам не нравится название “язык программирования”? Автор. Речь не о смене терминов, а о коренном изменении концепции. Давайте начнем от печки. Мы говорим об ученых, врачах, технологах, педагогах и других работниках умственного труда. О тех, кто не программировал, не программирует и не собирается программировать. О тех, кому по характеру работы это просто не нужно. Потому что их работа заключается совсем в другом. Так вот, цель состоит Читатель. Все равно непонятно. Автор. Рассмотрим пример. Химик написал формулу HCl + NaOH = NaCl + H2O Какой язык здесь использован? Ясно, что это не язык программирования, а язык химических формул. Последний является “родным” языком химиков и помогает им успешно справляться со своими проблемами. Правда, этот язык не общий, а частный: он позволяет решать не все задачи, волнующие химиков, а только некоторые. А за рамками химии он вообще почти никому не интересен. В отличие от него техноязык — это универсальный язык, пригодный для широкого класса задач практически в любых областях человеческой деятельности. Самая сложная вещь на свете Читатель. Что значит “в любых областях деятельности”? Что общего между деятельностью врача и конструктора, финансиста и агронома, металлурга и микробиолога? Автор. Общее то, что все они работают, т. е. занимаются деятельностью. Человеческая деятельность — самая сложная вещь на свете. Читатель. Что в ней такого уж сложного? Автор. Деятельность состоит из действий, а последние зависят от условий. При данном условии я выполняю одни действия, при другом — другие. Если работа сложная, приходится учитывать сотни и тысячи условий, которые образуют невообразимое число сочетаний. И для каждого сочетания порою нужно делать совершенно разные цепочки операций. Иногда работник действует интуитивно, “наощупь”, по обстоятельствам. Некоторые операции человек выполняет сам, другие поручает различным механизмам, роботам, компьютерам. Проблема в том, что до сих пор отсутствует эффективный язык, позволяющий дать целостное и точное описание деятельности во всем ее красочном многообразии, богатстве и многосложности, выявить ее правила и структуру, учесть тончайшие отличия и особенности разных профессий (а их — тысячи), устранить путаницу и неразбериху, навести порядок, систематизировать знания о деятельности и представить их в наглядной и удобной форме. Нынешние многотомные руководства, содержащие описание деятельности, слишком трудны — мозги сломаешь, пока поймешь. К тому же они неполны — многие знания о деятельности нигде не записаны и хранятся только в головах людей. Вытащить их оттуда — сложнейшая задача. Отсутствие удобного языка для описания структуры деятельности сильно затрудняет обучение. Многие важные сведения вообще не зафиксированы в документах и передаются как эпос по принципу “из уст в уста”. Язык ДРАКОН призван ослабить или устранить эти недостатки, чтобы хоть как-то ограничить вакханалию путаницы и хаоса. Цель ДРАКОНА — внести порядок в царство анархии, установить четкие стандарты в области, где их никогда не было, положить конец цыганской вольнице и неуемному разгильдяйству, постричь всех (кто согласится) под одну гребенку, за счет этого значительно повысить производительность труда и получить ощутимый экономический эффект. Заметьте, ДРАКОН предоставляет стандартные средства описания деятельности независимо от того, кто выполняет действия: сам человек или созданные им машины, роботы, компьютеры. Кстати, программирование — это тоже деятельность. Поэтому техноязык можно использовать как язык программирования (обратное неверно). Читатель. Ага, так значит ДРАКОН — это все-таки язык программирования! Автор. Послушайте, вы, по-моему, нарочно хотите поссорить меня с теми, ради кого написана эта книга. Надо же учитывать человеческую психологию! Если я скажу, что ДРАКОН — язык программирования, немалая часть потенциальных читателей тут же отшвырнет ее со словами: “Это для программистов, мне это не нужно!” Их можно понять, потому что сам термин “язык программирования” для многих уже давно превратился в красную тряпку, в ненавистное пугало. Читатель. А я подозреваю, что вы сознательно пытаетесь обмануть людей, подсунув им старый товар в новой упаковке. Зачем ДРАКОНУ две головы? Автор. Никакого обмана нет и в помине. Просто язык ДРАКОН выполняет две принципиально разные функции. Для большинства работников он является новым средством повышения эффективности интеллектуального труда, причем у этого средства практически нет аналогов в мировой практике. В этом качестве ДРАКОН не имеет ни малейшего отношения к программированию. Поэтому тем глубокоуважаемым людям, которые не любят или даже ненавидят программирование, можно со всей откровенностью сказать: Вторая функция состоит в том, что для программистов ДРАКОН действительно является языком программирования. Таким образом, ДРАКОН имеет две головы, обращенные к совершенно разным аудиториям. Причем каждая голова пытается угадать сокровенные потребности своей аудитории и по возможности удовлетворить их наилучшим образом. Читатель. Стало быть, вы хотите угодить и нашим, и вашим? Автор. Вот именно. В этом состоит одно из ключевых преимуществ, поскольку язык ДРАКОН можно использовать как удобный “мост взаимопонимания” между непрограммирующим большинством и программирующим меньшинством, между “бескомпьютерной” и компьютерной интеллектуальной деятельностью. СПРАВКА О СОСТОЯНИИ ДЕЛ Язык ДРАКОН разработан совместными усилиями Российского космического агентства (НПЦ автоматики и приборостроения, г. Москва) и Российской академии наук (Институт прикладной математики им. М.В. Келдыша, г. Москва) как обобщение опыта работ по созданию космического корабля “Буран”. На базе ДРАКОНА построена автоматизированная технология проектирования программных систем (CASE -технология) под названием “ГРАФИТ-ФЛОКС”. Она успешно используется в ряде крупных космических проектов: “Морской старт”, “Фрегат”, “Протон-М” и др. ДРАКОН — очень легкий язык. Настолько легкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а обычные специалисты — по принципу “программирование без программистов”. Причина отказа от программистов проста. При решении практических прикладных задач специалисты досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают “физику процесса” и становятся “лишними людьми”, без которых вполне можно обойтись. Это позволяет значительно сократить издержки, улучшить показатель “затраты—результат”, ускорить ход работ и полностью избавиться от ошибок “испорченного телефона”, вызванных взаимным непониманием между ПРОГРАММИСТАМИ и СПЕЦИАЛИСТАМИ. ДРАКОН универсален. Он может применяться для наглядного представления и быстрой разработки алгоритмов не только в “космосе”, но и в “земных” видах человеческой деятельности. Практическая полезность ДРАКОНА получила высокую оценку. Министерство образования включило изучение языка ДРАКОН в программу курса информатики высшей школы (см.: Примерная программа дисциплины “Информатика”. Издание официальное. — М.: Госкомвуз, 1996. С. 3, 4, 15, 16). Ведется подготовка учебных книг для средней и высшей школы. Уже издана первая из них — игровое учебное пособие для детей младшего и среднего школьного возраста: Г Л А В А 1 НА ПОДСТУПАХ К НОВОМУ ЯЗЫКУ В некоторых разделах своей книги я вышел за рамки теорий, в которых я могу претендовать на Джордж Паджет Томсон ЗАЧЕМ НУЖЕН ЯЗЫК ДРАКОН? ДРАКОН — это алгоритмический язык, обладающий необычным свойством: одновременно он является языком для описания структуры деятельности, языком понимания и взаимопонимания, языком развития интеллекта. Как язык программирования, он удовлетворяет требованиям математической строгости, позволяющим из исходного текста Хотя ДРАКОН внешне очень напоминает обычные блок-схемы алгоритмов и программ, фактически он является оригинальной разработкой. Наиболее близким функциональным аналогом ДРАКОНА следует считать схемы действий (action diagrams) [1–4] и схемы деятельности (activity diagrams) [5]. Для дотошных читателей, которые любят подробности, аналогами ДРАКОНА — в той или иной степени — можно назвать и более дальних “родственников”. К их числу относятся: диаграммы Несси—Шнейдермана [6], HOS -схемы [1], схемы “гринпринт” [7], SPD -диаграммы фирмы NEC [8], PAD -схемы фирмы Хитачи [8], деревья и таблицы решений, схемы декомпозиции [4], схемы зависимости [1], язык SDL и В ЧЕМ СЕКРЕТ ДРАКОНА? — В КОГНИТИВНОМ ПОДХОДЕ Впрочем, сравнение с аналогами в данном случае малопродуктивно, так как оно не позволяет раскрыть наиболее существенную особенность ДРАКОНА, которая называется “когнитивный подход” [9]. Термин “когнитивный” (познавательный) пока еще не получил широкого распространения среди проектировщиков, разработчиков, инженеров и программистов, однако он является тайным паролем нового могущественного научного ордена, вернее сказать, знаменем двух новых, бурно развивающихся направлений в психологии и науке об интеллекте, известных как когнитивная психология и когнитивная наука[2]. Одна из целей этих дисциплин заключается в том, чтобы выявить скрытые резервы человеческого мозга, повысить творческую продуктивность интеллектуальных работников. Суть вопроса состоит в следующем. Разработчики технических и социальных проектов, интеллектуальные работники — это живые люди, обладающие мозгом, возможности которого, хотя и велики, но тем не менее далеко не безграничны. Таким образом, проблема проектирования — это не только техническая, но и человеческая, познавательная, т. е. когнитивная проблема. Под когнитивным фактором в данной книге понимаются познавательные, интеллектуальные, мыслительные, творческие аспекты деятельности ученых, специалистов и учащихся. Чем сложнее объект технического и социального проектирования, тем важнее делать акцент на необходимости тщательного учета когнитивных характеристик деятельности людей. Академик П. Симонов подчеркивает: для разработчиков систем “чрезвычайно важно знание правил, следуя которым живой мозг воспринимает, обрабатывает, фиксирует и использует вновь полученную информацию. Сведения о таких правилах, выявленных в эксперименте, поставляет когнитивная психология” [11]. Использование названных правил позволяет получить практический результат — повысить производительность умственного труда. ПОЧЕМУ ЛЮДИ НЕ ИНТЕРЕСУЮТСЯ В последние два десятилетия в нейробиологических и психологических исследованиях были получены новые и чрезвычайно важные сведения о работе мозга. Они открывают путь к революционным преобразованиям интеллектуального труда, создавая предпосылки для кардинального повышения его знаниепорождающей творческой продуктивности. Фактически мы находимся на пороге стратегической реформы интеллектуального труда, обещающей включение в созидательную работу новых мощных резервов человеческого мозга и интеллекта. Но эти результаты в силу известных междисциплинарных барьеров пока еще не стали достоянием проектировщиков, инженеров и программистов, разрабатывающих сложные технические и социальные системы. В итоге создалось парадоксальное положение. Поясним ситуацию на примере. Программированием занимаются люди, обладающие мозгом. Однако до сих пор языки, методы и теории программирования строились без учета конструкции мозга. Невозможно максимизировать творческую продуктивность мозга программистов, не учитывая его конструкцию. Следовательно, традиционные способы создания языков и технологий программирования, игнорирующие конструкцию мозга, являются устаревшими и неэффективными. Думается, этот вывод справедлив и в других случаях. Игнорирование закономерностей работы мозга, недостаточное внимание к когнитивным вопросам приводит Наука о человеческих факторах называется эргономикой. Когнитивные проблемы — важная часть эргономики. Чтобы вычленить когнитивную группу среди других эргономических вопросов, иногда употребляют термины “когнитивная эргономика” и “когнитивно-эргономические проблемы”. СТАНЕТ ЛИ ДРАКОН ЧЕМПИОНОМ МИРА Данная книга имеет сугубо практический характер. Ниже будет показано, что когнитивный подход — это рабочий метод, дающий полезные плоды: улучшение понимаемости алгоритмов и программ, проектов и технологий, повышение производительности сложного интеллектуального труда. Мы постараемся обосновать этот тезис, постепенно раскрывая особенности языка ДРАКОН. Как и все прочие языки, ДРАКОН опирается на математику и логику. Однако сверх того, он самым тщательным образом учитывает когнитивные вопросы. Благодаря систематическому использованию когнитивно-эргономических методов ДРАКОН приобрел уникальные эргономические характеристики. Можно предположить, что в будущем ДРАКОН сможет претендовать на звание чемпиона по критерию “понимаемость алгоритмов и программ” (в классе императивных языков)[3]. ДРАКОН можно определить как общедоступный визуальный язык, предназначенный для описания структуры деятельности, для систематизации, структуризации, наглядного представления и формализации императивных знаний, а также для проектирования, программирования, моделирования и обучения. Это универсальный межотраслевой язык делового мира, служащий для описания научно-технических, медицинских, биологических, экономических, социальных, учебных и иных задач. ДРАКОН позволяет упорядочить и представить решение любой, сколь угодно сложной императивной (процедурной, деятельностной, технологической, рецептурной, алгоритмической) проблемы Человечность языка ДРАКОН, стремление создать максимальный комфорт для работы человеческого мозга, всемерная забота о повышении творческой продуктивности персонала позволяет надеяться, что ДРАКОН получит самое широкое применение в народном хозяйстве, бизнесе, обороне, науке и системе образования. Используя не просто наглядные, а предельно наглядные формы представления знаний, облегчая работу мозга, ДРАКОН обеспечивает заметный рост производительности интеллектуального труда. В основе языка ДРАКОН лежит идея когнитивной формализации знаний, позволяющая сочетать строгость логико-математической формализации с точным учетом когнитивных (познавательных) характеристик человека [9]. В результате удалось кардинальным образом упростить и облегчить процедуру описания структуры деятельности, формализацию профессиональных знаний специалистов, стандартизовать ее и сделать пригодной для массового практического использования. Это в равной степени касается как компьютерной, так и “бескомпьютерной” интеллектуальной деятельности людей. Таким образом, основная цель создания языка ДРАКОН — обеспечить качественный скачок в повышении продуктивности сложного интеллектуального труда за счет увеличения интеллектуальной производительности человеческого мозга, выявления и более полного использования резервов человеческого интеллекта, создания когнитивных предпосылок для существенного повышения эффективности информационных технологий. НА КОГО РАССЧИТАН ЯЗЫК ДРАКОН? Язык в равной степени рассчитан на четыре категории лиц: ! на людей, совершенно не знакомых (или слабо знакомых) с программированием и вычислительной техникой: механиков, электриков, комплексников, прибористов, испытателей, физиков, химиков, геологов, биологов, медиков, агрономов, экономистов, юристов, психологов и т. д.; ! на профессиональных программистов, математиков и разработчиков вычислительной техники, в том числе на специалистов по операционным системам, системному и прикладному программированию, а также микропрограммированию (для персональных, универсальных, управляющих и бортовых компьютеров); ! на школьников и студентов; ! на руководителей многих уровней, желающих за минимальное время уяснить суть сложных проблем. ПЕРЕЧЕНЬ ЗАДАЧ, РЕШАЕМЫХ С ПОМОЩЬЮ Язык ДРАКОН может быть использован при решении следующих задач: ! описание структуры человеческой деятельности; ! наглядное представление императивных знаний в любых областях народного хозяйства, науки и образования; ! описание концептуальных решений и императивных моделей; ! проектирование алгоритмов и программ; ! разработка алгоритмов и программ; ! проектирование технологических процессов; ! описание любых технологий (промышленных, сельскохозяйственных, медицинских, педагогических, управленческих и т. д.); ! описание процесса проектирования; ! описание процессов функционирования дискретных систем и приборов, в том числе интеллектуальных систем; ! описание исходных данных на разработку систем автоматизированного проектирования и систем автоматизации научных исследований; ! описание процесса решения математических задач; ! описание диалога и взаимодействия человека-оператора и машины (пульта управления); ! описание процесса проверки и поиска неисправностей; ! решение задач диагностики в любых предметных областях; ! разработка микропрограмм; ! описание процесса функционирования организаций и предприятий; ! автоформализация профессиональных знаний ученых, конструкторов, математиков, врачей, юристов, агрономов, психологов, операторов и т. д.; ! решение учебных задач: обучение навыкам алгоритмизации, программирования и автоформализации знаний в предельно сжатые сроки. Как уже говорилось, функциональным аналогом ДРАКОНА являются схемы действий и схемы деятельности. ДРАКОН способен выполнять все функции последних (обратное неверно). Поэтому перечень можно продолжить, включив в него задачи, решаемые схемами действий. Это позволит описать некоторые функции ДРАКОНА с помощью терминов, характерных для американской литературы: ! стратегический обзор функций корпораций (strategic overview of corporate functions); ! описание логических отношений между процессами (logical relationship among processes); ! описание укрупненной структуры программ (overall program structure); ! описание детальной логики программ (detailed program logic) [1]; ! полная декомпозиция программ (ultimate decomposition), начиная от укрупненной логики и кончая деталями кода, что в равной мере полезно при проектировании как сверху вниз (top-down design), так и снизу вверх (bottom-up design) [4]; ! проектирование программ до последнего момента может вестись независимо от языка и лишь на последнем этапе осуществляется переход к нужному языку [1]; ! обучение конечных пользователей, стимулирующее их анализировать и проектировать детальную логику процессов (detailed process logic) [1]; ! описание процедур организационного управления (management procedures) [4]; ! описание компьютерных методологий (computer methodologies) [4]; ! описание методологий информационной техники (methodologies of information engineering) [4]. Как видно из этого списка, ДРАКОН обладает свойством универсальности, оказываясь полезным при решении широкого круга разноплановых задач. Благодаря этому ДРАКОН выполняет функцию универсального языка делового общения и взаимопонимания для специалистов различных специальностей. Кроме того, ДРАКОН существенно облегчает процесс формализации знаний, открывая новые возможности для повышения уровня автоматизации при проектировании и эксплуатации сложных объектов.
|