НЕКОТОРЫЕ АСПЕКТЫ ПРОЕКТИРОВАНИЯ ЯГС
1. Ядро графической системы (ЯГС) обеспечивает набор функций для программирования в области машинной графики. ЯГС является базисной графической системой, которая может использоваться для решения большинства прикладных задач, генерирующих изображения с помощью ЭВМ.
2. Основными целями стандартизации в области базисной машинной графики являются следующие:
1) достижение простоты переносимости прикладных программ, использующих машинную графику, с одной вычислительной установки на другую;
2) оказание помощи прикладным программистам в освоении и использовании графических методов;
3) определение направлений развития графического оборудования путем создания руководства для обеспечения полезных комбинаций графических возможностей в устройстве.
Для достижения этих целей проектирование ЯГС базировалось на следующих требованиях:
а) ЯГС должно включать все возможности, которые существенны для всего диапазона машинной графики, от простого пассивного вывода до высокоинтерактивных применений;
б) разнообразные графические устройства, включая векторные и растровые устройства, устройства вывода на микрофильм, устройства отображения на ЭЛТ с запоминанием, векторные и цветные устройства отображения, должны быть управляемыми с помощью ЯГС унифицированным способом;
в) ЯГС должно обеспечивать максимум возможностей, оставаясь компактным.
Эти требования были положены в основу принципов, которые использовались для решения вопросов выбора альтернатив в процессе проектирования ЯГС. Эти требования удалось выразить в виде общих целей проектирования, сфокусировав внимание на определенных аспектах. Было выделено пять следующих аспектов проектирования, каждый из которых имеет группу принципов:
1) задачи проектирования. Следующие принципы не должны нарушаться техническим проектированием ЯГС:
целостность. Обязательные требования ЯГС не должны быть взаимно противоречивыми;
совместимость. Другие структуры или общепринятые практические правила не должны нарушаться;
ортогональность. Функции или модули ЯГС должны быть независимыми друг от друга или зависимость должна быть сконструирована и хорошо определена;
2) функциональные возможности. Для определения области действия ЯГС использовались следующие принципы:
полнота. Должны быть включены все функции, которые необходимы для большинства прикладных задач на данном уровне функциональности;
минимальность. Не обеспечиваются функции, которые не являются необходимыми для прикладных задач на данном уровне функциональности;
компактность. Желаемый результат должен достигаться с помощью минимального набора функций и параметров;
многообразие. Богатый набор функций представляет обширный диапазон средств, который простирается на базисные функции и включает возможности более высокого порядка.
Очевидно, что должен быть установлен компромисс между этими требованиями. Для этого функции ЯГС объединены в группы по своим функциональным возможностям - уровни. Самый нижний уровень содержит только минимальный набор функций, на более высоких уровнях разрешено расширять набор функций в сторону большего разнообразия;
3) проектирование интерфейса с пользователем. Следующие принципы использовались для проектирования интерфейса с пользователем:
облегчение работы пользователя. ЯГС должно допускать проектирование любого желаемого пользователем интерфейса;
ясность. Концепции и функциональные возможности ЯГС должны быть легко понимаемы, особенно прикладным программистом;
обработка ошибок. Сбои системных функций или модулей, вызванные ошибками в самой системе или прикладных программах, должны трактоваться таким образом, чтобы реакция на ошибку была четко понимаемой и информативной для прикладного программиста и чтобы воздействие на систему и прикладную программу было как можно меньше.
Ясность и обработка ошибок являются существенной частью облегчения работы пользователя.
Обработка ошибок является составной частью ЯГС. Для обеспечения ясности информация о системе и ее состояниях должна быть легко доступна.
Принцип ясности применяется не только при проектировании ЯГС, но также и при описании системы. Для этого спецификации ЯГС разделены на общее описание, описание основных структур логических данных, соответствующих состояниям системы, и описание функций и их воздействий на эти структуры данных;