ЧЕЛОВЕЧЕСКИЙ ФАКТОР

Процесс познания в синтаксическо-семантической модели

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

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

В целом при чтении программ синтаксические детали быст­ро ассоциируются с семантикой нижнего уровня, знания орга­низуются в структуры высокого уровня и далее преобразуются в компактные, не зависящие от языка понятия определенной области. После прочтения программы объемом 300 строк опыт­ный программист в состоянии кратко изложить ее содержание, например: «данная программа реализует алгоритм Дейкстры для нахождения покрывающего дерева на примере северо-вос­точной системы трубопроводов». Другой программист, знако­мый и с прикладной областью, и с концепцией программирова­ния, может, используя это краткое описание, реконструиро­вать семантически эквивалентную программу.

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

Возможность независимого от языка внутреннего представ­ления программ была продемонстрирована в нескольких не­обычных экспериментах. Успевающим студентам-выпускникам предоставляли программу из 22 строк на Паскале для изуче­ния в течение 2 мин. Затем половине студентов предлагалось восстановить ее по памяти. Другой половине студентов было дано задание переписать эту программу на любом другом ал­горитмическом языке, которым они владеют. Обе группы ус­пешно воспроизвели программу. Участники эксперимента мог­ли легко описать семантику программы без использования синтаксиса или ключевых слов какого-либо языка програм­мирования.

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

Опытные программисты начинают составление программы с изучения прикладной задачи и, проектируя по принципу «сверху вниз», создают структурированный по уровням проект программы. Затем возможно итеративное улучшение концеп­туальной основы и в конце концов проработка синтаксических деталей используемого алгоритмического языка. Начинающие программисты, напротив, склонны сосредоточивать свое вни­мание на синтаксических деталях, не имея зачастую ясного представления ни о структуре программного обеспечения (при­менительно к прикладной задаче), ни о проектировании свер­ху вниз — от высокого уровня к более детальному нижнему уровню [1].

ЧЕЛОВЕЧЕСКИЙ ФАКТОР

Этапы проектирования программного обеспечения интерфейса человек — ЭВМ

Проектирование качественного программного обеспечения ин­терфейса человек —ЭВМ не является жестким, статическим процессом. Характер и содержание каждого интерфейса варьи­руются в соответствии с конкретной областью его использова­ния, и в группах разработчиков часто …

Оценка эффективности человеко-машинных систем

Существует целый ряд общих методов оценки эффективности для различных уровней характеристик человеко-машинных сис­тем, однако оценка эффективности распознавания речи в слож­ней задаче управления, связанной с отображением информации, представляется задачей более трудной …

Потребность в документации

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

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия
+38 050 512 11 94 — гл. инженер-менеджер (продажи всего оборудования)

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Оперативная связь

Укажите свой телефон или адрес эл. почты — наш менеджер перезвонит Вам в удобное для Вас время.