Использование вычислительной техники 2/2

Компьютерные курсы в СССР, 1985 г.

Читать первую часть.

5. Автоматизированное проектирование ЭВМ

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

Параллельно с такими системами будут создаваться автоматизированные системы проектирования ЭВМ (ИЛИ СБИС) под заданную программу её работы. Это может быть некоторая управляющая программа, подпрограмма операционном системы, программа трансляции с некоторого языка и т. п.

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

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

 

6. Традиционные средства программирования

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

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

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

Алгоритмические языки (процедурного типа) также должны развиваться в сторону фундаментализации их основных понятий и поиска новых эффективных изобразительных средств. В эти языки должно прочно пойти понятие абстрактного типа данных. Должны быть усовершенствованы средства организации параллельных процессов и их взаимодействия и развиты средства автоматического распараллеливания программ. Должны получить развитие средства управления процессами, такие как итераторы, сопрограммы и др. Данные в языках должны быть строго типизированы. Однако наряду со статическим контролем типов должен получить распространение динамический контроль типов значений переменных, особенно при условии аппаратной поддержки (по образцу автокода Эль-76 для МВК «Эльбрус»).

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

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

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

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

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

 

7. Человеческие аспекты

Люди, использующие вычислительную технику, никогда не будут в одинаковой степени владеть этой техникой, знать её возможности и методы её использования. Да это и не требуется. Однако очень важно, что бы в любой области, где применяются средства вычислительной техники, нашлись люди высокой квалификации не только в своей области, но и в области использования этих средств. Только таким специалистам под силу создание модели данной предметной области и её программной поддержки – пакетов прикладных программ и баз данных. Безусловно, в этой работе, особенно во второй её части, должны участвовать и программисты-профессионалы. Но последние самостоятельно не смогут создать модель предметной области, где требуются, в первую очередь, все же профессиональные знания, а во вторую – не столько программистская, сколько математическая культура – умение абстрактно мыслить и пользоваться формально-языковыми средствами. Иначе говоря, разработчики моделей предметных областей – это носители фундаментального, системного знания в своей области.

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

Наконец, все остальные специалисты – самая многочисленная часть коллектива – ставят конкретные задачи по исследованию объекта, поручая поиск решения системе автоматического решения задач.

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

Такое распределение обязанностей по исследованию или проектированию объекта требует как говорилось в разделе «Языковые проблемы», разного уровня языков, которыми пользуются специалисты. Оно требует также, чтобы разные специалисты и готовились по-разному, получали разную квалификацию. Это не просто более высокая или более низкая квалификация, речь идёт о разном характере деятельности. Различие квалификаций обеспечивается, прежде всего, различием вузов и техникумов, факультетов и кафедр, где готовятся специалисты. Но этого мало. Помимо своей основной профессиональной подготовки, специалисты должны приобрести знания в смежных областях – в математике или программировании, в электронике или приборостроении и т.п.

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

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

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

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

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

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

Часто высказывается мнение, что в связи с быстрым распространением сферы применения вычислительной техники, с вовлечением в эту сферу широких слоёв работающего населения становится неизбежным и желательным использование ЭВМ без программирования. С этим можно согласиться, но только если иметь в виду Программирование в его современном виде – составление более или менее объёмистых программ на алгоритмических языках. Конечно, участвовать в написании прикладных программ, включаемых в пакеты и фиксирующих накопленное алгоритмическое знание, должны немногие специалисты.

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

В этом смысле использование вычислительной техники без программирования оказывается невозможным.

В то же время системы автоматического решения задач, как и другое программное обеспечение ЭВМ, должны быть «дружественными» по отношению к пользователю, не обременять его лишними требованиями, а помогать ему в трудные моменты советами и разъяснениями.

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

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

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

Гуманизация программного обеспечения ЭВМ:

– разработка научных основ учёта общечеловеческих факторов в архитектуре программного обеспечения и в языках общения человека с ЭВМ и ЭВМ с человеком;

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

 

8. Программирование как самостоятельная сфера деятельности.

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

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

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

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

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

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

Статья поступила 18 июля 1984 года.                         




www.etheroneph.com