Смекни!
smekni.com

флягина Т. А. Проблемы разработки многооконных интерфейсов, квалификационная работа на степень бакалавра наук по направлению "Математика, прикладная математика": стр. 21, рис. 10, приложение 1 (стр. 2 из 3)

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

Эластичные окна

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

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

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

Многооконность

Как и во времена emacs, сегодня воспользоваться достоинствами неперекрывающихся окон могут в основном программисты. Даже если предположить, что тайловый менеджер можно приспособить для каких-то других нужд, средний пользователь, скорее всего, не только не сумеет это сделать, но и не догадается даже попробовать. Разработчики популярных операционных систем, тем временем, не торопятся предоставлять какие-то революционные средства.

Microsoft Windows по-прежнему проповедует "табовый" однооконный интерфейс, популярные оконные менеджеры для Linux его в той или иной степени копируют (возможность использовать многооконность, разумеется, есть, но она не особенно популярна). Немного отличается от мейнстрима Mac OS X, где по-прежнему используется классическая многооконность в стиле Xerox PARC. На удобство расположения окон влияет только привычка "Маков" не раскрывать окна на весь экран и подгонять их под размер документа, а не экрана. Этого, увы, недостаточно.

Одно из немногих мест, где можно встретить интерфейс, помогающий справляться с множеством окон - World of Warcraft. Там окна нельзя передвигать, и они выстраиваются на экране в виде нескольких колонок. Когда места становится недостаточно, новые окна заменяют те, что были открыты раньше (это общий случай, на самом деле система различает несколько типов окон и часто замещает их в соответствии с этими типами).

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

Многооконные интерфейсы

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

Кроме работы пользователя есть масса задач, в которых просто необходимо работать с многооконностью.

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

Чтобы убедиться, что система работает нормально, необходимо провести комплексное тестирование всей системы одновременно.

В такой ситуации, тестировщик будет постоянно переключаться между большим количеством окон, и при этом теряет важную для нас информацию.

В реальности, бизнес-системы еще более сложные, что ведет к экспоненциальному росту количеству открытых окон.

Итак, многооконность может возникнуть:

- при тестировании бизнес - приложений (различные СВК)

- работа в распределенной ОС

- работа в WEB (большое количество вкладок)

Задачу, которую мы пытаемся решить, характеризуется:

- многооконностью;

- визуальным наблюдением (то есть нам достаточно рендеринга приложения, чтобы понять, что происходит);

- работа с одним окном, может влиять на другие окна;

- возможно одновременная работа с несколькими окнами (редактировать данные в одном, а копировать из другого)

- и тд

Построение модели

Когда люди манипулируют объектами и документами, то часто возвращаются к ним, ориентируюсь на свои воспоминания об их местоположении, а не восстанавливают в памяти фактические пути и названия.

Рассмотрим, например, рабочий стол Windows, Mac или Linux. Многие люди используют фон рабочего стола для размещения документов, ссылок на часто запускаемые приложения и других подобных вещей. Выясняется, что для поиска нужных объектов люди используют пространственную память, и это очень эффективных подход. Они придумывают собственные варианты группировок или вспоминают, что нужный документ “на самом верху, где-то рядом с вон тем значком”.

Естественно, можно найти эквиваленты и в реальном мире. Рабочие столы многих людей постоянно находятся в “художественном беспорядке” – для стороннего человека это просто куча барахла, в которой, однако, владелец стола может мгновенно найти нужную вещь. И боже упаси сделать уборку на таком столе!

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

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

Если мы поместим окна на Бесконечный Лист и позволим пользователю самому управлять окнами, то есть их местоположением и размером, тогда они могут поместить самые необходимые инструменты ближе к месту работы, скрыть/оттащить не нужные вещи и использовать пространственную память для того, чтобы запомнить где и что находиться. Говоря рационально, перемещаемые панели с окнами помогают пользователям работать более эффективно и комфортно.

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

Автоматическое расположение окон.

У пользователя полная свобода при работе с окном: он может менять размер окна или его местоположение. Каждое окно “живет” на панели.

Перемещение окон:

Перемещение окон, по сути означает, изменения порядка следования окон. Например, у нас были открыты последовательно окна А Б С. Теперь, мы хотим поменять порядок, что за А следовало С, то есть А С Б.

В реорганизации пространства, важна обратная связь – пользователь должен постоянно видеть как результат действий (в нашем случае перемещение и изменение размера) будет выглядеть целиком и когда с ним будет работать пользователь. Поэтому при перемещении, мы всегда видим как окно будет смотреться на новом месте (Рис 1 Вставка нового окна).

Рис 1 Вставка нового окна

Изменение размера окна.

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

В менеджере окон мы всегда видим актуальный рендеринг окна: что происходит сейчас в работающем приложении.

Поэтому наблюдая за несколькими окнами – мы можем изменить размеры для удобного визуального представления(Рис 2 Resize окна).

Рис 2 Resize окна

Работа с окнами в менеджере

У каждого окна есть 3 стандартных свойства: свернуть, развернуть, закрыть окно. Менеджер окон уметь распознавать эти состояния.

Свернуть окно. Тело окна “спрячется” и останется только заголовок окна. Чтобы вернуться к исходному виду необходимо развернуть окно.

Закрыть окно. При закрытии окна, она автоматически удаляться из представления в менеджере окон.

Развернуть окно: Это означает работать с окном не в менеджере окон, а как с отдельным окном. На самом деле, с окном можно работать и не выходя из менеджере окон, для этого окно нужно сделать Активным.

Активное окно. Чтобы работать с окном, не обязательно выходить в полно-функциональный режим (Развернуть окно). Если окно, позволяет, можно с ним работать непосредственно в менеджере.

Взаимодействие между окнами. Кроме функционально взаимодействия, еще есть и пространственное. То есть, когда окно меняет размер, это влияет на расположение других: они перемещаются влево/право исходя из уменьшения/увеличение по горизонтали текущего окна.