Технології розробки інтерфейсів, Відкриті системи
Безперервне чергування епох від настільних ПК до Web і мобільних пристроїв сприяє розвитку інтерфейсів користувача. Що відбувається зараз у цій галузі, які застосовуються методи та які перспективи?
- Ключові слова / keywords:
- declarative tools
- event-related tools
- hybrid technology
- Modeling
- гібридні технології
- декларативний інструментарій
- Математична модель
- Mathematical model
- Програмна інженерія
- подієві інструменти
Під впливом безперервних змін, обумовлених чергуванням епох від настільних ПК до Web і мобільних пристроїв, активно розвиваються інтерфейси користувача. Що відбувається зараз в галузі розробки інтерфейсів користувача, які застосовуються методи і які перспективи їх розвитку?

Форми введення з прив'язкою до СУБД
Обробники шаблонів
Технології побудови інтерфейсів користувача на базі шаблонів, реалізованих мовами розмітки, почали повсюдно застосовуватися з середини 1990-х. Основні переваги шаблонів - гнучкість і широта можливостей створення динамічних користувальницьких веб-інтерфейсів, особливо з точки зору розробки структури та планування. Спочатку в таких інструментаріях використовувалися шаблони, в яких планування та структура UI задавалися за допомогою мови розмітки, а прив'язка до даних здійснювалася за допомогою невеликих блоків високої мови (Java, C#, PHP, Python і т. д.). Останні могли використовуватись у комбінації з розміткою; наприклад, шляхом впровадження тегів розмітки в цикл Java могли створюватися ітеративні візуальні елементи на кшталт таблиць і списків. Необхідність частої змінисинтаксису всередині веб-сторінки ускладнювала розробку та корекцію коду для програмістів, тому близько десяти років тому почався перехід з мов високого рівня на спеціалізовані бібліотеки тегів розмітки та мови виразів, створені для конкретних веб-технологій.
Теги розмітки стали використовувати для реалізації типових функцій веб-застосунків, а вирази - для доступу до даних і виклику функцій, що зберігаються в серверних об'єктах. Типовим представником цієї групи є технологія JavaServer Pages (JSP), бібліотека тегів якої JSP Standard Tag Library підтримує такі завдання, як: маніпуляція з XML-документами, цикли, умови, опитування СУБД (прив'язка до даних) та інтернаціоналізація (форматування даних). Мова виразів JSP - EL, що служить засобом прив'язки до даних, пропонує зручну нотацію для роботи з об'єктами та властивостями програми.
Об'єктно-орієнтовані та подієві інструменти
Декларативні інструментарії
API інтерфейсу користувача Android — подієво-залежний, об'єктно-орієнтований, але поряд з основним в ОС є допоміжний API, що базується на XML, який дозволяє декларувати структуру і планування інтерфейсу користувача, а також стилізувати його елементи і керувати їх властивостями. Декларативний опис інтерфейсу наочніше показує його структуру та допомагає у налагодженні; дозволяє без перекомпіляції змінювати планування; допомагає адаптуватися до різних платформ, розмірів екрану та співвідношень його сторін. При створенні більш динамічних інтерфейсів користувача вказувати і змінювати структуру елементів можна і програмно - за допомогою об'єктних API, але прив'язка до даних не підтримується. Існує, щоправда, Android-Binding - стороннє рішення з відкритим кодом, що дозволяє прив'язувати елементиінтерфейсу до моделей даних.
Створювати UI для програм Windows та функціонально багатих інтернет-застосунків, заснованих, відповідно, на технологіях Windows Platform Foundation і Microsoft Silverlight, можна з використанням іншого XML-словника - eXtensible Application Markup Language (XAML). Він дозволяє задавати структуру, планування та стиль UI, а крім того, на відміну від мови розмітки Android, у ньому підтримується прив'язка до даних та можливість обробки подій.
У Nokia розробникам рекомендують Qt Quick - крос-платформний інструментарій для настільних, мобільних і вбудованих ОС, що підтримує QML (декларативна скриптова мова на основі синтаксису JSON). Опис інтерфейсу користувача має ієрархічну структуру, а поведінка програмується на ECMAScript. Тут, як і в звичайному Qt, підтримується механізм сигнал-слот. Qt Quick підтримує можливість прив'язування властивостей елементів UI до моделі даних, і навіть концепцію машини станів, що дозволяє графічно моделювати поведінка інтерфейсу.
Ще один приклад – Enyo, крос-платформний інструментарій для створення UI на ECMAScript, в якому структура інтерфейсу задається декларативно, а поведінка регулюється обробниками подій. Події обробляються трьома способами: лише на рівні окремих компонентів UI, шляхом передачі від нащадка до батька без прямої прив'язки, і навіть з допомогою широковещательной трансляції і передплати такі повідомлення (теж без прямої прив'язки). Завдяки слабкому зв'язку елементів UI розширюються можливості багаторазового використання та інкапсуляції великих фрагментів інтерфейсу. По суті, основна перевага Enyo - це модель інкапсуляції, завдяки якій UI можна компонувати з багаторазово використовуваних самодостатніх будівельних блоківзаданими інтерфейсами. Дана модель сприяє абстрагуванню та охоплює всі архітектурні рівні UI. Учасники проекту Enyo працюють над реалізацією підтримки прив'язки до даних.
Eclipse XML Window Toolkit є ще одним інструментарієм, орієнтованим на декларативний опис UI. Початкове завдання його створення полягало в об'єднанні в Eclipse всіх інструментів розробки UI, включаючи SWT, JFace, Eclipse Forms та інші - всі їх елементи так чи інакше відповідають XWT. Структура та планування UI в XWT задаються за допомогою мови на основі XML, а для прив'язки до даних (доступу до Java-об'єктів програми) використовується мова виразів. Обробка подій програмується на Java, а стилізацію елементів інтерфейсу використовується CSS. Механізм виконання додатків XWT реалізований у вигляді Java-аплета та елемента ActiveX, тобто може працювати практично у будь-якому браузері.
Інструментарії на основі моделей
Значна частина технологій розробки UI заснована на моделях та предметно-орієнтованих мовах. В основному це моделі інтерфейсів, але можуть використовуватись і доменні моделі. В обох випадках модель потрібна для генерації інтерфейсу користувача заздалегідь або інтерпретується в період виконання. Цей клас технологій піднімає рівень абстракції, пропонує покращені систематичні методи проектування та реалізації інтерфейсів користувача, а також надає інфраструктуру автоматизації відповідних завдань. Однак, на думку деяких дослідників [1], модельно-орієнтовані технології не дають універсального способу інтеграції інтерфейсу користувача з додатком, а також поки немає згоди щодо того, який набір моделей оптимально підходить для опису UI. Не вирішено завдання прив'язування даних, і не об'єднаномоделі вирішення інших завдань розробки UI.
Аналізуючи покоління модельно-орієнтованих підходів до розробки UI починаючи з 1990-х, можна дійти висновку [2], що сьогодні є загальноприйняте уявлення про рівні абстракції та типи моделей, що підходять для розробки сучасних інтерфейсів користувача, проте до цих пір немає єдиної думки ( стандартів) щодо інформації (семантики), яку мають містити різні моделі. Вважати базовими можна моделі завдань, діалогів та презентації: презентаційна модель вирішує завдання структурування, планування та стилізації; модель завдань відповідає за прив'язку до даних - для кожного завдання вказуються об'єкти UI та логіки, з якими належить працювати; діалогова модель охоплює поведінкові аспекти. Приклад моделі завдань - Concurrent-TaskTrees (CTT), її можна використовувати спільно з мовою MARIA, яка реалізує інші моделі UI [3]. CTT у поєднанні з MARIA є повноцінним модельно-орієнтованим інструментарієм. Досить велика родина засобів моделювання UI покладається також на мову UML, моделі «сутність-зв'язок» або подібні. Профілі UML широко застосовуються в побудові інтерфейсів бізнес-додатків. Існують і інші інструменти, що активно використовуються — наприклад, WebRatio, UMLi, Intellium Virtual Enterprise і SOLoist.