Средства разработки пользовательского интерфейса.

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

Эволюция ПИ:

Перфокарты – нет интерфейса.

Символьно-цифровые устройства ввода/вывода – интерфейс на основе диалога (интерфейс не отделен от программы, «внутреннее управление интерфейсом»).

Языки СУБД обеспечили раздельное описание данных и средств работы с ними.

ООП – позволило явно отделить друг от друга компоненты приложения, реализующие функциональность и интерфейс.

Растровая графика – появление принципиально нового типа ПИ – GUI.

Средства визуальной разработки – позволяют создавать макет ПИ на основе технологии WYSIWYG.

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

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

Аналогичными возможностями обладают многие современные инструментальные средства на базе проблемно-ориентированных языков (редактор GUI в составе пакета MATLAB).

Как и до появления средств визуального программирования, особое место среди других проблемно-ориентированных систем разработки занимают СУБД. Применение в них технологии WYSIWYG позволило им практически сравняться по мощности и эффективности с универсальными инструментами разработки GUI-приложений. Кроме того, наличие в СУБД средств визуального представления инфологической модели данных позволяет создавать более корректную модель пользовательского интерфейса по сравнению с универсальными инструментами.

Интерфейс систем реального времени имеет целый ряд существенных особенностей. Для его построения используются, как правило, специализированные инструментальные средства. Они сформировались в результате слияния SCADA-систем (Supervisory Control and Data Acquisition system – система сбора данных и оперативного диспетчерского управления) и средств визуального программирования общего назначения на базе одного из универсальных языков. Такой симбиоз получил название HMI/SCADA-систем (или MMI/SCADA). В настоящее время такие инструментальные средства существуют практически для всех платформ, на базе которых разрабатываются системы реального времени.

Несмотря на огромные потенциальные возможности систем визуального программирования, они в большинстве своем обладают одним существенным недостатком – в них не предусмотрена поддержка проектирования, разработки и сопровождения создаваемых приложений как единого технологического процесса. Это обстоятельство зачастую негативно влияет как на уровень программного продукта в целом, так и на качество его пользовательского интерфейса. Осознание этого факта привело к тому, что разработчики инструментов стали дополнять их относительно самостоятельными компонентами, поддерживающими отдельные этапы жизненного цикла программных продуктов. В пакете Visual Studio фирмы Microsoft существует компонента для управления версиями программного продукта – SurfaceSafe.

Появились специализированные инструменты тестирования GUI-приложений. Наиболее мощным из них считается продукт Rational Performance Suite фирмы Rational Rose. Данное средство обеспечивает автоматическую генерацию тестов, имитирующих работу пользователя, а также регистрацию и анализ результатов тестирования приложения, прежде всего с точки зрения качества пользовательского интерфейса.

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

Указанного недостатка лишены так называемые CASE -системы (Computer Aided Software Engineering – компьютерное проектирование программного обеспечения). Обязательным атрибутом такой системы является автоматическая (или автоматизированная) генерация программного кода на основе спецификации. Особенностью CASE-систем является поддержка практически всех этапов жизненного цикла создаваемого приложения:

- стратегическое планирование (описание целей, факторов, ресурсов; моделирование стратегии; формирование структуры плана и политики фирмы-разработчика);

- описание предметной области (описание объектов предметной области и отношений между ними; интеграция различных моделей предметной области);

- анализ возможностей реализации (анализ существующих проектов);

- определение требований (моделирование потоков данных; создание и анализ прототипов; контроль полноты и согласованности требований);

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

- программирование (генерация кода и анализ его метрических характеристик);

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

- документирование (создание и сопровождение библиотеки спецификаций);

- сопровождение и управление проектом.

Т.о. применение CASE-систем способствует проектированию и реализации ПИ, обладающего требуемыми свойствами. Некоторые из таких систем имеют в своем составе компоненты, предназначенные специально для разработки ПИ создаваемого приложения. Таким продуктом является CASE/4/0 фирмы MicroTOOL GmbH. Он содержит «дизайнер диалогов», обеспечивающий создание и моделирование ПИ.

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