|
Автор: Андрей Акопянц
Опубликовано в журнале "Компьютерра" №26 от 08 августа 2000 года Продолжение. Начало в #354 Интерфейсные объекты и метафоры Ключевое свойство метамодели - единство структур данных и интерфейсов. В этом разделе мы опишем те понятия и концепции, которые используются для организации пользовательского интерфейса системы, создаваемой по принципу "проблемно-ориентированного редактора данных". Окно - окно в смысле Windows. Каждое окно в каждый момент времени содержит либо таблицу, либо форму. Окна могут быть модальными (то есть не допускать выполнения операций в других окнах приложения, пока это окно не закрыто) и немодальными, последние могут быть зависимыми - то есть их содержимое может зависеть от действий, выполняемых в других окнах, и обновляться автоматически. Таблица содержит информацию об упорядоченной совокупности однородных записей, обычно по строке на запись. Атрибутам записи соответствуют колонки таблицы. Таблица обычно используется для просмотра, реже - для редактирования. Некоторая запись таблицы обычно является текущей, и доступна навигация по записям (изменение текущей позиции) - перемещения вверх/вниз, на первую/последнюю. Часто реализуется специализированный поиск либо по набору первых букв, либо по полному значению поискового поля. Иногда таблицы снабжают специальными панелями управления, позволяющими фильтровать записи и управлять их порядком. Порой сортировку выносят на шапку таблицы (клик на шапке поля вызывает сортировку по нему). Форма содержит информацию о единичной записи некоторой категории, представленную в виде карточки (поля, подсказки, элементы оформления и др.). Формы часто бывают многостраничные - с закладками. Когда "под" формой лежит упорядоченная совокупность записей, форму также используют для навигации - включают в нее кнопки/клавиши перемещения на следующую/предыдущую и первую/последнюю запись. Обычно имеется способ перейти из таблицы в форму, содержащую развернутую информацию о текущей записи таблицы. Это может происходить в том же окне, где находится таблица, а может сопровождаться открытием отдельного окна. Если такое окно открывается как немодальное, его делают зависимым от окна таблицы, то есть, перемещаясь по таблице, мы меняем содержимое окна формы. Подформа позволяет включить в форму в качестве ее элемента таблицу. Подформы обычно используют для работы с множественными атрибутами и отношениями. Query By Form (QBF). Для любой совокупности записей очень полезно обеспечить унифицированную возможность отбора из нее подмножества, удовлетворяющего заданным пользователем критериям и упорядоченного указанным способом. Эти критерии удобней всего задавать в стиле Query By Form - когда для ввода критериев используется обычная форма для данного типа записи, и в ее поля вводятся ограничения на значения соответствующих атрибутов. В стиле QBF проще всего задавать конъюнктивные условия (хотя можно и дизъюнктивные - путем задания нескольких "слоев"). Исключительно полезными при этом является возможности - параметризовать запросы (например, от текущей даты с некоторым смещением); - включать в состав запроса явно написанные на SQL выражения; - создавать библиотеки именованных запросов, предоставив механизм для сохранения/восстановления/редактирования запросов; - персонализировать доступ к сохраненным запросам, так как в реальной жизни их накапливается много. Почти все объекты и отношения нуждаются в возможности включения в записи о них дополнительной, плохо структурированной и заранее не известной информации, которая, тем не менее, должна позволять искать эти объекты. Это проще всего делать, включая в состав полей текстовое поле "примечания", допускающее поиск по подстроке в стиле QBF. Специализированные поиски, фильтрации и сортировки Наряду с общим механизмом QBF для часто используемых отборов и сортировок удобно иметь на панели специализированные инструменты (два-четыре типичных варианта сортировки и критерия фильтрации). Категории сущностей Описываемые категории являются основным интеллектуальным инструментом при анализе предметной области. Правильное выделение объектов, отношений, справочников и др. является залогом успешной реализации системы. И хотя отображение действительности на модель, как всегда, может быть выполнено разными способами, описываемые категории вычленяются, как правило, достаточно однозначно. Объект - самоопределенная сущность, сохраняющая свою аутентичность от "рождения" до "смерти". Характерными примерами объектов, встречающихся почти в любой ИС, являются люди, организации и документы. Объект всегда имеет простой уникальный идентификатор, либо естественный (являющийся атрибутом самого объекта, например, ИНН для отечественной организаций или SSN для американца), либо искусственный, полученный путем автоматической нумерации объектов в системе и/или в виде некой хэш-функции на базе его естественных атрибутов, образующих уникальное сочетание. Объект почти всегда имеет имя. Объект имеет ряд атрибутов (реквизитов - например, город, улица и др.), которые обычно объединяются в некоторые логически связанные группы (например, почтовый адрес). В качестве атрибута могут выступать простые значения (числа, строки, тексты и др.) и ссылки, то есть идентификаторы других объектов. Кроме того, атрибутами могут выступать справочные коды. В состав атрибутов объекта всегда нужно включать произвольное текстовое примечание. Объекты делятся на разные категории, определяемые набором атрибутов и их значениями. Категории могут быть выстроены иерархически (объектное наследование), например: - лица, - юридические лица, - физические лица, - резиденты, - нерезиденты. Объекты "нижестоящих" категорий содержат все атрибуты "вышестоящих", но могут содержать и дополнительные. Для каждой категории может быть определено одно или несколько представлений (views). Представление описывается набором атрибутов, в которые кроме атрибутов самого объекта могут входить атрибуты связанных объектов, справочников и пр., а так же критерием отбора объектов, включенных в представление. Для представления может быть определен - вид табличного (списочного) представления, а также - форма (представление в виде карточки). Форма обычно бывает многостраничной, при этом группы связанных атрибутов не разбиваются по страницам. При просмотре списка надо уметь для любого элемента списка попасть в его форму. В ситуации, когда в списке представлены объекты разных подкатегорий, удобно, чтобы вид формы конкретного объекта был специфичен для его узкой категории. То есть работая, например, со списком лиц и открывая карточку конкретного лица, удобно видеть разные формы для лица физического и юридического. Форма может открываться в том же окне (вместо списка), а может - в отдельном. Окно формы может быть как модальным, так и немодальным (зависимым). Из просмотра формы надо уметь вернуться в список в тот же контекст. Как правило, список нужен для просмотра, а редактирование и ввод новых объектов удобнее делать в форме. Справочник - относительно небольшая (как правило) и достаточно статичная табличка, ставящая в соответствие некоторым простым обозначениям (справочным кодам) развернутую информацию, соответствующую этим кодам. В простейшем случае это просто строки с развернутыми названиями (например, название товарной группы), в более сложном - еще какая-то информация (например, код категории льготности, полное наименование и соответствующая ставка налогообложения). Связь имеет место в случае, когда объект содержит ссылку на другой объект. Например, наличие связи между Организацией и Подразделением определяется ссылкой из Подразделения на Организацию. Связи содержательно именуются, причем на разных концах связи имена могут быть разные (например, Вышестоящая организация и Структурные подразделения). Для связи 1:n могут быть определены дополнительные условия, ограничивающие список связанных объектов, например, связь Производственные подразделения, фильтрующая из всех Структурных подразделений те, у которых есть признак производственные. Связям не соответствуют никакие дополнительные объекты данных, и определение связей используется как основа для построения интерфейсных решений. Наличие связи позволяет перемещаться (навигировать) между связанными объектами в одну и другую сторону и выполнять связанное редактирование данных. Например, связь между Организацией и Подразделением предполагает: - возможность из Подразделения перейти в Организацию с целью просмотра или редактирования данных об организации; - при вводе нового Подразделения указать Организацию, просто выбрав ее из списка; - возможность перейти из Организации в список ее Подразделений с целью просмотра и редактирования как списка (добавление/удаление подразделений), так и информации об отдельных подразделениях в нем; - возможность при построении представления (view) подразделения ссылаться на атрибуты организации. Отношения связывают между собой два и более объекта. Отношение не имеет собственной "cамости" и однозначно описывается теми объектами, которые в это отношение вступают, и типом отношения. Кроме этого, отношение может содержать дополнительные атрибуты. Примером отношения является Занимаемая должность, связывающая Организацию и Сотрудника и характеризуемая типом отношения - занимаемой позицией. Это отношение может быть нагружено дополнительной информацией, такой как оклад, уровень занятости и т. д. Отношения также образуют систему категорий, отличающихся набором атрибутов. Интерфейсно отношения могут быть представлены либо в виде отдельных списков (по категориям), содержащих ссылки (связи) на объекты, вступившие в данное отношение, либо представляться в виде табличных подформ в формах тех объектов, которые вступают в это отношение. Например, может быть 1) отдельная доступная для просмотра/редактирования таблица Занимаемые должности, и/или 2) страничка (подформа) Сотрудники в форме Организация, и/или 3) страничка (подформа) Занимаемые должности в форме Люди. В случае 1 ввод и редактирование записей производится в стиле связей (из Организаций и Сотрудников к Занимаемой должности и из Занимаемой должности - к Организациям и Сотрудникам. В случае 2 и 3 - путем редактирования соответствующих подформ. Записи подформ, содержащих ссылки на объекты, лучше редактировать переходом в форму, хотя при малом числе атрибутов можно это делать и в таблице. Множественные атрибуты и группы Множественные атрибуты (группы атрибутов) похожи на отношения 1:n, но, в отличие от них, не содержат ссылки на второй и прочие объекты. Пример множественного атрибута - список телефонов. Если считать, что в телефоне выделяется код и тип телефона (рабочий, домашний, мобильный и др.), то телефоны являются множественным групповым атрибутом. Интерфейсно множественные атрибуты естественнее всего представлять подформой с редактированием прямо в таблице, если число атрибутов в группе невелико. Для отношений и множественных атрибутов достаточно сложно, но возможно реализовать механизм задания QBF-запросов, так как может быть задано несколько условий - либо конъюнктивных, либо дизъюнктивных. Интерфейсно включение условия на отношение или множественный атрибут должно происходить так же, как ввод новой записи. Окончание следует
|
Школа IT-менеджмента РАНХиГС приглашает на уникальные программы подготовки IT-директоров и IT-менеджеров: • MBA Информационный менеджмент CIO • МВА Информационная безопасность CSO • IT-менеджер: PM, BA • Электронный бизнес
Аэроплан на солнечных батареях начал первый круглосуточный полёт
«Яндекс» вытесняет конкурентов с поискового рынка
Сети LTE в России могут быть запущены хоть сейчас
Мантии Земли и Луны, скорее всего, имеют одно строение
Влюблённость сродни наркотической зависимости
|
||||||