Объектом исследования диссертационной работы является процесс проектирования так называемых корпоративных приложений, то есть программных продуктов, так или иначе связанных с функционированием предприятия и нацеленных на повышение его эффективности. Проектирование программных продуктов — сложный итеративный процесс, успех которого зависит от грамотной организации самого процесса, выбора архитектуры и технологии разработки, а также от качества проектной документации.
Технологии Java 2, Enterprise Edition (J2EE) объединяют наиболее современные подходы и решения, непосредственно предназначенные для разработки распределенных программных систем уровня предприятия. J2EE представляет собой комплекс взаимодействующих Java-технологий, базирующихся на спецификациях фирмы «Sun Microsystems» .
Стандарты J2EE характеризуют следующие важные преимущества:
— независимость от платформы, связанная с основными свойствами языка Java ([23, 24]);
— высокая технологичность, связанная с широким использованием компонентных технологий;
— переносимость и расширяемость;
— поддержка многопользовательского режима;
— возможность интеграции с другими платформами и информационными системами;
— обеспечение надежной защиты информации.
Технологии J2EE реализуют многоуровневую и многосвязную архитектуру приложений, основанную на компонентной организации, гарантируют качество низкоуровневых служб и обеспечивают совместимость взаимодействующих приложений. Таким образом, эти технологии полностью удовлетворяют высоким требованиям, предъявляемым к современным распределенным Интернет-ориентированным системам, и являются одним из самых мощных средств проектирования и разработки корпоративных приложений.
Однако преимущества компонентных технологий, которые должны были бы сделать процесс проектирования простым и технологичным, на практике нивелируются сложностями, связанными с трудозатратами на их изучение и многочисленными проблемами, возникающими при их реальном использовании. Руководители проектов неизбежно сталкиваются с нехваткой специалистов достаточно высокой квалификации и необходимостью проектирования в условиях дефицита времени.
Из публикаций, посвященных общим вопросам объектно-ориентированного моделирования, проектированию с использованием образцов и описанию технологий J2EE, следует особо отметить работы Г. Буча и Д. Рамбо ([2, 3, 30, 78, 79]), И. Якобсона ([47, 48]), П. Коада и Э. Йордана ([32, 33, 34, 35]), М. Фаулера и К. Скотта ([25]), П. Перроуна и В. Кришны ([22]), И. Грэхэма ([41]), Э. Гаммы ([39]) и Э. Романа ([77]). В них излагаются базовые понятия, архитектура J2EE и детали технологий, но проблемы практического освоения этих технологий, их реального применения и потенциальные возможности автоматизации проектных процедур рассматриваются недостаточно.
Задачи облегчения использования технологий J2EE и автоматизации проектирования корпоративных приложений становятся особенно актуальными в связи с все возрастающим спросом на разработку программных систем данного типа.
На наш взгляд, эффективным решением указанных проблем является сочетание графического подхода к моделированию программных систем с компонентными технологиями J2EE. В настоящее время активно развивается направление, связанное с архитектурой, управляющей проектом (Model Driven Architecture, MDA). Этот подход позволяет получать глобальные проектные решения, применимые для любой среды разработки и любого конкретного языка программирования.
Общеизвестно, что наиболее удобным и легким для восприятия средством представления любой системы является ее графическое отображение (визуальное моделирование). Стремление к унификации графических элементов, используемых для проектирования, привело к тому, что международной рабочей группой по развитию стандартов объектного программирования (Object Management Group, OMG [74]) в 1997 г. был принят стандарт унифицированного языка моделирования (Unified Modeling Language, UML). Этот язык является основой автоматизированного проектирования и создания программ (Computer-Aided Software Engineering, CASE). Язык UML непрерывно развивается, и в настоящее время действующим является стандарт UML 2.0. Создание среды разработки, позволяющей представлять модель проектируемого корпоративного приложения в графическом виде, следовало вести в рамках общепринятого стандарта UML.
Стандарты UML определяют визуальные элементы, отображающие компоненты программы и связи между ними. Диаграммы UML могут быть использованы как для графического представления модели проектируемой системы, так и для генерации программного кода. Это привело к возникновению интегрированных сред разработки программных продуктов, ярким представителем которых является Borland@RTogether@R ControlCenter@R х.х. Главное назначение CASE-средств — проектирование больших и сложных программных систем, поэтому вполне естественным является стремление сочетать возможности MDA и UML с мощным потенциалом платформы J2EE.
На сегодняшний день существует не так много продуктов, поддерживающих разработку Д2ЕЕ-приложений, из которых только один (WebSphere Studio Application Developer, WSAD) поддерживает визуальное моделирование с помощью UML. Как видно из Таблицы, ни один из существующих продуктов не поддерживает моделирование корпоративных приложений, поэтому на предприятиях используется несколько продуктов: одни — для описания системы, другие — для ее разработки. Это усложняет процесс проектирования и требует дополнительных затрат для синхронизации при малейших изменениях в системе.
Таблица.
Сравнение инструментальных средств разработки.
Показатель Idea JBuilder WSAD.
Интегрированная среда разработки (Integrated Development Environment, IDE) + + +.
12ЕЕ-разработка + + +.
Размещение на сервере + + +.
Визуальное моделирование — — +.
12ЕЕ-моделирование — — —.
Возможность расширения + - —.
В настоящей работе предлагаются теоретическая база и методика визуального проектирования корпоративных приложений. Результатом применения предлагаемого подхода является исчерпывающий набор спецификаций, на основе которых создана инструментальная программная система автоматизированной разработки корпоративных приложений. Кроме того, предложен универсальный абстрактный интерфейс и абстрактная модель на его основе, позволяющая описывать практически любые реальные модели данных.
Актуальность проблемы автоматизации проектирования корпоративных приложений подтверждается тем, что ее решение позволит облегчить и формализовать процесс моделирования, а также ускорить процесс разработки и размещения приложений на серверах. Процесс проектирования при этом становится более качественным и технологичным, что существенно сокращает общие затраты на проектирование и кодирование программных продуктов рассматриваемого класса.
Автором разработаны теоретическая база и методика визуального проектирования корпоративных приложений. Предлагаемая методика обеспечивает возможность технологичной и качественной разработки программных систем уровня предприятия в заданные сроки и существенно сокращает общие затраты на проектирование и кодирование программных продуктов.
Результатом применения данного подхода является исчерпывающий набор спецификаций, на основе которых создана инструментальная программная система автоматизированной разработки корпоративных приложений. Все вышесказанное подтверждает актуальность настоящей работы.
Целью диссертации является разработка методики проектирования корпоративных приложений с использованием их графического представления, создание новых типов визуальных элементов, адекватно отображающих свойства корпоративных приложения, разработка абстрактного подхода к проектированию с использованием компонентных технологий и, в частности, платформы J2EE. Предлагаемые методики позволят повысить производительность труда разработчиков и эффективность проектирования.
Для достижения этих целей в работе ставились и решались следующие задачи:
— разработка универсального набора абстрактных интерфейсов и реализация на его базе абстрактной модели с возможностью ее в интеграции в другие программные продукты;
— создание новых визуальных элементов для представления приложений J2EE и их отдельных компонентов (в полном соответствии со стандартом UML) с целью автоматизации процесса проектирования;
— разработка методики автоматической генерации исходного кода и дескрипторов поставки на основе созданных моделей, их синхронизация с моделью;
— разработка методики проектирования сложных распределенных приложений, использующей графический подход и позволяющей в рамках одного проекта создавать программную систему и размещать ее подсистемы на различных серверах;
— создание визуальных шаблонов, реализующих Д2ЕЕ-образцы, и разработка методики их использования в процессе проектирования корпоративных приложений;
— автоматизация процесса размещения приложений на различных серверах с учетом их специфики;
— практическая реализация полученных теоретических результатов, а именно, создание инструментальных программных средств, ориентированных на программистов средней квалификации и позволяющих автоматизировать моделирование, кодирование и размещение на серверах сложных программных систем.
В качестве методов исследования в диссертации используются принципы объектно-ориентированного проектирования, системный анализ, теория графов, принципы технологичности, простоты разработки и повторного использования. Применяются архитектура и технологии платформы J2EE, Model Driven Architecture (MDA), Model Driven Development (MDD), стандарты Unified Modeling Language (UML), CASE-средства, а также Constructive Cost Model II (COCOMO II) для оценки эффективности процесса разработки программного продукта.
Достоверность полученных результатов подтверждается следующим образом:
1. В процессе создания абстрактной модели, отвечающей требованиям универсальности и расширяемости, и абстрактного API, а также конкретной модели и конкретного API для платформы J2EE последовательно применялись принципы MDA.
2. Разработка новых визуальных элементов производилась в строгом соответствии с требованиями общепринятого стандарта UML, зарегистрированного группой OMG.
3. Осуществлялась постоянная проверка полноты разработанных визуальных элементов, их адекватности набору компонентов J2EE и соответствия спецификациям фирмы-разработчика платформы J2EE «Sun Microsystems» .
4. Образцы, реализованные автором, разрабатывались в контакте с ведущим специалистом Джоном Круппи, под руководством которого создавались 12ЕЕ-шаблоны в «Sun Microsystems». Производились экспертные оценки визуальных шаблонов.
5. Корректность исходного кода и дескрипторов поставки, генерируемых на основе визуальной модели, а также их взаимная синхронизация проверялись полномасштабным тестированием.
6. Достоверность технических решений подтверждается a. сравнением с другими продуктами и подходами, b. анализом экспериментальных показателей результатов практического использования.
7. Для оценки достоверности полученных результатов привлекались независимые эксперты. Получены положительные отзывы крупных предприятий, таких, как SAP («Systems, Applications, and Products in Data Processing») и RBS («Royal Bank of Scotland»).
Научная новизна работы состоит в следующем:
— Предложен и теоретически обоснован новый графический подход к разработке сложных распределенных программных систем уровня предприятия.
— Разработана новая абстрактная модель корпоративного приложения и соответствующий абстрактный программный интерфейс (Application programming Interface, API).
— Предложен метод построения моделей и программных интерфейсов, поддерживающих конкретные компонентные технологии на основе абстрактной модели и абстрактного программного интерфейса.
— Предложена методика автоматизации основных проектных процедур: моделирования, кодирования и размещение приложений на сервере. В рамках UML разработаны спецификации новых .12ЕЕ-диаграмм, в том числе обобщенная диаграмма размещения.
— Для поддержки типовых проектных решений разработаны новые визуальные элементы, реализующие .12ЕЕ-образцы.
На защиту выносятся следующие основные положения:
1. Расширяемая абстрактная модель для представления иерархически-связанных элементов и абстрактный программный интерфейс (Application programming Interface, API) к ней, а также метод построения конкретных моделей и конкретных программных интерфейсов для проектирования корпоративных приложений, поддерживающих выбранную компонентную технологию (J2EE, .NET, CORBA и пр.), на основе абстрактной модели и абстрактного API.
2. Методика визуального моделирования корпоративных приложений с использованием технологий J2EE. На основе стандарта UML разработаны и специфицированы новые типы визуальных элементов для графического представления программной системы рассматриваемого класса, адекватно описывающие его свойства и служащие основой для последующей автоматической генерации кода и размещения приложения на сервере.
3. Методика проектирования распределенных программных систем с использованием обобщенной диаграммы размещения, позволяющая в рамках одного проекта реализовать автоматическое размещение подсистем на различных серверах.
4. Новые визуальные элементы, реализующие шаблоны J2EE. Использование этих элементов в процессе проектирования облегчает и ускоряет решение типовых задач, часто встречающихся при разработке корпоративных приложений.
Практическая зпачилюсть работы заключается в следующем:
1. Предложенный метод визуального проектирования корпоративных приложений на основе технологии J2EE доведен до практической реализации в реальных продуктах (Borland@R Together@R ControlCentergR 6. xBorlandgR JBuilderBorlandgR Together@R ControlCenter@R, Eclipse Edition), которые уже длительное время используются разработчиками.
2. Предложенный программный интерфейс и реализованная на его основе абстрактная модель могут быть с успехом использованы для разработки других программных продуктов.
3. Использование данной методики позволяет сократить затраты на проектирование и существенно снизить их при внесении каких либо изменений в технические требования на разрабатываемую систему, а также на начальном этапе проектирования (по экспериментальным оценкам от 25% до 50%, в зависимости от объема и сложности проекта).
Основные результаты диссертационной работы обсуждались в рамках научно-практических конференций СПбГПУ (2001г. — 2004 г.), на 2-й международной научно-практической конференции «Информационные технологии в моделировании и управлении» (Санкт-Петербург, 2000 г.), на конференции «Веа User’s Conference» (Даллас, США, 2002г), на семинаре для отдела маркетинга фирмы «Togethersoft» (Рэйли, США, 2002 г.), на семинаре для отдела поддержки фирмы «Togethersoft» (Рэйли, США, 2003 г.), на конференции «Технологии Microsoft в теории и практике программирования» (Санкт-Петербург, 2004 г.), на 5-й международной научно-технической конференции «Компьютерное моделирование 2004» (Санкт-Петербург, 2004 г.), на семинаре «Royal Bank of Scotland» (Лондон, Великобритания, 2005 г.) и на научно-техническом семинаре профессорско-преподавательского состава кафедры «Информационные и управляющие системы» СПбГПУ (Санкт-Петербург, 2005 г.).
Автором проводились также теоретические и практические занятия для разработчиков интеграционной команды фирмы «Togethersoft» (Рэйли, США, 2002 г.), для разработчиков фирмы «Borland» (Прага, Чехия, 2004 г.), для студентов СПбГПУ (Санкт-Петербург, 2004 г.).
Результаты диссертационной работы использовались при разработке диаграмм и компонентов J2EE, вошедших в интегральную среду разработки линии Borland@RTogether@R ControlCenter@R.
Методика автоматизированной разработки корпоративных приложений внедрена в ООО «Интеллект-ФТК» при разработке учебно-методического комплекса. Практическое использование представляемых на защиту результатов подтверждается соответствующими актами о внедрении. По материалам диссертации опубликовано 6 работ.
Кратко остановимся на структуре работы. Диссертация содержит 178 страниц основного текста, 71 рисунок, 12 таблиц и состоит из введения, 5 глав, заключения, списка сокращений и списка использовавшихся источников.
ЗАКЛЮЧЕНИЕ
.
Подведем итоги, того, что было сделано в ходе работы над диссертацией.
Основными достижениями данной работы являются разработка абстрактной модели корпоративного приложения и абстрактного программного интерфейса, а также специфицирование способа проектирования корпоративных приложений на основе UML. В данной работе это сделано на примере платформы J2EE, но данный подход может быть использован и с другими технологиями, такими, например, как .NET.
Главным преимуществом предлагаемого подхода является то, что все разработанные автором диаграммы основаны на стандартных диаграммах UML, таких, как компонентная диаграмма и диаграмма размещения. Все корпоративные элементы являются расширениями стандартного элемента Component с возможностью иметь свои собственные специфические свойства и члены (members).
Были сделаны примерные оценки экономии времени на проектирование и, соответственно, уменьшения себестоимости разработки. Так, себестоимость проектирования уменьшается приблизительно на 25% -50% (в зависимости от сложности проектируемой системы), так как автоматизированное генерирование исходного кода и дескрипторов существенно сокращает трудозатраты разработчиков. Проектирование на основе визуальной модели упрощает процесс тестирования готового программного продукта. Кроме того, значительно уменьшаются затраты на поддержку и размещение приложений на серверах. Так, например, используя диаграмму размещения, можно размещать как отдельные приложения на конкретных узлах (серверах), так и всю систему в целом. При этом скорость каждого размещения оказывается приблизительно вдвое выше скорости размещения при традиционном подходе. Учитывая многократную повторяемость размещения приложения на сервере в процессе разработки, можно говорить о существенной экономии временных затрат на эту процедуру.
Говоря о практической реализации предложенных решений, следует отметить, что абстрактный API, разработанный автором, позволяет на основе базовой реализации очень легко и быстро создавать различные модели. Все, что для этого нужно, — это создать необходимые провайдеры элементов и их свойств. Использование этого набора интерфейсов делает создаваемые модели очень гибкими, легко поддерживаемыми и расширяемыми за счет использования механизма провайдеров.
Кратко сформулируем полученные результаты:
1. Предложен и теоретически обоснован новый подход к автоматизации проектирования корпоративных приложений, а именно, проектирование с помощью визуальной модели, построенной на основе архитектуры MDA и в соответствии со стандартами UML. Предлагаемая методика позволяет сделать процесс проектирования более технологичным и эффективным, а также снижает требования к квалификации разработчиков.
2. Разработаны и специфицированы новые типы диаграмм, предназначенных для моделирования приложений J2EE, а также визуальные элементы, представляющие компоненты корпоративных приложений. Д2ЕЕ-диаграммы позволяют создавать модель корпоративного приложения, на базе которой осуществляется генерация скелета программного кода и дескрипторов поставки, а также автоматическое размещение приложения на сервере.
3. Предложены абстрактная модель для представления иерархически-связанных элементов и соответствующий абстрактный программный интерфейс, легко расширяемые и переносимые на различные компонентные технологии, такие, например, как .NET.
4. На основе абстрактного программного интерфейса разработан конкретный программный интерфейс, поддерживающий технологии J2EE.
5. Разработаны и реализованы образцы, предназначенные для решения типовых задач проектирования корпоративных компонентов.
6. Предложена новая обобщенная диаграмма размещения, автоматизирующая проектные процедуры для задач проектирования сложных распределенных программных систем.
7. Разработан метод автоматической генерации исходного кода и дескрипторов поставки на основе визуальной модели (.12ЕЕ-диаграмм), а также инструментальные средства (инспекторы и эксперт размещения), облегчающие работу пользователя.
8. Предложенный метод визуального проектирования корпоративных приложений на основе технологии J2EE реализован в конкретных программных продуктах (Borland@R Together@R ControlCenter@R 6. xBorland@R JBuilderBorland@RTogether@RControlCenter@R, Eclipse Edition).
9. Произведены экспериментальные и теоретические оценки эффективности использования графического подхода для моделирования, разработки и размещения корпоративных приложений. Сокращение трудозатрат по сравнению с традиционными методами проектирования составляло не менее 25%. Наиболее эффективно использование предлагаемой методики на начальных этапах разработки, при возможных изменениях требований в процессе проектирования, а также для автоматизации размещения приложения на сервере.