Использование разработки, управляемой моделями (MDD) в среде мэйнфрейма

Инструменты IBM помогут смоделировать и сгенерировать код для приложений, которые выполняются полностью или частично на zOS. Из этой статьи вы получите общее представление о моделировании приложений, языке UML и трансформациях моделей. Хотя разработка, управляемая моделями, (model-driven development, MDD) часто ассоциируется с объектно-ориентированным программированием, вы увидите, как использовать MDD в приложениях для мэйнфреймов, выполняя трансформацию модель-код, в результате которой создаётся приложение на языке COBOL.

Майкл Коннор, менеджер по рынку корпоративных инструментариев, IBM

Майк Коннор (Mike Connor) - менеджер по семейству продуктов для компиляторов на zOS и инструментов разработки приложений, в том числе WebSphere Developer for System z. Майк работает в красивой лаборатории IBM в Роли, Северная Каролина.



19.10.2007

Введение

Создание и совершенствование модели приложения может обеспечить правильное понимание проблемы. Эта процедура может помочь команде разработчиков в обсуждении проблемы, а также в выработке общего языка, понятного всем заинтересованным сторонам. Из этой статьи вы узнаете о принципах моделирования приложений, существующих инструментальных средствах, а также познакомитесь с трансформациями моделей. Будет продемонстрирован один вид трансформации модели, в которой структурный компонент модели базы данных создаёт "скелет" приложения COBOL.

Вам не нужно быть специалистом в области моделирования, унифицированного языка моделирования (UML), объектно-ориентированного программирования или в смежных областях архитектуры, управляемой моделями (Model Driven Architecture, MDA) или разработки, управляемой моделями. Тем не менее, некоторые знания в этих областях будут полезными. Материалы, которые помогут глубже понять эти концепции, можно найти в разделе Ресурсы. Необходимо знание на элементарном уровне основных понятий реляционных баз данных, например DDL, таблиц и столбцов, а также понимание COBOL на z/OS. В конце концов, модифицировать созданный исходный код COBOL придётся вам или вашей команде.


Что такое модель?

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

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

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

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

Что такое трансформация модели?

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

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

Чтобы запустить программу, нужно превратить, или трансформировать, вашу модель в код.

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

Инструмент трансформации используется для трансформации модели приложения в другую модель, или в код. Дополнительная информация, используемая вместе с моделью, руководит трансформацией из одной формы в другую. Эту информацию, направляющую трансформацию, или метаданные, можно использовать, чтобы в конечном итоге произвести трансформацию в исполняемый код.

В этой статье описывается, как можно трансформировать модель данных в "скелет" приложения COBOL.

Что такое UML?

Унифицированный язык моделирования (UML) - это стандартный язык моделирования, принятый организацией OMG (Object Management Group, см. http://www.omg.org) для визуализации и документирования систем программного обеспечения.

UML - это графический язык моделирования с визуальными представлениями или диаграммами для диаграмм вариантов использования, диаграмм классов, диаграмм взаимодействий, диаграмм состояний, диаграмм активности, диаграмм развёртывания и диаграмм компонентов.

Вариант использования - это сценарий, показывающий взаимодействие пользователя (также называемого актером) с системой. Эти сценарии управляются целями, то есть каждый пользователь стремится выполнить конкретную задачу. Примером варианта использования может служить клиент, делающий покупку через Интернет.

Диаграмма классов описывает объекты в системе и статические отношения между объектами. Эти отношения включают локализацию, ассоциации, наследование, кратность и другие. Можно предположить, что среди диаграмм классов объектов, которые поддерживают вариант использования покупки через Интернет, будут OrderInfo, CustomerDetail, Payment, DeliveryMechanism, InventoryItem и так далее. Вы, возможно, сможете увидеть некоторые из очевидных взаимоотношений между различными объектами. Диаграммы этих объектов помогают визуализировать эти взаимоотношения. Это дает возможность задавать вопросы о взаимоотношениях и находить пропавшие отношения.

Формулировка зондирующих вопросов о модели иногда называют "тестированием модели". После того, как тестирование модели достигнет стадии, когда на любой разумный вопрос есть ответ, можно объявить модель "завершённой" для конкретной цели данного варианта использования. Определив диаграммы классов и взаимоотношения, можно переходить к фазе генерации кода.

О UML написано много книг, но мы рекомендуем "UML в кратком изложении (UML Distilled) - краткое руководство по стандартному языку моделирования" Мартина Фоулера (Martin Fowler) и Кендалла Скотта (Kendall Scott) (Addison-Wesley, 1999 г.) Кроме того, на сайте IBM имеется очень хороший источник информации о UML: Ресурсный центр IBM по UML.

Генерирование кода COBOL из UML

IBM Rational Software Architect - это инструмент разработки, применяемый для создания диаграмм моделей UML, которые могут использоваться WebSphere Developer for System z V7. Кроме того, можно использовать WebSphere Developer для трансформации диаграмм UML в код. Эта трансформация известна как трансформация модель-код.

Вы можете установить WebSphere Developer for System z прямо поверх Rational Software Architect. В результате в вашем распоряжении будет один инструмент, выполняющий задачи по созданию модели UML и трансформации модели в код.

При помощи WebSphere Developer можно трансформировать диаграмму классов UML в приложение COBOL, к которому можно организовать доступ как к Web-сервису CICS под CICS 3.1 (или более поздней версией). Получившееся после трансформации приложение COBOL имеет базовую структуру приложения CRUD, то есть его можно использовать для выполнения операций над строками таблицы:

  • Create - создать строку в таблице
  • Read - прочитать строку в таблице
  • Update - обновить строку в таблице
  • Delete - удалить строку в таблице

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

Сгенерированное приложение COBOL состоит из следующих исходных файлов:

<CRUD COBOL ProgramName>.cbl
<CRUD Web Service Converter Driver>.cbl
<CRUD COBOL ProgramName>.wsbind
<CRUD COBOL ProgramName>.wsdl
<LIST COBOL ProgramName>.cbl
<LIST Web Service Converter Driver>.cbl
<LIST COBOL ProgramName>.wsbind
<LIST COBOL ProgramName>.wsdl

Создание кода COBOL из определения таблицы базы данных DB2

Также можно сгенерировать "скелет" CRUD-приложения COBOL, начиная с базы данных DB2 z/OS. Результаты будут примерно такими же, как и при создании CRUD-приложения COBOL из UML. Ниже описываются действия, в которых используется Data Perspective из WebSphere Developer for System z для просмотра, подключения и выполнения операций с реляционными базами данных.

Создание проекта

В этом упражнении мы будем использовать тип проекта под названием Database Application Project. Для его создания в Rational Software Architect выберите File => New => Project. Мастер запросит всю нужную информацию.

Выбор базы данных DB2

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

Рисунок 1. Страница подключений к базе данных в Rational Software Architect
Рисунок 1. Страница подключений к базе данных в Rational Software Architect

Выбор таблиц(ы)

После выбора базы данных будет выведен список таблиц, из которых можно выбрать необходимые. (Отображение списка таблиц может занять некоторое время, если в выбранной базе данных много таблиц.)

Рисунок 2. Выведенный список таблиц
Рисунок 2. Выведенный список таблиц

Запуск процесса трансформации

На этом этапе вы увидите представление как на рисунке 3, и после этого можно выполнять трансформацию. Просто нажмите на кнопку Run Transformations. Процессом трансформации руководят метаданные, находящиеся в параметрах. Для нахождения этих параметров выберите Window => Preferences, а затем разверните узел дерева z/OS DatabaseApplication.

Рисунок 3. Запуск трансформации по выбранным вами таблицам
Рисунок 3. Запуск трансформации по выбранным вами таблицам

Использование полученных CRUD-файлов

Теперь разработчики приложения могут добавить к сгенерированному CRUD-приложению COBOL необходимую логику. Независимо от того, работали ли вы с диаграммами классов UML или с базой данных DB2, с помощью WebSphere Developer for System z генерируется одинаковый набор артефактов.

Заключение

Моделирование при разработке ПО становится более распространённым и важным, приобретая всё большую ценность и как инструмент проектирования, и как средство коммуникации. Трансформации UML позволяют трансформировать одну модель в другую (ориентированную на конкретную платформу или более подробную) или в код. Модели используются не только Java-программистами. Прикладные программисты, пишущие на COBOL, также могут извлечь из них пользу, кроме того, они могут применять трансформацию модель-код при создании CRUD-приложений.

Ресурсы

Научиться

Получить продукты и технологии

  • Загрузите бесплатную пробную копию Rational Software Architect V7.0 и опробуйте возможности моделирования. (EN)

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere, Rational
ArticleID=263429
ArticleTitle=Использование разработки, управляемой моделями (MDD) в среде мэйнфрейма
publish-date=10192007