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

   3. Докуме...
web-интерфейса CASE-инструмента использовалась библиотека Google
Web Toolkit. Особенность данной библиотеки для построения...
публикация приложения под собственным именем в бесплатном доме-
не appspot.com. Возможна также публикация web-приложения в...
15. Google Web Toolkit. http://code.google.com/intl/ru-RU/webtoolkit/




                                          7
Upcoming SlideShare
Loading in …5
×

Разработка CASE-инструментов как Web-приложений

1,232 views
1,087 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,232
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Разработка CASE-инструментов как Web-приложений

  1. 1. Разработка CASE-инструментов как Web-приложений Владимир Юрьевич Романов, факультет ВМК МГУ им. М.В. Ломоносова, romsrcc@rom.srcc.msu.su, vladimir.romanov@gmail.com В статье рассматриваются особенности разработки CASE-инстру- ментов как web-приложений в инфраструктуре Google [1]. Благодаря ис- пользованию такой инфраструктуры для взаимодействия пользователя с CASE инструментом используется обычные Интернет браузер, а прило- жение и данные пользователя инструмента хранятся на сервере инфра- структуры Google. Графическая нотация унифицированного языка UML[2] используется CASE–инструментом для визуализации структу- ры существующих программных систем в режиме on-line, для их доку- ментирования, а также для проектирования систем с помощью графиче- ского редактора UML-диаграмм в Интернет браузере. 1. Введение В последнее время существенно расширились возможности доступа к сети Интернет. Благодаря наличию беспроводной связи пользователь уже не привязан к помещению с проведенной сетью. Существенно расширился и класс устройств, с которых возможен выход в Интернет. Появился класс дешевых компьютеров - нетбуков специально предна- значенных для работы в сети Интернет. В таких компьютерах меньшие возможности устройств хранения информации на компьютере, посколь- ку предполагается, что основной объем информации будет храниться на сервере. Для нетбуков разрабатываются не требовательные к ресурсам компьютера операционные системы[3], основное назначение которых обеспечить выход пользователя в сеть Интернет. Перечисленные факто- ры дали толчок разработке web-приложений, которые не устанавлива- ются на компьютер пользователя, а используются через web -браузер. В частности, такими web-приложениями могут быть и CASE-инструменты для анализа, проектирования и разработки программных систем. Далее в статье описываются возможности такого CASE-инструмента. 2. Сервис визуализации программной системы с помощью графической нотации языка UML Разработка программных систем редко начинается «с нуля». Большинство разработок использует множество уже существующих библиотек классов. Актуальной становится задача выбора необходимых 1
  2. 2. библиотек со схожими характеристиками из множества доступных в Интернете. Бывает необходимо сравнить структуру таких библиотек и их функциональные возможности. Использование уже выбранных биб- лиотек часто требует знания не только их структуры, но также и воз- можного поведения и взаимодействия классов этой библиотеки в пери- од выполнения использующей библиотеку системы. В такой ситуации весьма полезным может оказаться сервис по ана- лизу и визуализации в online-режиме программных систем представлен- ных с помощью графической нотации языка UML. Для анализа и визуа- лизации могут быть использованы коды на популярных языках про- граммирования. Java и JavaScript. Для языка Java может использоваться байт-код виртуальной машины языка Java. Для интерпретируемого язы- ка JavaScript могут использоваться исходные тексты. Следует отметить, что визуализация программ в CASE-инструменте с помощью языка UML не требует построения UML-диаграмм вручную. Анализ взаимосвязей в анализируемом коде выполняется инструментом и UML-диаграммы, отражающие эти связи, строятся автоматически. В частности, для анализируемой системы стоятся следующие диаграммы. На диаграммах состава пакетов (packages) классов показывается вло- женность пакетов в пакеты, а также вложенность классификаторов (классов, интерфейсов, перечислений) в пакеты. На диаграммах взаимо- зависимости пакетов для каждого пакета показываются все зависимости одного пакета от другого, которые возникают как следствие зависимо- стей между вложенными в пакеты классами. Строится также UML-диа- грамма, которая показывает распределение пакетов системы по уров- ням. На такой диаграмме пакеты, от которых есть зависимость в других пакетах, располагаются на диаграмме на более низких уровнях иерар- хии. Для каждого классификатора анализируемой системы автоматически строится UML-диаграмма, показывающая с помощью отношений обоб- щения, реализации, ассоциации и зависимости языка UML связи этого классификатора с другими классификаторами. Показываются все непо- средственные предки и потомки классификатора; реализуемые и ис- пользуемые данным классификатором интерфейсы; классификаторы, реализующие и использующие данный интерфейс; классификаторы яв- ляющиеся типами полей данного классификатора; классификаторы, ис- пользующие данный классификатор в качестве типа своего поля. При- мер такой диаграммы показан на рисунке 1. Весьма важной для понимания анализируемой системы является ви- зуализация иерархии наследования классификаторов. Визуализация для каждого из классификаторов всех предков в иерархии наследования позволяет увидеть унаследованные от предков поля и методы, а также 2
  3. 3. реализуемые предками интерфейсы. Визуализация для каждого из клас- сификаторов всех потомков в иерархии наследования позволяет увидеть классификаторы, оказывающие наиболее существенное влияние на большинство классов системы. Оценить возможное поведение анализируемой системы позволяют генерируемые диаграммы взаимодействия (collaboration diagram) и диа- граммы последовательности взаимодействия (sequence diagram) языка UML. С помощью этих диаграмм визуализируются возможные последо- вательности вызовов методов с учетом свойства полиморфизма языка программирования. Так, например, при выполнении программы вызов абстрактного метода абстрактного класса реально может привести к вы- зову метода в каком либо конкретном классе реализующем абстрактный класс. Рис.1. Визуализации CASE-инструментом связей класса системы. Для понимания программной системы может быть полезен метриче- ский анализ программной системы. Для каждого из классов вычисляет- ся и представляется в виде таблицы набор значений объектно-ориенти- рованных метрик, позволяющий оценить качество проектирования про- граммной системы. Для значения метрики возможна визуализация в 3
  4. 4. виде диаграммы UML классификаторов и отношений классификаторов, которые использовались при вычислении этого. 3. Документирование программных систем Анализ программной системы с помощью работающего только в ре- жиме on-line сервиса, может быть по каким либо причинам не приемлем для пользователя инструмента. Для таких случаев CASE-инструмент предоставляет возможность генерации, в виде UML-диаграмм, докумен- тации о структуре и поведении программной системы. В последнее время были разработаны основанные на языке XML открытые форматы для хранения документов. Данные форматы, помимо текста, позволяют хранить также в компактной векторной форме и гра- фическую информацию, например, диаграммы на языке UML. Широкое распространение в сети Интернет получил разработанный консорциу- мом W3C формат векторной графики Scalable Vector Graphics[4] под- держиваемый наиболее популярными Интернет-браузерами Internet Ex- plorer, Opera, Chrome, Mozilla FireFox. Фирмой Microsoft был предложен формат OpenXML[5] поддерживаемый в Microsoft Office. Консорциум фирм, включающий в частности, фирмы IBM и Sun, разработал формат Open Document Format (ODF) [6,7]. Формат ODF поддерживается, в частности, бесплатно распространяемым офисным приложением OpenOffice[8]. На сервере Google Docs[9] также возможно бесплатное хранение, редактирование и просмотр документов в формате ODF. Особенность указанных форматов состоит в возможности встраива- ния в основанный на языке XML документ программ, написанных на скриптовых языках, например, на JavaScript. Программы имеют возмож- ность взаимодействия с содержимым XML-документа через интерфейс Document Object Model. Сгенерированные CASE-инструментом доку- менты не только связаны гиперссылками, они предоставляют возмож- ность взаимодействия с пользователем, просматривающим документы с помощью мыши и клавиатуры. Таким образом, UML-диаграммы, содер- жащиеся в сгенерированных CASE-инструментом документах, также имеют структуру, представленную on-line сервисом CASE-инструмента. Хранение документов - диаграмм на сервере Google в хранилище доку- ментов Google Docs позволяет совместное использование единой доку- ментации распределенной группой разработчиков программной систе- мы. 4. Проектирование программных систем Для проектирования программных систем используется редактор UML-диаграмм интегрированный в web-браузер. Для реализации такого 4
  5. 5. web-интерфейса CASE-инструмента использовалась библиотека Google Web Toolkit. Особенность данной библиотеки для построения интер- фейса пользователя состоит в том, что клиентская часть web-приложе- ния может разрабатываться на языке Java, также как как и серверная часть приложения. Код клиентской части, разработанный на языке Java, транслируется в текст на языке JavaScript исполняемой на стороне кли- ента программы. Таким образом реализуются управляющие элементы интерфейса пользователя. Имеется возможность включения в текст кли- ентской части на языке Java также и native-методов, реализация которых выполнена на языке JavaScript. С помощью native-методов выполняется формирование графических элементов UML-диаграмм как элементов графики в формате SVG. Для хранения модели проектируемой программной системы в сер- верной части CASE-инструмента использовалась реализация классов метамодели языка Unified Modeling Language 2.0[2] выполненная в рам- ках проекта Eclipse Model Development Tools (MDT) [10]. При решении задачи обратного проектирования (reverse engineering) анализ байт-кода программ, написанных на языке Java, выполнялся с помощью поставляемой в исходных текстах библиотеки Byte Code Engi- neering Library BCEL[11]. Данная библиотека позволяет получить более детальное представление исполняемого на виртуальной машине кода, чем это позволяет стандартный механизм Reflection[12] языка Java. В частности, эта библиотека позволяет проанализировать не только струк- туру классов, также и исполняемую часть методов классов. Обратное проектирования для текстов программ на языке JavaScript выполнялось с помощью генератора компиляторов CocoR[13]. С его по- мощью была описана грамматика языка ECMAScript[14] – стандартизо- ванной версии языка JavaScript. В грамматику были встроены семанти- ческие действия и сгенерирован распознаватель языка ECMAScript. 5. Используемые технологий фирмы Google Для использования инструментария Google Web Toolkit GWT[15] фирмой Google разработано дополнение среды разработки Eclipse для языка Java. Таким образом, при использовании инструментария GWT отладка клиентской и серверной части приложения на языке Java воз- можна в единой среде разработки. Фирмой Google предложен инструментарий для разработки прило- жений расположенных на сервере - Google App Engine[4]. Фирмой Google предлагается также инфраструктура для хранения приложений на серверах Google. Разработка приложений с помощью Google App Engine в инфраструктуре Google имеет ряд достоинств. Нет необходи- мости сопровождения сервера пользователем приложения. Возможна 5
  6. 6. публикация приложения под собственным именем в бесплатном доме- не appspot.com. Возможна также публикация web-приложения в соб- ственном домене с помощью служб Google. Следует отметить также поддержку фирмой Google разработки при- ложений на начальных этапах разработки web-приложений. Начать ис- пользовать App Engine можно бесплатно. Не нужно платить за приложе- ния, использующие менее 500 МБ хранилища, а также ресурсы ЦП и трафик, достаточные для эффективного приложения, обслуживающего до пяти миллионов просмотров страниц в месяц. Включив оплату для приложения, эти ограничения повышаются, а оплата взимается только за ресурсы, использованные свыше бесплатных уровней. 6. Заключение Появление беспроводного доступа к сети Интернет, а также компактных и относительно недорогих устройств, позволяющих осуще- ствлять такой доступ к сети Интернет, стимулировало разработку web- приложений, располагающихся на сервере и используемых через Интер- нет-браузер. В статье рассмотрена экспериментальная реализация как web-приложения некоторого CASE-инструмента, используемого для анализа, документирования и проектирования программных систем. Для такой реализации применялись технологии фирмы Google. 7. Ссылки 1. Инфраструктура Google. http://code.google.com/intl/ru-RU/appengine/ 2. Object Management Group, UML 2.1 Superstructure Specification, OMG document. ptc-06-04-02.pdf http://www.omg.org/uml 3. Платформа Андроид. http://developer.android.com 4. Scalable Vector Graphics (SVG). XML Graphics for the Web. http://www.w3.org/Graphics/SVG 5. Open XML Standard ECMA-376 Office Open XML File Formats. http://www.ecma-international.org/publications/standards/Ecma-376.htm 6. OpenDocument Format Alliance. http://www.odfalliance.org/ 7. Формат Open Document для офисных приложений v1.0. http://www.i-rs.ru/Produkty/ODF-ISO-IEC-26300-2006/Dokumentaciya 8. Open Office. http://ru.openoffice.org/ 9 Google Docs http://docs.google.com 10. UML2 EMF-based implementation of the Unified Modeling Language (UMLTM) 2.x OMG metamodel for the Eclipse platform. http://www.eclipse.org/modeling/mdt/? project=uml2 11. Byte Code Engineering Library http://jakarta.apache.org/bcel/ 12. Java Reflection. http://java.sun.com/developer/technicalArticles/ALT/Reflection/ 13. Сompiler generator Coco/R . http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/ 14. Standard ECMA-262, ECMAScript Language Specification. 3rd edition http://www.ecma-international.org/publications/standards/Ecma-262.htm 6
  7. 7. 15. Google Web Toolkit. http://code.google.com/intl/ru-RU/webtoolkit/ 7

×