Роль специалистов управления в разрешении кризиса прикладного программирования
Постоянно растущая потребность общества в модернизации информационных процессов в различных сферах деятельности обусловливает острый дефицит квалифицированных прикладных программистов. Проблема усугубляется еще и тем, что эффективность программных решений во многом зависит от учета индивидуальных особенностей объекта, для которого они создаются, поэтому разработка и использование типовых программных продуктов могут лишь в незначительной степени обеспечить информационные потребности конечных пользователей.
В настоящее время наряду с созданием типовых пакетов прикладных программ "закрытого типа", не требующих какой-либо специальной настройки, (таких как Project Expert, Audit Expert, Контур, и др.), и "открытого типа", т.е. предполагающих предварительную "привязку" к условиям конкретного объекта (например, таких как 1С-Бухгалтерия, ИНЭК, Парус и др.), можно выделить следующие основные направления по решению проблемы, связанные с дефицитом прикладных программистов:
разработка языков программирования, максимально ориентированных на конечных пользователей прикладных программ;
создание программно - инструментальных средств для разработки программных приложений, в том числе специалистами управления (Access, Excel, Matlab и др.);
разработка генераторов, обеспечивающих автоматизированное формирование программных средств и приложений, удовлетворяющих конкретным требованиям пользователей (генератор отчетов, конструктор экранных форм и т.д.).
Вместе с тем проблему дефицита профессиональных прикладных программистов по всем этим направлениям можно реально и наиболее эффективно решить только при условии полного исключения программистов как посредников на этапах между постановкой задачи пользователем и началом процесса проектирования программы и ее компьютерной реализации. Причем благодаря такому подходу существенно снижается вероятность возникновения ошибок и сокращается время на получение конечного программного средства. В этом плане интерес представляет оценка принципиальной схемы процесса подготовки прикладной задачи к ее компьютерной реализации, которая (в явном или неявном виде) проходит этапы от того, что необходимо получить, к тому, как это можно получить (рис. 1).
ЧТО ----- ----- ----- ----- ----- ----- ----- ----- КАК
/-----------\ /--------------\ /-----------\ /-----------------\ /-------\
| Постановка| |Формирование | |Разработка | |Составление | |Решение|
| задачи | |экономико- | |алгоритма | |компьютерной | |задачи |
| | |математической| |реализации | |программы | | |
| | |модели задачи | |задач | |реализации задачи| | |
\-----------/ \--------------/ \-----------/ \-----------------/ \-------/
----- ----- ----- -----
ЕЯ -- ЯЭМО -- ЯОА -- ЯП -- ЯЭВМ
Рис. 1. Принципиальная схема процесса разработки компьютерных программ задач организационно-экономического управления
Языковые средства процесса проектирования компьютерных программ, представленные на рис. 1, идентифицируются следующим образом:
ЕЯ - естественный профессиональный язык (сленг) специалистов управления;
ЯЭМО - язык экономико - математического описания вычислительной модели;
ЯОА - язык описания алгоритма (алгоритмической схемы);
ЯП - язык программирования;
ЯЭВМ - внутренний язык вычислительной машины.
Из рис. 1 следует, что прогресс в общении человека с компьютерными системами связан с переходом по цепочке от компьютерного языка к естественному. При таком переходе их взаимные требования будут соответственно изменяться, конвертируясь от "низких к компьютерным системам (при высоких к их пользователям)" до "высоких к компьютерным системам (при низких к их пользователям)" (рис. 2). Представленная схема объясняет и популярность табличных процессоров, так как они позволяют пользователям не только легко создавать электронные аналоги реальных экономических документов в привычной для них форме "пустографок", но и решать широкий круг экономических задач исключительно на уровне языка ЯЭМО.
"Рис. 2."
Очевидно, что выходом из кризиса будет являться создание таких систем проектирования прикладных программ, для которых "входным" языком будет служить естественный профессиональный язык специалистов управления. В этом плане эйфория периода бурного развития и совершенствования языков программирования в 60-70-х годов прошлого века способствовала тому, что основные надежды на решение проблемы "кризиса прикладного программирования" многие IT-специалисты возлагали именно на создание языков, ориентированных на непрофессионалов в области программирования. Так, разработчики языка Cobol (COmmon Business Oriented Language) считали, что на нем смогут легко писать свои программы экономисты, бухгалтера, финансисты и другие представители бизнеса.
Позже был создан алгоритмический язык Basic - Beginner's All-purpose Symbolic Instruction Code, специально ориентированный для начинающих программистов и ставший впоследствии достаточно популярным благодаря своей простоте и удобству работы.
В целях минимизации требований к пользователям-непрофессиональным программистам наряду с процедурными алгоритмическими языками появились непроцедурные (декларативные) языки программирования. С их помощью разработчик программы мог уже не задавать пошаговый алгоритм реализации задачи, т.е. не указывать как следует ее решать, а лишь определенным образом описывать, что ему требуется получить в качестве результата. Типичным примером таких языков являются языки логического программирования, базирующиеся на системе логического вывода информации с использованием заданных фактов (например, язык Prolog, Visual Prolog и др.), и функциональные языки (например, Lisp, Refal и др.), в которых процесс представляется в виде вычисления значений функций (как это принято математике), а не в виде подпрограммы - как в процедурном программировании.
Наконец, появились визуальные языки программирования, использующие возможности графического интерфейса при составлении программ (например, Delphi, Prograph и др.), а также языки сверхвысокого уровня (такие как Алгол-68, APL и др.).
Можно также выделить еще один класс языков программирования - объектно-ориентированные языки сверхвысокого уровня (например, Java, Python и др.). На таких языках, хотя они и содержат элементы процедурного программирования, также не нужно подробно описывать последовательность действий, выполняемых для решения задачи. Благодаря широким возможностям предоставляемого интерфейса они позволяют организовать решение задачи пользователя в удобной для него форме.
Таким образом, все эти непроцедурные языки в той или иной степени представляют определенный шаг в деле реализации принципа компьютерного решения задач, получившего среди IT-специалистов название "что без как".
Вместе с тем следует отметить, что параллельно с совершенствованием и расширением круга языков программирования возникло и стало развивается принципиально иное для автоматизации направление решения прикладных задач, ориентированное на создание специальных программно-инструментальных средств. Это в первую очередь различного рода СУБД и табличные процессоры, которые позволяли создавать программные приложения как неквалифицированным пользователям, так и профессиональным программистам (использующим соответствующие языки поддержки, например SQL и VBA).
В целом успехи по привлечению к компьютерной реализации задач непрофессионалов в области программирования были настолько обнадеживающими, что один из конгрессов IFIP (International Federation of Information Processing) проходил в 1974 г. в Стокгольме под лозунгом: "В 80-м году - программирование без программистов". Известный программист Дж. Мартин в свою очередь предложил использовать для преодоления "кризиса прикладного программирования" подход, зарекомендовавший себя ранее в технике связи*(1). Он даже провел в Лондоне в мае 1981 г. посвященный этому специальный тематический семинар "Application Development Without Programmers" (Разработка программных приложений без программистов).
Таким образом, IT-специалистами был предложен единственно действенный выход из сложившегося положения - это привлечение к процессу создания уникальных прикладных программ непосредственно их конечных пользователей. Однако, несмотря на появление более чем тысячи языков программирования, ориентированных на различные сферы приложения и использующих разные способы взаимодействия с ними (появление непроцедурных языков, языков визуального манипулирования, языков сверхвысокого уровня и т.д.), все они кардинальным образом не смогли обеспечить достижения конечной цели - ликвидировать дефицит прикладных программистов, а среди программно-инструментальных средств разработки программных приложений, пожалуй, только табличные процессоры внесли наибольший вклад в сокращение потребности в профессиональных программистах и позволили многим управленцам-непрофессионалам в области компьютерных технологий решать свои прикладные задачи.
Очевидно, что в полной мере идея "программирование без программистов" может быть осуществлена только при условии реализации принципа: "что без как", т.е. создания систем программирования, в которых пользователь лишь характеризовал бы требуемую ему информацию на своем профессиональном языке, без отражения способа ее получения, а уже система определяла и реализовывала необходимый способ ее получения*(2).
В заключение, оценивая общее состояние дел по совершенствованию форм и способов взаимодействия специалистов управления с компьютерными системами, можно отметить, что продолжающийся "кризис прикладного программирования" так или иначе будет разрешен только с помощью самих управленцев. Рано или поздно, но наступит время, когда специалисты по управлению будут общаться с компьютерными системами, обмениваясь с ними информацией и формулируя свои требования, исключительно на своем профессиональном языке. При этом все необходимые настройки программных комплексов будут выполняться автоматически в соответствии с характером запросов пользователей.
Л. Еремин,
доцент кафедры "Информационные
технологии" Финансового университета
при Правительстве Российской Федерации
"Финансовая газета. Региональный выпуск", N 35, август 2010 г.
-------------------------------------------------------------------------
*(1) Когда установкой связи между абонентами телефонных сетей благодаря внедрению АТС стали управлять сами пользователи этих сетей.
*(2) В перспективе разработкой будет заниматься не программист (человек, умеющий шаг за шагом объяснять машине, как решать задачу), а квалифицированный пользователь - человек, умеющий формулировать, что ему нужно "на выходе". А. Евтюшкин. Рассуждения о технологической платформе//Банковские технологии. - 1998. - Февраль. - С. 14-16.
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Газета "Финансовая газета. Региональный выпуск"
Учредитель: Редакция Международного финансового еженедельника "Финансовая газета"
Газета зарегистрирована в Роскомпечати 3 октября 1994 г.
Регистрационное свидетельство N 012947
Адрес редакции: г. Москва, ул. Ткацкая, д. 5, стр. 3
Телефон +7 (499) 166 03 71