Лекция 18. CASE – технологии
Тема.7. CASE-технологии компьютерного проектирования
Мы уже знаем, что нотация UML специально разрабатывалась в расчете на то, чтобы диаграммы можно было легко рисовать от руки. Но! Ведь гораздо приятнее рисовать диаграммы с помощью удобного, интуитивно понятного и функционального программного пакета (CASE-средства). В этой лекции мы познакомимся с некоторыми подобными пакетами, а именно: IBM Rational Rose; Borland Together; Microsoft Visio; Sparx Systems Enterprise Architect; Gentleware Poseidon; SmartDraw; Dia; Telelogic TAU G2; StarUML; другие программы.
UML - отличное средство моделирования, но, как уже говорилось выше, строить диаграммы на бумаге - не всегда удобно, хотя бы по причине сложностей с редактированием, распространением и т. д. Чтобы облегчить труд проектировщика, были созданы CASE-средства - программы специального вида. CASE-средства помогут вам построить профессионально выглядящие диаграммы, даже если вы не в состоянии провести прямую линию на бумаге!
CASE-средства (от Computer Aided Software/System Engineering) - позволяют проектировать любые системы на компьютере. Необходимый элемент системного и структурно-функционального анализа, CASE-средства позволяют моделировать бизнес-процессы, базы данных, компоненты программного обеспечения, деятельность и структуру организаций. Применимы практически во всех сферах деятельности. Результат использования CASE-средств - оптимизация систем, снижение расходов, повышение эффективности, снижение вероятности ошибок.
Существует немало подобных программ. Выбор CASE-средства "по себе" - личное дело каждого читателя, и мы ни в коей мере не собираемся влиять на него. Мы лишь попытаемся предоставить ему этот выбор, рассмотрев некоторые наиболее достойные внимания, с точки зрения авторов, CASE-средства для построения UML-диаграмм. Причем постараемся рассказать и о признанных лидерах рынка, и о его "аутсайдерах", и о коммерческих "монстрах", и о "легких" программах с открытым исходным кодом. И начнем, пожалуй, с пакета, являющегося фактическим стандартом в области UML-проектирования.
IBM Rational Rose
Rational Rose - современное и мощное средство анализа, моделирования и разработки программных систем. Rational Rose пригодится при решении практически любых задач проектирования информационных систем: от анализа бизнес-процессов до кодогенерации на определенном языке программирования. Такой арсенал позволит не только спроектировать новую систему, но и доработать старую, произведя процесс обратного проектирования.
Для того чтобы наиболее полно покрыть весь сегмент рынка средств проектирования и разработки, выпускается несколько версий продукта:
- Rational Rose Modeler
Эта версия позволит аналитикам и проектировщикам проводить анализ бизнес-процессов и проектировать систему. Данная редакция, увы, не поддерживает кодогенерацию.
- Rational Rose Professional
Как видно из названия, это профессиональная редакция продукта. В зависимости от выбранного языка программирования позволяет выполнять прямое и обратное проектирование. Rose Professional заказывается только в определенной конфигурации (например, Rose Professional С++ или Rose Professional С++ DataModeler). Rational Rose Professional, конечно, не создает 100 % исполняемого кода. На выходе разработчик получает каркасный код информационной системы на определенном (заказанном) языке программирования, который впоследствии нужно еще программировать и программировать. Продукт нацелен и на аналитиков, и на разработчиков.
- Rational Rose RealTime
Версия продукта, созданная специально для получения 100 % исполняемого кода в реальном масштабе времени. Конечно, RealTime позволяет проводить прямое и обратное проектирование на языках С или С++. По заверениям разработчиков, на выходе модель автоматически компилируется и собирается в исполняемый файл. Само собой, продукт предназначен именно для разработчиков.
- Rational Rose Enterprise
Абсолютно полная версия. Поддерживаются все функции других редакций, за исключением возможности 100 % кодогенерации. Таким образом, эта версия продукта покрывает весь спектр задач по проектированию, анализу и кодогенерации. Это программный пакет для всех участников проекта.
- Rational Rose DataModeler
Это не конкретный вариант продукта, а функциональность по проектированию баз данных. Функции DataModeler входят в состав Rose Enterprise или Professional.
К сожалению, нет бесплатной версии продукта, но для образовательных учреждений все программное обеспечение IBM доступно бесплатно (для использования в учебных целях) в рамках программы IBM Academic Initiative.
А как же выглядит это чудо? Не слишком изысканно, но вполне функционально - судите сами (рис.18.1):
Рис. 18.1.
В зависимости от поставки, в Rational Rose может быть расширен или сужен набор визуальных компонент (возможных диаграмм). Впрочем, Rational Rose и так достаточно функционален. Вот основные возможности продукта:
- прямое и обратное проектирование на языках: ADA, Java, С, C++, Basic;
- поддержка технологий COM, DDL, XML;
- возможность генерации схем БД Oracle и SQL.
Также Rational Rose имеет открытый API, позволяющий самому создавать модули для других языков программирования. На рынке уже имеется достаточное число модулей для популярных языков программирования и RAD-систем, таких как Delphi, ErWin, Jbuilder, VisualCafe, Jdeveloper, VisualAge SmallTalk. Одна из ведущих компаний в области создания дополнительных модулей - Ensemble Systems (http://www.ensemble-systems.com/).
Rational Rose много раз признавалось различными изданиями лучшим средством проектирования. Вот только некоторые из них (рис.18.2):
Рис. 18.2.
Если вы программировали в MS Visual Studio 6.0, то, возможно, вы уже познакомились с одним из продуктов семейства Rational Rose, поскольку в этот пакет встроен Visual Modeler - усеченный вариант Rational Rose 98. С помощью Visual Modeler можно рисовать диаграммы классов в трех различных нотациях - нотации Буча, ОМТ и на UML. По диаграммам классов можно провести генерацию каркасного кода (на C++, VB или Java). Такая генерация программного кода называется прямым проектированием (forward engineering). Взаимозависимости классов, изображенных на диаграмме классов, отображаются в программном коде.
Большой интерес представляет обратное проектирование (reverse engineering), когда по исходному коду восстанавливается диаграмма классов, позволяющая понять структуру программы. Это тоже можно делать с помощью Visual Modeler, причем на основе Microsoft Foundation Classes (MFC)! К ограничениям Visual Modeler относится тот факт, что он не поддерживает диаграммы развертывания, описывая лишь внутреннюю функциональность создаваемой системы.
Также Rational Rose интегрируется с Visual Component Manager, репозиторием Microsoft Reposytory, системой управления версиями Microsoft Visual SourceSafe и Rational ClearCase. Плюс многое-многое другое...
Конечно, можно еще долго петь дифирамбы этому продукту, являющемуся, по сути, стандартом де-факто в области UML-проектирования (с субъективной точки зрения этот продукт не слишком интуитивен и удобен, хотя, без сомнения, сверхфункционален). Предоставим же читателю возможность оценить этот продукт, основываясь на информации "из первых рук"! Вы можете это сделать, посетив такие сайты:
http://www-306.ibm.com/software/rational/ Это официальный сайт Rational, где вы сможете найти информацию о Rational Rose и других продуктах Rational (на англ. языке). Также можете попробовать сходить по "старому адресу" - www.rational.com.
http://interface.ru/ Сайт компании "Интерфейс". Как уверяют авторы ресурса, на сегодняшний день здесь собран самый большой (в Рунете) архив информации по продуктам Rational. Здесь можно найти множество статей, обзоров, руководств и описаний "по теме" и на русском языке.
http://sunset.usc.edu/cse/ А здесь можно найти неплохой архив презентаций и статей по темам программной инженерии, в том числе и о Rational Rose (на англ. языке).
Borland Together
Очень симпатичный (если не сказать больше!) продукт от Borland. Borland Together ControlCenter - это интегрированная платформа разработки, позволяющая упростить и ускорить анализ, дизайн, разработку и развертывание комплексных корпоративных приложений. Эти возможности сочетаются в одном интегрированном решении с поддержкой UML, помогающем командно разрабатывать высококачественные системы быстрее и эффективнее. Технология Borland LiveSource, интегрированная в ControlCenter, автоматически синхронизирует все артефакты, так что изменения в них не прерывают процесс разработки (что очень похоже на концепцию "живых документов" от Microsoft). Таким образом, ситуация, когда модель и код не соответствуют друг другу, теперь невозможна - любые изменения в модели сразу же отображаются в коде и наоборот. ControlCenter предоставляет единую среду разработки, общий язык, диаграммы и строительные блоки, избавляя команду от необходимости использовать несколько продуктов, переключаясь между ними.
Вот некоторые особенности Borland Together:
- Поддержка XP ("экстремальное программирование")
Не вдаваясь в лишние подробности и не желая забивать голову читателя ненужными пока подробностями, скажем, что Together поддерживает "гибкие" процессы моделирования. Together предоставляет интерактивные возможности моделирования и поддерживает все виды диаграмм UML, включая диаграммы классов, прецедентов, последовательностей, кооперации, действий, состояний, компонентов и развертывания.
- Ускорение процессов разработки путем применения паттернов
Еще одна модная тенденция в программной инженерии: использование паттернов, или шаблонов проектирования, - некоторых стандартных решений, образцов в области проектирования. Используя эти образцы, эксперт или разработчик могут быстро создать модель и привести ее в соответствие с корпоративными стандартами и лучшими практиками кодирования. Еще одна возможность ускорения работы - планирование задач для разработчиков, использование напоминаний и органайзера, что позволяет работать эффективнее.
- Развертывание на несколько серверов приложений выполняется быстро, без перекодирования
Приложение можно развернуть на несколько серверов приложений, просто написав несколько строк. С Together ControlCenter приложение может быть построено для одного сервера приложений и легко переключено на другой, развернуто на сложной инфраструктуре.
- Функция контроля качества облегчает жизнь разработчиков
- Эффективнейший аудит и поддержка метрик качества разработки ПО позволяет команде контролировать качество продукта в ходе разработки.
Встроенное функциональное тестирование помогает обнаружить проблемы еще в процессе разработки, что действительно очень важно, поскольку стоимость исправления ошибок тем выше, чем позже они обнаружены.
Из вышесказанного становится ясно, что Borland Together - это нечто гораздо большее, чем просто пакет для рисования "картинок в стиле UML". Мы уже говорили о некоторых дополнительных возможностях программы, но какие же возможности предоставляет Together именно в плане визуального моделирования?
- Как уже говорилось ранее, поддержка всех основных видов диаграмм UML, включая диаграммы классов, прецедентов, последовательностей, кооперации, деятельности, состояния, компонентов…
- Поддержка ER-диаграмм (схем баз данных).
- Генерирование исходного кода из диаграмм последовательностей и обратное проектирование существующего кода в одну или более диаграмм последовательностей.
- Моделирование бизнес-процессов с помощью соответствующих диаграмм.
- Поддержка паттернов, о чем мы уже упоминали ранее, включая построитель шаблонов кода и множество видов встроенных паттернов.
- Эффективные метрики контроля качества для разных языков с возможностью их повторного использования.
- Простая генерация актуальной проектной документации в стиле "нескольких щелчков мыши" (а-ля Microsoft) или через командную строку в виде HTML, RTF или текстовом формате.
- Удобный настраиваемый редактор исходного кода.
- Визуальный построитель графического интерфейса пользователя.
- Плюс многое, многое другое...
А вот и скриншот (рис.18.3):
Рис. 18.3.
Как видите, выглядит продукт вполне неплохо, в лучших традициях Borland, чьи продукты всегда были ближе отечественным разработчикам, уверенным, что слова "юзабилити" и "Borland" - синонимы. Как и в случае IBM Rational Rose, существуют несколько специализированных версий данного пакета:
- Together ControlCenter
Интегрированная платформа разработки, предназначенная для упрощения и ускорения анализа, проектирования и разработки корпоративных приложений.
- Together Solo
UML-проектирование и разработка, единое решение для индивидуальных разработчиков и малых команд, позволяющее моделировать небольшие масштабируемые проекты быстрее и эффективнее.
- Borland Together Editions
Специальные редакции для предпочитаемых вами сред разработки:
- Together Edition for JBuilder
Интегрированная и гибкая среда проектирования, Together Edition for JBuilder помогает команде ускорить разработку высококачественных приложений в Borland JBuilder, решении номер один для разработки на языке Java.
- Together Edition for Eclipse
Ускоряет разработку высококачественных приложений на открытой платформе Eclipse, поддерживаемой IBM.
- Together Edition for WebSphere Studio
IBM® WebSphere® Studio теперь тоже поддерживается Borland Together Edition for Eclipse.
- Together Edition for SAP NetWeaver Studio
Предоставляет тесную интеграцию со средой разработки SAP NetWeaver.
- Together Edition for Microsoft Visual Studio .NET
Интегрированная среда, использующая индустриальный стандарт - UML, Borland Together Edition for Microsoft Visual Studio .NET, поможет командам разработчиков на C# и Microsoft® Visual Basic .NET ускорить разработку высококачественных решений на платформе .NET.
- Together Edition for C++BuilderX
Интегрированная и гибкая среда проектирования, Borland Together Edition for Borland C++BuilderX поможет команде ускорить разработку высококачественных приложений в C++BuilderX - многоплатформенной среде разработки.
- Together Designer Community Edition
Borland Together Designer Community Edition - это бесплатная среда разработки для создания диаграмм UML 2.0.
Как видим, у Borland бесплатная версия продукта есть и она доступна всем желающим! Авторы долгое время пользовались и продолжают пользоваться Borland Together CE, и этот пакет ни разу их не подвел. Единственный недостаток - некоторая неторопливость в работе и "прожорливость" в ресурсах, но это общая проблема многих подобных программ, поскольку большинство из них написаны на Java.
В целом впечатление, произведенное Together на авторов, - очень положительное, но, опять-таки, предоставим разработчикам самим рассказать о своем продукте:
- http://www.borland.com/together/ Это официальный сайт продукта, где вы сможете найти подробную информацию о Borland Together (на англ. языке). В частности, здесь можно просмотреть обзор технических характеристик Together, FAQ по продукту и другие материалы.
- http://info.borland.com/media/shockwave/together/1009_tvs_2.0_intro.html А перейдя по этой ссылке, можно посмотреть весьма добротно и убедительно сделанную фирменную флеш-демонстрацию возможностей продукта.
Microsoft Visio
Visio - решение для построения диаграмм от Microsoft. По словам разработчиков, Visio помогает преобразовать технические и бизнес-концепции в визуальную форму. И действительно, этот пакет из семейства Microsoft Office предназначен исключительно для рисования диаграмм. Visio имеет некоторые дополнительные возможности, но все же, повторим, по большей мере - это только средство для иллюстрирования документов MS Office, "не дотягивающее" до уровня пакетов, которые мы описывали ранее.
- Изобразительные же возможности Visio действительно весьма широки:
- Используя предопределенные фигуры Visio Professional , drag-and-drop и мастера, вы можете быстро и просто создавать понятные и информативные диаграммы.
- Возможности Visio можно легко расширять, используя новые шаблоны бизнес-диаграмм. Вы можете включать внешние источники данных, хранилища или коллекции хранимых шаблонов.
- В Visio можно прототипировать интерфейс приложений с помощью встроенных шаблонов пользовательского интерфейса Microsoft Windows XP, что позволяет создавать модель пользовательского интерфейса в стандартном Windows XP-стиле.
- Можно легко рисовать диаграммы сетевых ресурсов, иллюстрирующие развертывание нового ПО на существующие сетевые ресурсы.
- Visio Professional также тесно интегрируется с Microsoft Office Project, что позволяет, например, импортировать оттуда задачи для членов команды.
- С помощью шаблонов UML вы можете создавать UML-диаграммы статической структуры ПО или проводить обратное проектирование с помощью Visio 2003 Reverse Engineer Wizard.
- Visio 2003 может документировать для вас структуру существующих веб-сайтов, помогая таким образом в разработке, реализации или интеграции веб-приложений.
- Можно также создавать отчеты, сохранять диаграммы как вебстраницы и еще многое-многое другое...
Отметим (пока не забыли), что Visio - это не полноценное средство моделирования, а программа для создания иллюстраций (как и SmartDraw и Dia, рассказ о которых еще впереди), умеющая, кроме прочего, рисовать UML-диаграммы.
Внешне Visio похожа на другие программы семейства Microsoft Office, хотя и выглядит немного более архаично. Особенно это заметно в версии 2007 - интерфейс Visio 2007 разительно отличается (в худшую сторону) от остальных приложений MS Office и выглядит так, будто это программа из предыдущей версии "офиса". Впрочем, судите сами (рис.18.4):
Рис. 18.4.
Если верить разработчикам программы, есть по крайней мере 10 причин, чтобы использовать Visio:
- Документирование и анализ бизнес-процессов
Проектирование, документирование и анализ бизнес-процессов, используя шаблоны и символы, поддерживающие управление бизнес-процессами (BPM), включая Six Sigma quality improvement и ISO 9000-документацию.
- Отслеживание комментариев членов команды
Как и в других программах семейства MS Office, в Visio имеется средство рецензирования, которое можно использовать для отслеживания фигур и примечаний, оставленных другими членами команды.
- Сотрудничество по-новому
За этим рекламным лозунгом скрывается интеграция с Microsoft SharePoint и возможность экспорта диаграмм в SVG-формат или сохранения их как веб-страниц.
- Поддержка Tablet PC
Встроенная поддержка Tablet PC поможет просматривать, изменять и аннотировать ваши диаграммы в пути или в других случаях, когда вы далеко от своего десктопа. Используйте цифровые чернила для аннотирования ваших диаграмм, форматируйте, масштабируйте, вращайте их или ассоциируйте их с записями. В Visio вы можете конвертировать цифровые чернила в базовые фигуры или текст. И все бы хорошо, но Tablet PC - это, увы, удовольствие, доступное не для всех (по крайней мере, в наших странах).
- Инструменты для мозгового штурма
Сказано, конечно, слишком громко, но Visio действительно можно использовать для генерации и структурирования идей во время сессий мозгового штурма (это не так удобно, как например, MindManager (http://www.mindjet.com), но все же). Потом диаграммы, полученные в результате мозгового штурма, можно экспортировать в Microsoft Word, Microsoft Excel или XML, положив таким образом хорошее начало созданию других бизнес-файлов.
- Создание календарей
Календари Microsoft Outlook можно легко конвертировать в календари Visio, которые могут быть богато оформлены и форматированы и просто распространены между другими членами команды.
- Простое создание и использование технических диаграмм
Как уже говорилось выше, в Visio можно создавать диаграммы баз данных, инженерные диаграммы, сетевые, диаграммы разработки ПО и веб-приложений.
- Более быстрое создание и редактирование диаграмм
По заверениям разработчиков, Visio включает многочисленные улучшения, помогающие повысить производительность. Вращение фигур без переключения в специальный режим вращения, выбор и вращение группы фигур, печать выбранной части диаграммы, функция поиска фигуры и многое другое...
- Visio поддерживает множество локальных языков
Visio доступна на 17 языках, включая улучшенную поддержку азиатских языков и двунаправленного текста. Впрочем, вряд ли этот факт может считаться серьезным преимуществом людьми, которые "по жизни" пользуются исключительно англоязычным ПО.
- Отличная интеграция с другими приложениями MS Office
Об этом уже достаточно много нами было сказано ранее, так что не будем снова повторяться!
В отличие от ранее рассмотренных программ, MS Visio существует в двух редакциях (правда, есть еще особый вариант программы - Visio Enterprise Architect, но с ним нам работать не довелось):
- Visio Standard,
- Visio Professional.
Честно говоря, нам довольно сложно сказать о различиях этих двух редакций. Все желающие могут посетить веб-узел Microsoft, чтобы получить о Visio более подробную информацию. Со своей стороны мы позволим себе обратить внимание читателя на такие два места на этом, без сомнения, весьма достойном ресурсе:
- http://office.microsoft.com/en-us/FX010857981033.aspx Это официальный сайт продукта, где вы сможете найти о Visio подробную информацию (на англ. языке), в том числе статьи о различиях двух редакций продукта, о возможностях его использования при разработке ПО, о преимуществах Visio и многие другие материалы. Здесь также можно загрузить или заказать на диске пробную версию Visio.
- http://www.microsoft.com/office/visio/prodinfo/demo.mspx А перейдя по этой ссылке, можно посмотреть весьма добротную и убедительную (как и все рекламные материалы Microsoft) "родную" демонстрацию возможностей продукта.