Концепция визуального программирования в IBM VisualAge Smalltalk

В.Орлов, IBM


VisualAge - это мощная среда для разработки приложений для архитектуры клиент-сервер. Она ориентирована, прежде всего, на разработки бизнес-приложений, включая системы для онлайновой обработки транзакций и системы поддержки решений. VisualAge позволяет профессиональным разработчикам строить клиентские части прикладных систем со сложным графическим интерфейсом, проектировать деловую логику работы приложений с доступом к локальным и удаленным ресурсам. VisualAge представляет собой чисто обьектно- ориентированное средство разработки, включающее набор визуальных интерактивных инструментов, библиотеку готовых компонент и набор средств для построения клиент- серверной среды. Поддержка графического интерфейса, предоставляемая готовыми компонентами, отвечает CUA (Common User Access) спецификациям и содержит ряд расширений для организации гибкого ввода-вывода в сложных формах и таблицах. Библиотека готовых компонент предоставляет также поддержку устройств
мультимедиа, коммуникаций через протоколы APPC, TCP/IP, NetBIOS, программных интерфейсов CICS External Call Interface, EHLLAPI, Message Queue Interface (MQI), работу с реляционными базами данных семейств DB2, Oracle, Sybase и многое другое. Прежде чем перейти к описанию визуального построения приложений, отметим ряд замечательных качеств VisualAge, таких как повторное использование кода, поддержка моделей SOM и DSOM, возможности групповой разработки приложений с использованием центрального репозитория.
Средства визуального программирования обычно решают задачи построения пользовательского интерфейса и упрощения разработки приложения путем замены метода 'написания программы на метод конструирования.
Визуальное программирование бесспорно обладает достоинством наглядного представления информации и гораздо лучше соответствует природе человеческого восприятия, чем методы традиционного, текстового программирования. Однако практически все визуальные средства нуждаются в дополнении функциями, которые не могут быть представлены в виде графических конструкций и требуют текстового выражения. Визуальные средства дополняются специальными скриптами, написанными на различных языках программирования.
Для VisualAge таким языком является чисто обьектно-ориентированный язык IBM Smalltalk. Сама среда разработки VisualAge создана на Smalltalk. Среди разнообразных средств визуального программирования VisualAge интересен именно максимально продвинутой и последовательно реализованной концепцией обьекто-ориентированной технологии.
Приложения написанные на Smalltalk соответствуют схеме MVC (Model-View-Controller). Model является набором объектов, выражающих бизнес-логику приложения, View представляет объекты из пользовательского интерфейса, Controller состоит из объектов преобразующих действия пользователя с View в запросы к Model.
При этом средства визуального программирования могут быть использованы по разному. Просто для визуального определения пользовательского интерфейса, который затем встраивается в традиционную программную среду. Более глубоко, для визуального задания и интерфейса и контролирующих интерфейс объектов с одновременным программированием бизнес-логики традиционными методами. Наконец, для полного визуального построения приложения.
VisualAge реализует концепцию построения приложений из готовых компонент - деталей (parts). Это означает, что вы создаете программу, соединяя и связывая детали между собой.
Точно так же, как на заводе из радиодеталей собираются платы, а из них компьютеры, так и программные компоненты могут образовывать составные детали (сборочные единицы), а они, в свою очередь, готовое приложение.
Чтобы из деталей можно было что-нибудь собрать, необходимо установить каким образом они должны стыковаться друг с другом. В VisualAge деталь - это законченный программный объект с описанным внешним интерфейсом, устанавливающим свойства детали. Существует два вида деталей, с которыми вы можете работать в VisualAge:
Внешний интерфейс детали определяет то, как она может взаимодействовать с другими деталями в приложении. Он состоит из следующих свойств:
Связи определяют то, как детали взаимодействуют друг с другом. Можно установить связи между деталями, встроенными программами(scripts) и другими связями. Введено четыре типа связей:
Такое представление о деталях в системе VisualAge позволяет реализовать концепцию визуального объекно-ориентированного программирования. Объекно-ориентированного - потому что детали являются полноценными программными объектами со свойствами сокрытия данных, многообразности и наследования.
Для иллюстрации построим несколько простых приложений.
Список сотрудников. Построим приложение, позволяющее добавлять и удалять сотрудников из списка.

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

на рабочую область.

Для запоминания списка выбрана невидимая деталь Ordered Collection (Упорядоченная коллекция), которая позволяет добавлять и удалять объекты любого типа. Логику взаимодействия деталей можно описать следующим предложением: "При нажатии кнопки Add добавить содержимое поля ввода в Упорядоченную коллекцию и отображать находящееся в ней в Списке; при нажатии кнопки Remove удалить выделенный элемент Списка из Упорядоченной коллекции". В соответствии с этим установим связи между деталями. При нажатии кнопка генерирует событие 'clicked'
.
Свяжем это событие с действием 'add' (добавить), выполняемым Упорядоченной коллекцией
.


Штриховая линия говорит о том, что параметр для вызываемого действия не указан. Так как в коллекцию добавляется содержимое поля ввода, свяжем атрибут 'object' поля ввода с атрибутом 'anObject' связи Кнопка-Упорядоченная Коллекция.

Для того, чтобы содержимое Колекции отображалось в Списке, соединим атрибуты 'items' Списка и 'self' Коллекции. С кнопкой "Remove" поступим аналогично кнопке "Add", только вызываемым действием Коллекции будет теперь 'remove', а его параметром - атрибут 'selected item' Списка.

Мы создали законченное приложение, не написав ни единой строки программы, а всего лишь визуально задав логику взаимодействия его компонент. Выполняется оно немедленно, благодаря тому что базовым языком программирования системы является Smalltalk, который не требует компиляции. Очевидно, что успех реальной разработки напрямую зависит от качества и количества доступных деталей. Они могут быть созданы как визуальным построением, программированием на языке Smalltalk, так и наследованием от уже существующих.
Если в предыдущем примере список сотрудников необходимо хранить в какой-либо базе данных, задача несколько усложнится, но подход к созданию приложения не изменится. Мы только возьмем другую деталь вместо 'Упорядоченной коллекции' - 'Запрос к базе данных'. Она обладает более широким набором свойств, среди которых нас больше всего интересует действие 'выполнить запрос' ('executeQuery') и атрибут 'результирующая таблица' ('resultTable'). Действие выполняет заданное SQL выражение, а деталь 'результирующая таблица' позволяет работать с полученным результатом. Внешне программа изменилась не существенно

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

[Назад] [Содержание] [Вперед]