Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.07.06 04:32
Оценка: 18 (3)
Наткнулся на www.jaxfront.com

Ребята сделали тулзу, которая по XML схеме генерирует форму на Свинг или html.

Посмотреть демонстрационный ролик можно здесь. (0.5M)

Может быть действительно в будущем задача создания ГУИ будет решаться автоматически... Или есть принципиальные сложности?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: Автоматическая генерация GUI
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 21.07.06 04:40
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Может быть действительно в будущем задача создания ГУИ будет решаться автоматически... Или есть принципиальные сложности?

Для форм ввода — почему бы и нет... Но представьте себе генерирование GUI для VS2005 Или создание соответствующей схемы

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[2]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.07.06 04:55
Оценка:
Slicer [Mirkwood],

LCR>>Может быть действительно в будущем задача создания ГУИ будет решаться автоматически... Или есть принципиальные сложности?

SM>Для форм ввода — почему бы и нет... Но представьте себе генерирование GUI для VS2005 Или создание соответствующей схемы

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

Создать скажем экспертную систему, научить её тому, что пишут в книжках про юзабилити и на apple.com. Пусть она по неформальному описанию генерирует определение GUI в терминах этого языка. Неужели такие фантазии больше никому в голову не приходили, кроме меня?

для VS нужно что? Редактор с подстветкой синтаксиса (довольно повторяющаяся сущность), тулбар (правда какие кнопки должны быть на тулбаре? нужна статистика по часто используемым операциям), липкие окна (какие сделать липкими? можно все подряд) и т.д. Описать всё тяжело, но ведь намного тяжелее сделать это всё руками.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[3]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.07.06 05:32
Оценка: +1
Только что дошло...

LCR>Создать скажем экспертную систему, научить её тому, что пишут в книжках про юзабилити и на apple.com. Пусть она по неформальному описанию генерирует определение GUI в терминах этого языка. Неужели такие фантазии больше никому в голову не приходили, кроме меня?


Если задача творческая — то тут любая железяка отдыхает. А создание UI в общем случае — самая что ни на есть творческая задача. Создание форм — рутинная операция, поэтому её и удалось автоматизировать...
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[3]: Автоматическая генерация GUI
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 21.07.06 07:48
Оценка: 16 (2)
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Неужели такие фантазии больше никому в голову не приходили, кроме меня?


Декларативные описания GUI (XML)
Автор: fuxx
Дата: 20.04.05

[MFC] InterfaceXML &mdash; библиотека для поддержки XML-based UI
Автор: SchweinDeBurg
Дата: 26.01.05
... << RSDN@Home 1.2.0 alpha rev. 654>>
Re: Автоматическая генерация GUI
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 21.07.06 11:23
Оценка: 8 (1)
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Может быть действительно в будущем задача создания ГУИ будет решаться автоматически... Или есть принципиальные сложности?


Есть принципиальные сложности.

Чтобы действительно генерировать UI автоматически — слишком многое нужно формализовывать. Например, формально и подробно описывать типовые сценарии использования (use cases), то что есть сейчас — очень неформально. Но и этого мало — нужно весь опыт человека — проектировщика GUI — формализовать. А в этой области не так много вещей, хорошо поддающихся формализации. Есть, например, GOMS (по-сути — оптимизация по количеству кликов), но я видел интерфейсы, в которых во главу угла поставлена GOMS... Или скажем понятие "интуитивно понятно" — по сути отражающее опыт пользователя в использовании существующих интерфейсов — тоже слабо представляю его формализацию.

Что же касается интерфейсов на основе XML или автоматической генерации форм по описаниям данных — это уже давно используется, и бывает удобно, но только как в качестве отправной точки.
Re[2]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.07.06 11:41
Оценка:
nzeemin,

N>Есть, например, GOMS (по-сути — оптимизация по количеству кликов), но я видел интерфейсы, в которых во главу угла поставлена GOMS...


И насколько они плохи?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[3]: Автоматическая генерация GUI
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 21.07.06 11:58
Оценка: 8 (1)
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

N>>Есть, например, GOMS (по-сути — оптимизация по количеству кликов), но я видел интерфейсы, в которых во главу угла поставлена GOMS...


LCR>И насколько они плохи?


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

НО, если при проектировании UI сосредоточиться ТОЛЬКО на количестве кликов — получится некоторые перегибы. В каждом режиме пользователь будет видеть огромное количество возможностей, 90% которых ему, как правило, не нужны. Например, в графическом редакторе пользователь выбирает команду Создать — и ему на весь экран вываливается набор кнопок со всеми примитивами и шаблонами, которые есть в наличии. По числу кликов мы оптимизировали, но качество программы, с точки зрения пользователя, пострадало.

Т.е. я хотел сказать, что не стоит сосредотачиваться на формальных правилах. Опыт проектировщика интерфейсов часто дает лучшие результаты.
Re[4]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.07.06 12:18
Оценка:
nzeemin,

LCR>>И насколько они плохи?


N>НО, если при проектировании UI сосредоточиться ТОЛЬКО на количестве кликов — получится некоторые перегибы. В каждом режиме пользователь будет видеть огромное количество возможностей, 90% которых ему, как правило, не нужны. Например, в графическом редакторе пользователь выбирает команду Создать — и ему на весь экран вываливается набор кнопок со всеми примитивами и шаблонами, которые есть в наличии. По числу кликов мы оптимизировали, но качество программы, с точки зрения пользователя, пострадало.


Хм, спасибо. Сделать такую же вещь как "скрыть кнопки" только в общем виде (чтобы легко скрывать неиспользуемые возможности)?

N>Т.е. я хотел сказать, что не стоит сосредотачиваться на формальных правилах. Опыт проектировщика интерфейсов часто дает лучшие результаты.


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

Что если отталкиваться от статистических данных, чтобы статистически выяснить, что же пользователю чаще всего нужно?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[5]: Автоматическая генерация GUI
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.07.06 23:26
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>Что если отталкиваться от статистических данных, чтобы статистически выяснить, что же пользователю чаще всего нужно?

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

То же самое с интерфейсом — можно статистически оттрекать то, чем в UI пользуются чаще, а чем — реже. И что? Частая возможность может означать вынужденное повторение избыточных действий, а редкая — о неудобстве использования. Статистика может дать некоторую информацию о том, насколько плох интерфейс. Вряд ли она предложит какие-то улучшения.

Ну вот как профилирования может показать, что в программе 90% времени занимает сравнение даух значений. Но перейти с пузырька на heapsort ни один профайлер не предложит
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 27.07.06 04:29
Оценка:
Sinclair,

LCR>>Что если отталкиваться от статистических данных, чтобы статистически выяснить, что же пользователю чаще всего нужно?


S>Есть проблема курицы и яйца. Она же известна в узких кругах как "проблема оптимизации закупок". Прикол оптимизации закупок в том, что она принципиально может оперировать только со своей же статистикой. Так что алгоритм может только предложить перестать заказывать какой-то из товаров. Добавить новый товар он не предложит — для него нет никакой статистики.

Да, творческая задача (от слова "творить"="создавать") это прерогатива человека. Я уже сам догадался

S>То же самое с интерфейсом — можно статистически оттрекать то, чем в UI пользуются чаще, а чем — реже. И что? Частая возможность может означать вынужденное повторение избыточных действий, а редкая — о неудобстве использования. Статистика может дать некоторую информацию о том, насколько плох интерфейс. Вряд ли она предложит какие-то улучшения.

+1

S>Ну вот как профилирования может показать, что в программе 90% времени занимает сравнение даух значений. Но перейти с пузырька на heapsort ни один профайлер не предложит


Хех, твоя мысль когерентна с моей:

Да оно конечно понятно, что человек совершенно новую задачу решит намного лучше, чем машина.

quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[3]: Автоматическая генерация GUI
От: Alex EXO http://aleksandr-zubarev.moikrug.ru/
Дата: 27.07.06 08:32
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>Неужели такие фантазии больше никому в голову не приходили, кроме меня?

Почему не приходило. Приходило и даже делается, правда в несколько упрощенном варианте...
Сейчас по этому принзипу ваяю для своей задачки модуль связи erlang-tcl/tk (в замен штатного gs).
Re[4]: Автоматическая генерация GUI
От: mishaa Россия http://kmmbvnr.livejournal.com
Дата: 01.08.06 06:38
Оценка:
Здравствуйте, nzeemin, Вы писали:


N>Ну не сказать что они прямо сразу таки плохи. Вероятно, грамотное использование GOMS даже намного улучшает интерфейс программы.


N>НО, если при проектировании UI сосредоточиться ТОЛЬКО на количестве кликов — получится некоторые перегибы. В каждом режиме пользователь будет видеть огромное количество возможностей, 90% которых ему, как правило, не нужны. Например, в графическом редакторе пользователь выбирает команду Создать — и ему на весь экран вываливается набор кнопок со всеми примитивами и шаблонами, которые есть в наличии. По числу кликов мы оптимизировали, но качество программы, с точки зрения пользователя, пострадало.


Надо всего лишь скомбинировать GOMS c законом Фитса, и окажется что три большие кнопки + большое меню с остальным функционалом, окажется удобенее чем куча легко доступных, но маленьких кнопок на экране.
-- Главное про деструктор копирования не забыть --
Re[3]: Автоматическая генерация GUI
От: Demosfen  
Дата: 21.09.06 11:43
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Slicer [Mirkwood],


LCR>>>Может быть действительно в будущем задача создания ГУИ будет решаться автоматически... Или есть принципиальные сложности?

SM>>Для форм ввода — почему бы и нет... Но представьте себе генерирование GUI для VS2005 Или создание соответствующей схемы

LCR>Ну что касается схемы — конечно она слишком тоща для описания общего случая. Можно взять что-нибудь более мощное. И генератор сделать не просто переливатель из одного формата файлов в другой, а что нибудь более интеллектуальное.


LCR>Создать скажем экспертную систему, научить её тому, что пишут в книжках про юзабилити и на apple.com. Пусть она по неформальному описанию генерирует определение GUI в терминах этого языка. Неужели такие фантазии больше никому в голову не приходили, кроме меня?


LCR>для VS нужно что? Редактор с подстветкой синтаксиса (довольно повторяющаяся сущность), тулбар (правда какие кнопки должны быть на тулбаре? нужна статистика по часто используемым операциям), липкие окна (какие сделать липкими? можно все подряд) и т.д. Описать всё тяжело, но ведь намного тяжелее сделать это всё руками.



Den' dobrij!

Ja sdelel odnagdi necto podobnoe --- legkij sintax w XML i v PHP-GTK parser i GUI konstruktor.
Samaja bolshaja problemm eto zavisimmosti megdy elementami, tak-kak kolichestvo "stranic" dialogov
moget bit neogranicheno i kolichestvo elementov na stranice toge. v obshem ne wsjo tak prosto.
Progy moju mogno bilo v ljuboj proekt integrirovat'.... No "dependences" ostalis ne resheni do konca, t.e.
bilo reshenie no element awtomatizacii s etogo momenta prekrashalsja .

Wsem ydachi

Dmitrij.
zagljanite: www.polit.o2tv.ru
Re[4]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.09.06 12:13
Оценка:
Demosfen,

D>Den' dobrij!

Добрый!

D>Я сдeлeл однагди нeцто подобноe --- лeгкий синтаx в XМЛ и в ПХП-ГТК парсeр и ГУИ конструктор.

D>Самая болшая проблeмм это зависиммости мeгды eлeмeнтами, так-как количeство "страниц" диалогов
D>могeт бит нeограничeно и количeство eлeмeнтов на страницe тогe. в обшeм нe всё так просто.
D>Прогы мою могно било в любой проeкт интeгрировать.... Но "дeпeндeнцeс" осталис нe рeшeни до конца, т.e.
D>било рeшeниe но eлeмeнт автоматизации с этого момeнта прeкрашался .

Ага, спасибо, интересно.

А что за зависимости? Вернее, какие зависимости в данном случае вы имеете ввиду? Состояние одного элемента управления на диалоге А1 зависит от состояния другого элемента управления на диалоге А2?

PS: Транслит тяжело читать (не только мне), пожалуйста рассмотрите возможность применения http://physics.nad.ru/translit.html
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: Автоматическая генерация GUI
От: Andy77 Ниоткуда  
Дата: 21.09.06 22:11
Оценка:
Последнее время подумываю о написании библиотечки под .Net, которая по метаданным строила бы несложные формы с красивой валидацией и т.д. Может быть, такая штука уже существует?
Re[2]: Автоматическая генерация GUI
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 22.09.06 04:28
Оценка:
Andy77,

A>Последнее время подумываю о написании библиотечки под .Net, которая по метаданным строила бы несложные формы с красивой валидацией и т.д. Может быть, такая штука уже существует?


Увы, я не в курсе.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[2]: Автоматическая генерация GUI
От: sss1024 http://microforms.mobile-mir.com/
Дата: 22.09.06 08:39
Оценка:
Последнее время подумываю о написании библиотечки под .Net, которая по метаданным строила бы несложные формы с красивой валидацией и т.д. Может быть, такая штука уже существует?

=============================================================

1. http://sss1024.narod.ru/ver.htm
интерфейс к базам данных строится по ER-связям. Например если есть таблички Поставщики <- Товары то на форме поставщика будет предложено вставить подчинённый грид с его товарами. Прога старая

2. http://www.javakonkurs.ru/show_project.screen?project_id=172
не привязана к базам данных но пока нет визардов, формы и откуда брать данные описывается в хмл-файле (делал на жабе т.к. это для конкурса по жабе)


.
Posted via RSDN NNTP Server 2.0
Re: Автоматическая генерация GUI
От: Аноним  
Дата: 24.09.06 21:29
Оценка:
V golovu prihodit Mozilla/Gecko s GUI opisannim v *.xul filah. Tak chto vse uzhe pridumano,
Re[5]: Автоматическая генерация GUI
От: Demosfen  
Дата: 25.09.06 08:41
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Demosfen,


D>>Den' dobrij!

LCR>Добрый!

D>>Я сдeлeл однагди нeцто подобноe --- лeгкий синтаx в XМЛ и в ПХП-ГТК парсeр и ГУИ конструктор.

D>>Самая болшая проблeмм это зависиммости мeгды eлeмeнтами, так-как количeство "страниц" диалогов
D>>могeт бит нeограничeно и количeство eлeмeнтов на страницe тогe. в обшeм нe всё так просто.
D>>Прогы мою могно било в любой проeкт интeгрировать.... Но "дeпeндeнцeс" осталис нe рeшeни до конца, т.e.
D>>било рeшeниe но eлeмeнт автоматизации с этого момeнта прeкрашался .

LCR>Ага, спасибо, интересно.


LCR>А что за зависимости? Вернее, какие зависимости в данном случае вы имеете ввиду? Состояние одного элемента управления на диалоге А1 зависит от состояния другого элемента управления на диалоге А2?


LCR>PS: Транслит тяжело читать (не только мне), пожалуйста рассмотрите возможность применения http://physics.nad.ru/translit.html



Здравствуйте!

Да именно, в моём случаe "унивeрсальный диалог" должeн был вдeлан в большой проeкт.

Короче нужно было выбирать компонeнты для конeчной систeмы (Linux based) и послeдующиe скрипты дeлали image(CD, DVD) готовый к автоматичeской установке.

Сами понимаетe в зависимости от вобранного порта COM1,2,3..,10 или LPT нe всякий Printer/Scaner можeт быть выбран и т.д.

Wsjo ydachi!

www.polit.o2tv.ru
zagljanite: www.polit.o2tv.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.