| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Глава 3

Page history last edited by PBworks 17 years, 4 months ago

СООБРАЖЕНИЯ, ПОВЛИЯВШИЕ НА СОЗДАНИЕ

ЯЗЫКА ДРАКОН

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

Поль Страссман

ЧТО ВАЖНЕЕ:

КОМПЬЮТЕРЫ ИЛИ ЧЕЛОВЕЧЕСКИЙ МОЗГ?

Интеллектуальную основу современной цивилизации составляет коллективная интеллектуальная деятельность миллионов людей, занятых в различных организациях, создающих и потребляющих информационный продукт. Однако в эпоху массовой компьютеризации многие организации сталкиваются с новой, во многом неожиданной проблемой. По мере роста мощности и снижения удельной стоимости компьютеров все более негативное влияние на сроки и стоимость выполнения интеллектуальных работ оказывает недостаточная производительность самих интеллектуальных работников. Возникает парадоксальная ситуация: интеллектуальный работник превращается в самое слабое (а нередко и самое дорогое) звено автоматизированной технологии решения многих научных, практических и иных задач. Мировой опыт показывает, что большинство организаций расходует слишком много средств на информационный продукт, а получает незначительную отдачу из-за низкой творческой производительности персонала. В этих условиях требование повысить производительность именно интеллектуального работника (т. е. человека, а не машины) становится все более актуальным.

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

Чтобы избежать неприятностей, необходимо четко разграничить три понятия:

  • интегральную производительность системы “персонал—компьютеры”;
  • производительность компьютеров;
  • производительность собственно персонала, т. е. человеческого мозга.

Сказанное позволяет сформулировать тезис. Интегральная производительность систем “персонал—компьютеры” зависит от двух независимых показателей: производительности компьютеров и продуктивности мозга. Первая быстро растет, вторая, наоборот, все больше отстает от растущих требований и нередко превращается в основной тормоз повышения эффективности организаций.

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

ЧТО ТАКОЕ ПРОИЗВОДИТЕЛЬНОСТЬ УМСТВЕННОГО ТРУДА?

В литературе по информатике перечисленные три понятия (интегральная производительность систем “персонал—компьютеры”, производительность компьютеров и производительность персонала) обычно не расчленяются и смешиваются, что вносит путаницу и исключает возможность корректного анализа и решения задачи. В связи с этим целесообразно еще раз вернуться к постановке проблемы и обосновать ее более детально.

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

Учитывая вышеизложенное, необходимо устранить двусмысленность выражения “производительность умственного труда”, исключить возможность ложных трактовок и дать предельно ясное и четкое определение этого важнейшего понятия. По мнению автора, наилучший путь состоит в том, чтобы ограничить неоправданно широкий объем понятия и трактовать его в узком смысле как повышение продуктивности мозга.

По определению, эффективная деятельность — это деятельность, которая позволяет получить нужный результат при наименьших затратах. Отсюда вытекает, что интеллектуальная деятельность является эффективной только в том случае, если она позволяет добиться качественного интеллектуального результата при наименьших интеллектуальных затратах. Таким образом, требование минимизации интеллектуальных усилий (минимизации затрат нервной энергии человеческого мозга, расходуемой на получение заданного интеллектуального результата) эквивалентно требованию улучшения работы ума, повышения производительности умственного труда.

Близкую позицию занимают и другие авторы. В литературе можно встретить, например, такие выражения: повышение работоспособности мозга, совершенствование качества работы мозга, увеличение КПД функционирования человеческого мозга, “увеличение продуктивности умственного труда”, связанное с “совершенствованием психических процессов человека”, “облегчение процесса нашего мышления”, “экономия мышления” и т. д.

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

ЗАВИСИТ ЛИ ПРОИЗВОДИТЕЛЬНОСТЬ ПЕРСОНАЛА

ОТ ПРОИЗВОДИТЕЛЬНОСТИ КОМПЬЮТЕРОВ?

От чего зависит интегральная интеллектуальная продуктивность крупной организации, активно использующей вычислительную технику? Суммарное время, которое творческий персонал затрачивает на решение сложной задачи, определяется, в частности, двумя факторами. Во-первых, временем пассивного ожидания ответа от ЭВМ; это время зависит от быстродействия компьютеров, поэтому с ростом быстродействия во многих (хотя и не во всех) случаях им можно пренебречь. Во-вторых, скоростью выполнения мыслительных операций человеческим мозгом в ходе обдумывания проблемы.

Понятно, что скорость человеческого мышления (понимаемая как скорость работы человеческого мозга при решении тех или иных производственных заданий) не зависит ни от быстродействия компьютеров, ни от объема компьютерной памяти и определяется совсем другими причинами. Какими же?

Если учесть, что при работе с компьютером свыше 99% информации человек получает с помощью зрения, то наиболее важным видом компьютерной информации (с точки зрения человеческого восприятия) является письменная, т. е. “впитываемая глазами” информация, которая определенным образом взаимодействует с мозгом и оказывает значительное влияние на его работу. В чем заключается это влияние? Зависит ли продуктивность мозга от качества поступающей в него информации? По-видимому, да. Можно предположить, что время решения человеческим мозгом интеллектуальных задач зависит от скорости восприятия, понимания и усвоения поступающих в мозг сообщений, а последняя — от наглядности, доходчивости, смысловой полноты и других полезных свойств информационного материала, который должен точно и наглядно отражать сущность вопроса, постановку задачи и ход ее решения. Если любая (в том числе самая сложная) информация будет предъявляться по принципу “взглянул — и сразу стало ясно”, если благодаря удачной форме подачи материала каждый работник быстро вникнет в суть дела и за короткое время выполнит задание, интеллектуальная производительность персонала, несомненно, будет высокой.

МОЖНО ЛИ УВЕЛИЧИТЬ СКОРОСТЬ РАБОТЫ

ЧЕЛОВЕЧЕСКОГО МОЗГА?

Каким образом можно повысить продуктивность мозга? Ответ поясним на примерах. Замена языка римских чисел на язык арабских чисел дала возможность резко увеличить производительность труда при выполнении арифметических действий. Как отмечает Дэвид Марр, “это главная причина того, почему римская культура не смогла развить математику так, как это сделали ранние арабские культуры”.

Другой пример. Известно, что переход от программирования в машинных кодах к автокодам и ассемблерам, а затем языкам высокого уровня позволил существенно повысить производительность труда программистов. Следовательно, производительность зависит от языка: улучшая язык, можно поднять производительность. Исходя из этого, можно высказать предположение: при прочих равных условиях скорость решения человеческим мозгом интеллектуальных задач зависит от когнитивного качества профессионального языка, с помощью которого решаются указанные задачи.

Когнитивное качество — совокупность свойств языка, позволяющих ускорить понимание и решение задач и обеспечить эффективную верификацию (проверку). Чем выше когнитивное качество языка, тем меньше интеллектуальных усилий человек затрачивает на изучение, понимание и безошибочное решение задачи, тем выше продуктивность его мозга. Под верификацией здесь понимается выявление противоречий, ошибок, слабых мест, смысловой неполноты и других недостатков в ходе визуальной проверки человеком письменного решения задачи, представленного на экране или бумаге. Письменное решение (письменное представление знаний) выражается с помощью знаков, нотаций, чертежей и схем письменного языка. Причем язык здесь понимается в широком смысле: например, пользовательский интерфейс есть подмножество средств профессионального языка.

Многие авторы подчеркивают, что выбор эффективного языка может оказать благотворное влияние на продуктивность мышления. Например, Эрнст Шредер пишет, что употребление удачных знаков позволяет значительно усилить человеческое мышление. Неудачные знаки оказывают тормозящее влияние на мышление. Знаки нужны не только для передачи другим наших мыслей, но и для формирования самих мыслей. Неудачные языки даже простую проблему способны сделать неразрешимой. И наоборот, задача, получившая удобное знаковое выражение, оказывается наполовину решенной.

Особенно удачными оказываются новейшие визуальные языки, которые можно охарактеризовать как эффективные методы графического представления знаний, позволяющие выявить скрытые резервы повышения продуктивности двухполушарного мозга. Джеймс Мартин и Карма МакКлюр отмечают: хорошие, ясные изображения играют важную роль при проектировании сложных систем и разработке программ. Наша способность мыслить зависит от языка, который мы используем для мышления. Изображения, с помощью которых мы описываем сложные процессы, являются формой языка. Подходящие изображения помогают нам визуализировать и изобретать указанные процессы. Неудачный выбор изображений может ухудшить мышление. И наоборот, применение хороших изображений может ускорить работу и улучшить качество результатов.

Сказанное позволяет выдвинуть следующую рабочую гипотезу: чтобы улучшить работу ума, повысить продуктивность человеческого мозга при решении интеллектуальных производственных заданий, необходимо улучшить когнитивные характеристики профессионального языка, используемого при выполнении интеллектуальной работы. Эта гипотеза положена в основу разработки языка ДРАКОН.

ПРОБЛЕМА ФОРМАЛИЗАЦИИ

ПРОФЕССИОНАЛЬНЫХ ЗНАНИЙ

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

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

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

Сегодня лишь очень немногие специалисты народного хозяйства имеют опыт эффективной формализации знаний. Основная часть работников плохо представляет, о чем идет речь. Причина проста: прежние методы формализации были настолько сложны, что попросту отпугивали людей. После такой, с позволения сказать, “формализации” самые примитивные знания приобретали настолько громоздкий, противоестественный и заумный вид, что даже человек, прекрасно знающий, о чем идет речь, глядя на формализованную запись, воспринимал ее, как загадочный ребус.

Традиционное компьютерное программирование иногда рассматривают как частный случай формализации знаний. Бытует мнение, что программисты лучше других умеют формализовать свои знания. Это не совсем так. Значительная часть знаний не попадает в текст программы, оставаясь в голове программиста. Как отмечает академик А. Ершов, “язык программирования кодирует объекты предметной области задачи, а наше знание об этих объектах остается за пределами программного текста”. Именно поэтому понять сложную программу в отсутствие ее автора очень трудно или даже невозможно. Приходится признать, что известные методы формализации несовершенны и нуждаются в серьезном обновлении.

МОЖНО ЛИ ОБОЙТИСЬ БЕЗ КОГНИТОЛОГОВ?

Существуют две точки зрения на проблему формализации. Согласно одной из них специалист, обладающий профессиональными знаниями (обычно его называют “эксперт”), не в состоянии самостоятельно, без посторонней помощи формализовать свои знания, так как задача формализации слишком трудна. Представитель этого направления Э. Фейгенбаум подчеркивает: “По опыту нам известно, что большая часть знаний в конкретной предметной области остается личной собственностью специалиста. И это происходит не потому, что он не хочет разглашать свои секреты, а потому, что он не в состоянии сделать этого — ведь специалист знает гораздо больше, чем сам осознает”. Утрируя, можно сказать, что согласно этой позиции эксперт отчасти напоминает собаку: глаза умные, а сказать (на формальном языке) ничего не может. Отсюда делается вывод, что для решения задачи формализации необходимы особые помощники — инженеры по знаниям (когнитологи), которые, действуя по специальной методике, интервьюируют эксперта, формализуют “извлеченные” из него знания и вводят их в компьютер.

Иную позицию занимает Г. Громов, полагающий, что эксперт должен формализовать свои знания самостоятельно, без помощи инженеров по знаниям и профессиональных программистов, точнее говоря, при их “минимальной технической поддержке”. Данный метод называется “автоформализация знаний”1.

Автоформализация полезна тем, что позволяет устранить ненужных посредников и избежать ошибок типа “испорченный телефон”. Здесь однако возникает вопрос. А сможет ли эксперт формализовать свои знания? Не окажется ли задача непосильной для него?

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

ЧЕМ ОТЛИЧАЕТСЯ АЛГОРИТМ

ОТ ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА?

Понятие технологии является весьма емким. Технологии бывают самые разные: промышленные, сельскохозяйственные, строительные, медицинские, экологические, педагогические, управленческие. Существуют и более частные понятия, например, технологии аудиторской проверки банков и предприятий и т. д. Сфера применения этого понятия постоянно расширяется. В последнее время появился термин “избирательные технологии”, т. е. технологии проведения избирательных кампаний по выборам в органы власти.

Попытаемся выяснить, есть ли сходство между понятиями “алгоритм” и “технологический процесс”? Обратимся к определениям.

Алгоритм — конечный набор предписаний, определяющий решение задачи посредством конечного количества операций. Технологический процесс — совокупность приемов и способов получения, обработки или переработки сырья, материалов, полуфабрикатов или изделий, осуществляемых в промышленности, строительстве, сельском хозяйстве и других отраслях. Поверхностный анализ этих определений может привести к ложному выводу, что алгоритмы и технологические процессы не имеют ничего общего. Однако в действительности это не так.

Известно, что термин “алгоритм” используется и в более широком смысле для представления человеческой деятельности в виде строгой последовательности отдельных элементарных действий или процедур, а технологический процесс можно определить как “последовательность направленных на создание заданного объекта действий (технологических операций), каждое из которых основано на каких-либо естественных процессах (физических, химических, биологических и др.) и человеческой деятельности”. Тщательный анализ этих и многих других определений показывает, что исследуемые понятия в значительной степени совпадают, а имеющиеся различия в определенном смысле несущественны. Иными словами, технологический процесс и алгоритм — это понятия-близнецы или во всяком случае “близкие родственники”. Чтобы сделать эту мысль более убедительной, попытаемся отойти от традиционной точки зрения и предложим новые определения.

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

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

ЧТО ТАКОЕ ТЕХНОЛОГИЧЕСКИЙ ЯЗЫК?

По мнению автора, выявленное сходство понятий “алгоритм” и “техпроцесс” имеет фундаментальный характер и далеко идущие последствия. К сожалению, это сходство до сих пор не привлекало к себе должного внимания ученых, что привело к негативным результатам и в немалой степени способствовало разделению науки на “изолированные клетки”, создавая неоправданные препятствия для межотраслевых и междисциплинарных контактов. Сегодня программисты и технологи (в широком смысле слова, включая агрономов, медиков, педагогов, управленцев и т. д.) — это разные “касты”, которые получают разное образование и говорят на разных профессиональных языках. Подобные барьеры сильно затрудняют взаимопонимание между специалистами при решении проблем автоматизации и работе над междисциплинарными проектами.

Названный недостаток (трудности взаимопонимания) можно ослабить или устранить, создав единый язык, одинаково удобный для технологов, программистов и других специалистов. Для обозначения этого языка предлагается термин технологический язык (техноязык). Первым кандидатом на роль технологического языка является ДРАКОН.

Техноязык имеет двойное назначение. С одной стороны, он дает возможность (как и любой другой алгоритмический язык) проектировать алгоритмы, записывать программы и транслировать их в объектные коды. С другой стороны, он позволяет унифицировать запись технологических процессов любой природы в любой предметной области. Причем делать это таким образом, что унифицированная (стандартная) запись техпроцесса оказывается, во-первых, более строгой, свободной от пробелов и двусмысленностей, во-вторых, более наглядной, доходчивой и очень удобной для читателя.

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

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

Мысль о возможности и целесообразности создания универсального технологического языка опирается, в частности, на следующие предпосылки. Девяносто процентов специалистов, занятых в народном хозяйстве, не умеют программировать. Между тем эти люди успешно решают стоящие перед ними задачи. Значит, они обладают знаниями о последовательности действий, необходимых для решения своих задач. Указанные знания можно назвать технологическими (императивными, процедурными, алгоритмическими). Таким образом, налицо любопытная ситуация: подавляющее большинство специалистов народного хозяйства обладают технологическими знаниями, но не умеют их точно выразить (алгоритмизировать), поскольку в настоящее время отсутствует легкий и удобный язык, рассчитанный на непрограммистов и предназначенный для алгоритмизации (формализации) знаний.

ТЕХНОЛОГИЧЕСКИЕ И ДЕКЛАРАТИВНЫЕ ЗНАНИЯ

Человеческие знания, выраженные с помощью любого письменного языка, можно разбить на две части: технологические1 и декларативные.

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

Декларативные (дескриптивные, атрибутивные, описательные) — это знания не о действиях, а об описаниях информационных и физических объектов. Примером является типичная запись в базе данных:

ФамилияИмяОтчествоГод

рождения

ОбразованиеДолжностьСемейное

положение

ИвановСергейПетрович1970высшееменеджерженат

Для изложения декларативных знаний представители разных профессий нередко используют различные декларативные языки, в том числе графические (визуальные). Например, декларативные знания конструктора выражаются на языке конструкторских чертежей, электрика — на языке электрических схем, географа — на языке географических карт.

Для наших целей большой интерес представляет вопрос: можно ли создать единый универсальный язык представления профессиональных знаний, удобный для специалистов любой профессии и позволяющий улучшить взаимопонимание между ними? Для декларативных знаний ответ, очевидно, будет отрицательным. Потому что нельзя скрестить ужа с ежом и придумать разумный и полезный гибрид электрической схемы и географической карты (или конструкторского чертежа). Такой путь неизбежно ведет в тупик.

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

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

Во-первых, создаются благоприятные предпосылки для построения универсального технологического языка, позволяющего выражать любые технологические знания в любой предметной области в ЕДИНОЙ СТАНДАРТНОЙ ФОРМЕ.

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

В-третьих, средства для описания структуры деятельности, технологические знания играют особую роль в человеческой жизни. В самом деле, человек — деятельное существо. От рождения до смерти он непрерывно действует. Деятельность выражает сущность жизни. Бездеятельность — это смерть. Поэтому знания о структуре деятельности (технологические знания) составляют важнейший компонент человеческих знаний, их основу. Можно предположить, что в системе человеческих знаний технологические знания играют фундаментальную роль — роль несущей конструкции или каркаса, который скрепляет между собой (склеивает, цементирует) отдельные фрагменты декларативных знаний. Сказанное хорошо согласуется с известным мнением, что “большинство знаний об окружающем мире можно выразить в виде процедур или последовательности действий, направленных на достижение конкретных целей”.

Социально-экономические успехи общества сильно зависят от разработки и внедрения новых технологий. Между тем способы описания структуры деятельности и новых технологических процессов, используемые специалистами-технологами (в широком смысле слова), недостаточно формализованы и слабо используют опыт, накопленный в алгоритмизации и программировании. С другой стороны, многие математики, алгоритмисты и программисты испытывают серьезные затруднения при необходимости наглядно и доходчиво описать сущность, структуру и содержание предлагаемых математических решений, алгоритмов и создаваемых программных комплексов и передать соответствующие знания другим людям.

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

Изложенные соображения позволяют сделать два вывода. Во-первых, создание технологического языка является осуществимой задачей. Во-вторых, искомый язык следует строить, в первую очередь, как язык формализации именно технологических (а не декларативных) профессиональных знаний. При этом проектирование и программирование на императивных (процедурных) языках: псевдоязык, Бейсик, Паскаль, Си, язык ассемблера и т. д. можно рассматривать как частный случай более общей проблемы — формализации технологических знаний и описания структуры деятельности.

ПОЧЕМУ НЕЛЬЗЯ ЖИТЬ ПО-СТАРОМУ?

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

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

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

СОЦИАЛЬНЫЕ ТЕХНОЛОГИИ И ЭЛЕКТРОННЫЕ МЕТОДОЛОГИИ

Информационные технологии — не самоцель, а средство для улучшения промышленных и социальных технологий. Социальные технологии — новое и многообещающее направление, нацеленное на повышение эффективности взаимодействия людей, групп, организаций и государств (как в локальном, так и в глобальном масштабе). Неумение проектировать эффективные социальные технологии — это, пожалуй, главная причина нынешних бед цивилизации. Поэтому крайне важно научиться использовать огромный опыт человечества, накопленный при создании технических технологий для проектирования технологий социальных.

На повестке дня остро стоит вопрос о разработке нового поколения социальных технологий, способных вывести планету из нынешнего цивилизационного тупика. Это грандиозная по сложности задача. Необходимо превратить всемирную армию политиков, чиновников и специалистов (от низовых работников до руководителей государств) в профессиональных социальных технологов и социальных конструкторов, вооруженных всем богатством социально-гуманитарных и иных знаний и методов. Впрочем, это дело будущего. Сегодня делаются лишь первые шаги по совершенствованию отдельных частных аспектов социальных технологий. Одним из них является чрезвычайно интересная группа идей и подходов, направленных на качественное улучшение эффективности организаций, для обозначения которых используются выражения: “реинжиниринг бизнес-процессов”, “управление процессами”, “электронные методологии”1. Примеры методологий: RAD, IDEF и др. Мы ограничимся кратким знакомством с первой из них.

МЕТОДОЛОГИЯ БЫСТРОЙ РАЗРАБОТКИ СИСТЕМ RAD

Методология RAD (Rapid Application Development) служит для разработки (при активном участии пользователей) относительно небольших, но довольно сложных коммерческих информационных систем для бизнес-приложений, обеспечивающих (в этом вся суть) качественный рост эффективности организаций. Работа выполняется одним человеком или командой (до шести человек) за срок от трех до шести месяцев по строго определенной технологии. Она включает четыре этапа:

  1. анализ и планирование требований,
  2. проектирование,
  3. конструирование,
  4. внедрение,

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

Методология RAD является обобщением мировых достижений и ориентирована на использование мощных инструментальных средств. Она постоянно пополняется новыми изобретениями и вместе с тем содержит твердое ядро основополагающих идей.

Изложение методологии RAD не входит в наши планы. Руководство — фундаментальный труд, насчитывающий более 800 страниц. Это энциклопедия и одновременно патетический гимн во славу RAD, а лучше сказать, настольная библия для разработчиков информационных систем, в которой детально расписаны указания, обеспечивающие эффективное практическое использование этого метода.

Мы ограничимся лишь самыми краткими сведениями, позволяющими ответить на вопрос: в каких отношениях находятся два понятия: “методология RAD” и “язык ДРАКОН”.

В 1989 г. журнал “Форчун” попытался выяснить, почему так трудно писать программы: «Программное обеспечение — это “материя чистой мысли”, бестелесная и умозрительная; поэтому проектировщики не в состоянии нарисовать ясные, точные и подробные чертежи и схемы, как это делают разработчики электронных приборов, чтобы дать четкие указания программистам, что нужно сделать. Следовательно, повседневное общение между программистами, их начальниками и обычными людьми, которые используют программы, — это вещь в себе». Однако сторонники RAD думают по-другому. Комментируя указанную статью, Джеймс Мартин пишет: “Важно понять, что эта народная мудрость сегодня уже неверна”. В рамках RAD применяются “точные и детальные чертежи и схемы (аналогичные тем, что рисуют конструкторы электронного оборудования) с помощью технологии I-CASE, причем из этих чертежей генерируется программный код. На уровне чертежей выполняется значительная часть проверок. Эти чертежи и схемы весьма эффективны при повседневном общении программистов, системных аналитиков, менеджеров и конечных пользователей. Попытка создавать программы без этих средств означает только одно — безответственное руководство”.

Добавим, что I-CASE (Integrated Computer-Aided Systems Engineering) — это специальный термин, обозначающий интегрированную технологию автоматизированного создания систем, обязательный признак которой — в отличие от обычной, неинтегрированной CASE-технологии — наличие автоматического преобразования чертежей в исходный код нужного языка (и далее — в объектный код).

Чтобы спроектировать сложное бизнес-приложение, системные аналитики и пользователи должны иметь возможность рассмотреть проблему с разных сторон. Поэтому в методологии RAD используются различные формы чертежей (схемы “сущность—связь”, схемы потоков данных, схемы действий, схемы декомпозиции процессов и т. д.), необходимые для понимания и проектирования различных аспектов создаваемого приложения.

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

Каждая из перечисленных схем представляет собой строго определенный визуальный (графический) язык. Средства I-CASE позволяют устанавливать точные связи между схемами, увязывая их тем самым в единую компьютерную гиперсхему, конвертировать чертежи друг в друга, хранить их значение в репозитории (так называется база знаний, представляющая собой общее хранилище всей информации о проекте). Репозиторий снабжен координатором знаний (knowledge coordinator), который обеспечивает согласованность между различными частями знаний, хранящимися в репозитории, и проверку на правильность вновь вводимых в него данных. Информация с выхода репозитория поступает на генератор кода и, если нужно, оптимизатор. Эти и многие другие методы, средства и инструменты, предусмотренные в RAD, обеспечивают значительный рост производительности труда.

СХЕМЫ ДЕЙСТВИЙ И ЯЗЫК ДРАКОН

Мартин подчеркивает, что среди различных графических средств, используемых в методологии RAD, особенно важным является чертеж (графический язык), отображающий структуру программы. Он должен показывать оптимальную структуризацию программ, изображать циклы, вложенность конструкций, условия, структуры выбора, выходы по ошибке, обращения к базам данных, вызовы программ и другие программные конструкции.

Любопытно, продолжает Мартин, что на ранних этапах подобные чертежи отсутствовали. Возможно поэтому некоторые из ранних CASE-инструментов не поддерживали графических средств структуризации программ. Между тем графика дает возможность сделать структуру предельно ясной и отчетливой.

Для представления программных структур в методологии RAD используются специальные чертежи под названием “схемы действий” (action diagrams). Эти схемы можно рисовать независимо от любого языка программирования в виде графического псевдокода, а можно настроить на какой-либо конкретный язык, например язык генератора кода. Они используются также для представления спецификаций в структурной форме.

Большинство ведущих CASE-технологий используют схемы действий. Мартин считает, что они “представляют собой наилучший способ для представления структурных программ и работы с ними”.

Автор не может согласиться с последним утверждением. По нашему мнению, хотя схемы действий обладают рядом достоинств, тем не менее по всем наиболее важным параметрам они уступают языку ДРАКОН и представляют собой самое слабое место RAD-методологии. Одна из целей создания языка ДРАКОН — улучшение характеристик методологии RAD за счет замены схем действий на язык ДРАКОН.

В последнее время появились новые схемы — схемы деятельности (activity diagrams). Однако они также явно проигрывают по сравнению с ДРАКОНОМ.

НЕОБХОДИМОСТЬ КУЛЬТУРНЫХ ИЗМЕНЕНИЙ

Методология RAD, а также другие компьютерные методологии представляют собой замечательное достижение и эффектный прорыв в будущее. Вместе с тем для них характерна определенная ограниченность, так как в их задачу не входит создание подлинно “народного” межотраслевого языка (техноязыка), предназначенного для общения специалистов разных профессий, который вместе с тем обеспечил бы улучшение работы ума и мощный рост производительности в процессе автоформализации императивных профессиональных знаний.

На наш взгляд, техноязык должен повлечь за собой определенные изменения в культуре, иначе говоря — стать новым элементом языковой культуры. Представляется уместной следующая аналогия. Несколько столетий назад развитие машиностроения и строительного дела сдерживалось наряду с другими причинами отсутствием языка, позволяющего эффективно фиксировать необходимые знания. Общественная потребность в таком языке была чрезвычайно велика. Когда Гаспар Монж впервые предложил идеи начертательной геометрии и появились три проекции (фасад, план, профиль), это привело к формированию, закреплению в стандартах и всемирному распространению языка конструкторских и строительных чертежей. Последний стал одним из важнейших языковых средств технической цивилизации и одновременно достоянием мировой культуры. Человечество получило столь необходимый и давно ожидаемый языковый инструмент для фиксации и обогащения соответствующих знаний. В итоге развитие промышленности заметно ускорилось.

Думается, сегодня имеет место примерно такая же ситуация, ибо сформировалась общественная потребность в техноязыке, как инструменте интеллектуального взаимопонимания и взаимодействия людей, межотраслевого синтеза и автоформализации императивных знаний, эффективного описания структуры деятельности, проектирования социальных технологий, улучшения работы ума. Известно, что “многие люди с активным умом и блестящими идеями оказываются не в состоянии заставить своих коллег точно понять, что они имеют в виду”, причем подобная ситуация, вызванная неадекватностью используемых языковых средств, является одной из причин недостаточной восприимчивости современной индустрии к новым идеям. Эти и другие соображения свидетельствуют о том, что для улучшения взаимопонимания необходимо провести отнюдь не простые системные изменения в культуре. По-видимому, в качестве одного из первых шагов целесообразно сделать техноязык частью системы образования в школе и вузе, причем не как факультатив, а как обязательный компонент учебной программы.

ТЕХНОЯЗЫК КАК ЭЛЕМЕНТ КУЛЬТУРЫ

Изложим без доказательства пять тезисов по вопросу о возможной роли языка ДРАКОН в человеческой культуре. Автор отчетливо сознает дискуссионный характер тезисов, однако питает надежду, что, дочитав книгу до конца, вы, возможно, посчитаете их хотя бы частично обоснованными.

  • В настоящее время ощущается острая необходимость в создании специального высокоточного средства для улучшения интеллектуального взаимодействия между людьми — техноязыка, который призван стать новым элементом языковой культуры человечества.
  • Несмотря на то, что в современных компьютерных методологиях, в частности в методологии RAD, применяется значительное число — свыше десятка — различных графических языков (схемы “сущность—связь”, схемы потоков данных, схемы действий и т. д.), с точки зрения человеческой культуры все они имеют лишь локальную эффективность как инструменты создания информационных систем и не удовлетворяют требованиям, предъявляемым к техноязыку. Это значит, что ни один из этих языков не может стать новым элементом языковой культуры человечества, который следует рекомендовать для массового изучения в школах и вузах.
  • Среди указанного семейства графических языков единственным более или менее приемлемым средством для представления технологических знаний и описания структуры деятельности являются схемы действий и схемы деятельности. Однако они обладают серьезными недостатками и по своим эргономическим и дидактическим характеристикам значительно уступают языку ДРАКОН. Поэтому в качестве техноязыка и нового элемента культуры следует использовать ДРАКОН, а не схемы действий.
  • Ставка на язык ДРАКОН является оправданной, так как она позволяет осуществить системные изменения в культуре: в системе образования, на производстве (программы и технологии), в науке (улучшение общения между учеными), в социальных технологиях и других областях.
  • Обучение языку ДРАКОН целесообразно начать в средней школе, используя единую визуальную форму для записи структуры деятельности, алгоритмов, программ, технологий, а также любых императивных знаний, связанных с другими школьными предметами. Это позволит с самого начала преодолеть ныне существующий разрыв между алгоритмическими и технологическими знаниями, укрепить межпредметные связи, повысить качество школьного обучения за счет системного подхода к развитию деятельностного, алгоритмического и технологического мышления и совершенствованию визуального интеллекта учащихся.

ВЫВОДЫ

  1. Необходимо различать три понятия: производительность системы “персонал—компьютеры”, производительность компьютеров и производительность персонала. Последняя не зависит от характеристик компьютеров и определяется характеристиками языка. Чтобы повысить продуктивность персонала, нужно улучшить когнитивные характеристики профессионального языка, используемого специалистами при выполнении интеллектуальной работы.
  2. Разработку прикладных программ во многих случаях должен выполнять не посредник — программист, а конечный пользователь — специалист народного хозяйства. Программирование должно уступить место автоформализации профессиональных знаний, которая позволяет получить тот же конечный результат, что и программирование, т. е. отлаженный объектный код.
  3. Сегодня формализация знаний — дорогостоящий и трудоемкий процесс. Задача состоит в том, чтобы увеличить производительность труда в процессе автоформализации технологических знаний, при описании структуры деятельности примерно на два порядка.
  4. Языки представления декларативных знаний не поддаются унификации. С технологическими знаниями ситуация иная. Существует возможность построить единый универсальный технологический язык (техноязык).
  5. Автоформализация технологических знаний, описание структуры деятельности — один из важнейших видов интеллектуального труда. Чтобы добиться резкого повышения производительности этого труда и сделать автоформализацию доступной практически для всех специалистов, нужно создать межотраслевой техноязык, обладающий высокими когнитивными характеристиками.
  6. Техноязык следует использовать в современных компьютерных методологиях, что заметно повысит их эффективность.
  7. Техноязык должен стать элементом языковой культуры человечества. Его изучение должно быть предусмотрено в средней и высшей школе. Для этого техноязык нужно специально приспособить, сделать легким, доступным для школьников и студентов.
одной стороны, он дает возможность (как и любой другой алгоритмический язык) проектировать алгоритмы, записывать программы и транслировать их в объектные коды. С другой стороны, он позволяет унифицировать запись технологических процессов любой природы в любой предметной области. Причем делать это таким образом, что унифицированная (стандартная) запись техпроцесса оказывается, во-первых, более строгой, свободной от пробелов и двусмысленностей, во-вторых, более наглядной, доходчивой и очень удобной для читателя.

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

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

Мысль о возможности и целесообразности создания универсального технологического языка опирается, в частности, на следующие предпосылки. Девяносто процентов специалистов, занятых в народном хозяйстве, не умеют программировать. Между тем эти люди успешно решают стоящие перед ними задачи. Значит, они обладают знаниями о последовательности действий, необходимых для решения своих задач. Указанные знания можно назвать технологическими (императивными, процедурными, алгоритмическими). Таким образом, налицо любопытная ситуация: подавляющее большинство специалистов народного хозяйства обладают технологическими знаниями, но не умеют их точно выразить (алгоритмизировать), поскольку в настоящее время отсутствует легкий и удобный язык, рассчитанный на непрограммистов и предназначенный для алгоритмизации (формализации) знаний.

ТЕХНОЛОГИЧЕСКИЕ И ДЕКЛАРАТИВНЫЕ ЗНАНИЯ

Человеческие знания, выраженные с помощью любого письменного языка, можно разбить на две части: технологические и декларативные.

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

Декларативные (дескриптивные, атрибутивные, описательные) — это знания не о действиях, а об описаниях информационных и физических объектов. Примером является типичная запись в базе данных:

ФамилияИмяОтчествоГод

рождения

ОбразованиеДолжностьСемейное

положение

ИвановСергейПетрович1970высшееменеджерженат

Для изложения декларативных знаний представители разных профессий нередко используют различные декларативные языки, в том числе графические (визуальные). Например, декларативные знания конструктора выражаются на языке конструкторских чертежей, электрика — на языке электрических схем, географа — на языке географических карт.

Для наших целей большой интерес представляет вопрос: можно ли создать единый универсальный язык представления профессиональных знаний, удобный для специалистов любой профессии и позволяющий улучшить взаимопонимание между ними? Для декларативных знаний ответ, очевидно, будет отрицательным. Потому что нельзя скрестить ужа с ежом и придумать разумный и полезный гибрид электрической схемы и географической карты (или конструкторского чертежа). Такой путь неизбежно ведет в тупик.

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

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

Во-первых, создаются благоприятные предпосылки для построения универсального технологического языка, позволяющего выражать любые технологические знания в любой предметной области в ЕДИНОЙ СТАНДАРТНОЙ ФОРМЕ.

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

В-третьих, средства для описания структуры деятельности, технологические знания играют особую роль в человеческой жизни. В самом деле, человек — деятельное существо. От рождения до смерти он непрерывно действует. Деятельность выражает сущность жизни. Бездеятельность — это смерть. Поэтому знания о структуре деятельности (технологические знания) составляют важнейший компонент человеческих знаний, их основу. Можно предположить, что в системе человеческих знаний технологические знания играют фундаментальную роль — роль несущей конструкции или каркаса, который скрепляет между собой (склеивает, цементирует) отдельные фрагменты декларативных знаний. Сказанное хорошо согласуется с известным мнением, что “большинство знаний об окружающем мире можно выразить в виде процедур или последовательности действий, направленных на достижение конкретных целей” 13.

Социально-экономические успехи общества сильно зависят от разработки и внедрения новых технологий. Между тем способы описания структуры деятельности и новых технологических процессов, используемые специалистами-технологами (в широком смысле слова), недостаточно формализованы и слабо используют опыт, накопленный в алгоритмизации и программировании. С другой стороны, многие математики, алгоритмисты и программисты испытывают серьезные затруднения при необходимости наглядно и доходчиво описать сущность, структуру и содержание предлагаемых математических решений, алгоритмов и создаваемых программных комплексов и передать соответствующие знания другим людям.

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

Изложенные соображения позволяют сделать два вывода. Во-первых, создание технологического языка является осуществимой задачей. Во-вторых, искомый язык следует строить, в первую очередь, как язык формализации именно технологических (а не декларативных) профессиональных знаний. При этом проектирование и программирование на императивных (процедурных) языках: псевдоязык, Бейсик, Паскаль, Си, язык ассемблера и т. д. можно рассматривать как частный случай более общей проблемы — формализации технологических знаний и описания структуры деятельности.

ПОЧЕМУ НЕЛЬЗЯ ЖИТЬ ПО-СТАРОМУ?

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

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

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

СОЦИАЛЬНЫЕ ТЕХНОЛОГИИ И ЭЛЕКТРОННЫЕ МЕТОДОЛОГИИ

Информационные технологии — не самоцель, а средство для улучшения промышленных и социальных технологий. Социальные технологии — новое и многообещающее направление 14,15, нацеленное на повышение эффективности взаимодействия людей, групп, организаций и государств (как в локальном, так и в глобальном масштабе). Неумение проектировать эффективные социальные технологии — это, пожалуй, главная причина нынешних бед цивилизации. Поэтому крайне важно научиться использовать огромный опыт человечества, накопленный при создании технических технологий для проектирования технологий социальных.

На повестке дня остро стоит вопрос о разработке нового поколения социальных технологий, способных вывести планету из нынешнего цивилизационного тупика. Это грандиозная по сложности задача. Необходимо превратить всемирную армию политиков, чиновников и специалистов (от низовых работников до руководителей государств) в профессиональных социальных технологов и социальных конструкторов, вооруженных всем богатством социально-гуманитарных и иных знаний и методов. Впрочем, это дело будущего. Сегодня делаются лишь первые шаги по совершенствованию отдельных частных аспектов социальных технологий. Одним из них является чрезвычайно интересная группа идей и подходов, направленных на качественное улучшение эффективности организаций, для обозначения которых используются выражения: “реинжиниринг бизнес-процессов”, “управление процессами”, “электронные методологии” . Примеры методологий: RAD, IDEF и др. Мы ограничимся кратким знакомством с первой из них.

МЕТОДОЛОГИЯ БЫСТРОЙ РАЗРАБОТКИ СИСТЕМ RAD

Методология RAD (Rapid Application Development) служит для разработки (при активном участии пользователей) относительно небольших, но довольно сложных коммерческих информационных систем для бизнес-приложений, обеспечивающих (в этом вся суть) качественный рост эффективности организаций. Работа выполняется одним человеком или командой (до шести человек) за срок от трех до шести месяцев по строго определенной технологии. Она включает четыре этапа:

  1. анализ и планирование требований,
  2. проектирование,
  3. конструирование,
  4. внедрение,

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

Методология RAD является обобщением мировых достижений и ориентирована на использование мощных инструментальных средств. Она постоянно пополняется новыми изобретениями и вместе с тем содержит твердое ядро основополагающих идей.

Изложение методологии RAD не входит в наши планы. Руководство 16 — фундаментальный труд, насчитывающий более 800 страниц. Это энциклопедия и одновременно патетический гимн во славу RAD, а лучше сказать, настольная библия для разработчиков информационных систем, в которой детально расписаны указания, обеспечивающие эффективное практическое использование этого метода.

Мы ограничимся лишь самыми краткими сведениями, позволяющими ответить на вопрос: в каких отношениях находятся два понятия: “методология RAD” и “язык ДРАКОН”.

В 1989 г. журнал “Форчун” попытался выяснить, почему так трудно писать программы: «Программное обеспечение — это “материя чистой мысли”, бестелесная и умозрительная; поэтому проектировщики не в состоянии нарисовать ясные, точные и подробные чертежи и схемы, как это делают разработчики электронных приборов, чтобы дать четкие указания программистам, что нужно сделать. Следовательно, повседневное общение между программистами, их начальниками и обычными людьми, которые используют программы, — это вещь в себе». Однако сторонники RAD думают по-другому. Комментируя указанную статью, Джеймс Мартин пишет: “Важно понять, что эта народная мудрость сегодня уже неверна”. В рамках RAD применяются “точные и детальные чертежи и схемы (аналогичные тем, что рисуют конструкторы электронного оборудования) с помощью технологии I-CASE, причем из этих чертежей генерируется программный код. На уровне чертежей выполняется значительная часть проверок. Эти чертежи и схемы весьма эффективны при повседневном общении программистов, системных аналитиков, менеджеров и конечных пользователей. Попытка создавать программы без этих средств означает только одно — безответственное руководство” 16.

Добавим, что I-CASE (Integrated Computer-Aided Systems Engineering) — это специальный термин, обозначающий интегрированную технологию автоматизированного создания систем, обязательный признак которой — в отличие от обычной, неинтегрированной CASE-технологии — наличие автоматического преобразования чертежей в исходный код нужного языка (и далее — в объектный код).

Чтобы спроектировать сложное бизнес-приложение, системные аналитики и пользователи должны иметь возможность рассмотреть проблему с разных сторон. Поэтому в методологии RAD используются различные формы чертежей (схемы “сущность—связь”, схемы потоков данных, схемы действий, схемы декомпозиции процессов и т. д.), необходимые для понимания и проектирования различных аспектов создаваемого приложения.

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

Каждая из перечисленных схем представляет собой строго определенный визуальный (графический) язык. Средства I-CASE позволяют устанавливать точные связи между схемами, увязывая их тем самым в единую компьютерную гиперсхему, конвертировать чертежи друг в друга, хранить их значение в репозитории (так называется база знаний, представляющая собой общее хранилище всей информации о проекте). Репозиторий снабжен координатором знаний (knowledge coordinator), который обеспечивает согласованность между различными частями знаний, хранящимися в репозитории, и проверку на правильность вновь вводимых в него данных. Информация с выхода репозитория поступает на генератор кода и, если нужно, оптимизатор. Эти и многие другие методы, средства и инструменты, предусмотренные в RAD, обеспечивают значительный рост производительности труда.

СХЕМЫ ДЕЙСТВИЙ И ЯЗЫК ДРАКОН

Мартин подчеркивает, что среди различных графических средств, используемых в методологии RAD, особенно важным является чертеж (графический язык), отображающий структуру программы. Он должен показывать оптимальную структуризацию программ, изображать циклы, вложенность конструкций, условия, структуры выбора, выходы по ошибке, обращения к базам данных, вызовы программ и другие программные конструкции.

Любопытно, продолжает Мартин, что на ранних этапах подобные чертежи отсутствовали. Возможно поэтому некоторые из ранних CASE-инструментов не поддерживали графических средств структуризации программ. Между тем графика дает возможность сделать структуру предельно ясной и отчетливой.

Для представления программных структур в методологии RAD используются специальные чертежи под названием “схемы действий” (action diagrams). Эти схемы можно рисовать независимо от любого языка программирования в виде графического псевдокода, а можно настроить на какой-либо конкретный язык, например язык генератора кода. Они используются также для представления спецификаций в структурной форме.

Большинство ведущих CASE-технологий используют схемы действий. Мартин считает, что они “представляют собой наилучший способ для представления структурных программ и работы с ними” 16.

Автор не может согласиться с последним утверждением. По нашему мнению, хотя схемы действий обладают рядом достоинств, тем не менее по всем наиболее важным параметрам они уступают языку ДРАКОН и представляют собой самое слабое место RAD-методологии. Одна из целей создания языка ДРАКОН — улучшение характеристик методологии RAD за счет замены схем действий на язык ДРАКОН.

В последнее время появились новые схемы — схемы деятельности (activity diagrams). Однако они также явно проигрывают по сравнению с ДРАКОНОМ.

НЕОБХОДИМОСТЬ КУЛЬТУРНЫХ ИЗМЕНЕНИЙ

Методология RAD, а также другие компьютерные методологии представляют собой замечательное достижение и эффектный прорыв в будущее. Вместе с тем для них характерна определенная ограниченность, так как в их задачу не входит создание подлинно “народного” межотраслевого языка (техноязыка), предназначенного для общения специалистов разных профессий, который вместе с тем обеспечил бы улучшение работы ума и мощный рост производительности в процессе автоформализации императивных профессиональных знаний.

На наш взгляд, техноязык должен повлечь за собой определенные изменения в культуре, иначе говоря — стать новым элементом языковой культуры. Представляется уместной следующая аналогия. Несколько столетий назад развитие машиностроения и строительного дела сдерживалось наряду с другими причинами отсутствием языка, позволяющего эффективно фиксировать необходимые знания. Общественная потребность в таком языке была чрезвычайно велика. Когда Гаспар Монж впервые предложил идеи начертательной геометрии и появились три проекции (фасад, план, профиль), это привело к формированию, закреплению в стандартах и всемирному распространению языка конструкторских и строительных чертежей. Последний стал одним из важнейших языковых средств технической цивилизации и одновременно достоянием мировой культуры. Человечество получило столь необходимый и давно ожидаемый языковый инструмент для фиксации и обогащения соответствующих знаний. В итоге развитие промышленности заметно ускорилось.

Думается, сегодня имеет место примерно такая же ситуация, ибо сформировалась общественная потребность в техноязыке, как инструменте интеллектуального взаимопонимания и взаимодействия людей, межотраслевого синтеза и автоформализации императивных знаний, эффективного описания структуры деятельности, проектирования социальных технологий, улучшения работы ума. Известно, что “многие люди с активным умом и блестящими идеями оказываются не в состоянии заставить своих коллег точно понять, что они имеют в виду”, причем подобная ситуация, вызванная неадекватностью используемых языковых средств, является одной из причин недостаточной восприимчивости современной индустрии к новым идеям 17. Эти и другие соображения свидетельствуют о том, что для улучшения взаимопонимания необходимо провести отнюдь не простые системные изменения в культуре. По-видимому, в качестве одного из первых шагов целесообразно сделать техноязык частью системы образования в школе и вузе, причем не как факультатив, а как обязательный компонент учебной программы.

ТЕХНОЯЗЫК КАК ЭЛЕМЕНТ КУЛЬТУРЫ

Изложим без доказательства пять тезисов по вопросу о возможной роли языка ДРАКОН в человеческой культуре. Автор отчетливо сознает дискуссионный характер тезисов, однако питает надежду, что, дочитав книгу до конца, вы, возможно, посчитаете их хотя бы частично обоснованными.

  • В настоящее время ощущается острая необходимость в создании специального высокоточного средства для улучшения интеллектуального взаимодействия между людьми — техноязыка, который призван стать новым элементом языковой культуры человечества.
  • Несмотря на то, что в современных компьютерных методологиях, в частности в методологии RAD, применяется значительное число — свыше десятка — различных графических языков (схемы “сущность—связь”, схемы потоков данных, схемы действий и т. д.), с точки зрения человеческой культуры все они имеют лишь локальную эффективность как инструменты создания информационных систем и не удовлетворяют требованиям, предъявляемым к техноязыку. Это значит, что ни один из этих языков не может стать новым элементом языковой культуры человечества, который следует рекомендовать для массового изучения в школах и вузах.
  • Среди указанного семейства графических языков единственным более или менее приемлемым средством для представления технологических знаний и описания структуры деятельности являются схемы действий и схемы деятельности. Однако они обладают серьезными недостатками и по своим эргономическим и дидактическим характеристикам значительно уступают языку ДРАКОН. Поэтому в качестве техноязыка и нового элемента культуры следует использовать ДРАКОН, а не схемы действий.
  • Ставка на язык ДРАКОН является оправданной, так как она позволяет осуществить системные изменения в культуре: в системе образования, на производстве (программы и технологии), в науке (улучшение общения между учеными), в социальных технологиях и других областях.
  • Обучение языку ДРАКОН целесообразно начать в средней школе, используя единую визуальную форму для записи структуры деятельности, алгоритмов, программ, технологий, а также любых императивных знаний, связанных с другими школьными предметами. Это позволит с самого начала преодолеть ныне существующий разрыв между алгоритмическими и технологическими знаниями, укрепить межпредметные связи, повысить качество школьного обучения за счет системного подхода к развитию деятельностного, алгоритмического и технологического мышления и совершенствованию визуального интеллекта учащихся.

ВЫВОДЫ

  1. Необходимо различать три понятия: производительность системы “персонал—компьютеры”, производительность компьютеров и производительность персонала. Последняя не зависит от характеристик компьютеров и определяется характеристиками языка. Чтобы повысить продуктивность персонала, нужно улучшить когнитивные характеристики профессионального языка, используемого специалистами при выполнении интеллектуальной работы.
  2. Разработку прикладных программ во многих случаях должен выполнять не посредник — программист, а конечный пользователь — специалист народного хозяйства. Программирование должно уступить место автоформализации профессиональных знаний, которая позволяет получить тот же конечный результат, что и программирование, т. е. отлаженный объектный код.
  3. Сегодня формализация знаний — дорогостоящий и трудоемкий процесс. Задача состоит в том, чтобы увеличить производительность труда в процессе автоформализации технологических знаний, при описании структуры деятельности примерно на два порядка.
  4. Языки представления декларативных знаний не поддаются унификации. С технологическими знаниями ситуация иная. Существует возможность построить единый универсальный технологический язык (техноязык).
  5. Автоформализация технологических знаний, описание структуры деятельности — один из важнейших видов интеллектуального труда. Чтобы добиться резкого повышения производительности этого труда и сделать автоформализацию доступной практически для всех специалистов, нужно создать межотраслевой техноязык, обладающий высокими когнитивными характеристиками.
  6. Техноязык следует использовать в современных компьютерных методологиях, что заметно повысит их эффективность.
  7. Техноязык должен стать элементом языковой культуры человечества. Его изучение должно быть предусмотрено в средней и высшей школе. Для этого техноязык нужно специально приспособить, сделать легким, доступным для школьников и студентов.

Comments (0)

You don't have permission to comment on this page.