Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Лучшие статьи журнала ╚Компьютеры+Программы╩


Служба Рассылок Subscribe.Ru

Здравствуйте, уважаемые читатели рассылки "Лучшие статьи журнала «Компьютеры+Программы»"!

Вашему вниманию представляется еще одна статья из апрельского номера "К+П".

Программирование в картинках. Rational Rose 2001

Java, C++, Visual C++ - это замечательные объектно-ориентированные языки программирования, однако для написания больших и сложных приложений требуется немалый опыт работы с этими языками.

Rational Rose позволяет не только спроектировать и создать каркас программы (не напечатав ни одного оператора), но и вносить существенные изменения в иерархию классов в ходе разработки.

Технологии

Rational Rose - это объектно-ориентированное средство проектирования, то есть реализация CASE-технологии. Понятие CASE-технология расшифровывается как Computer-Aided Software/System Engineering - разработка систем (или программного обеспечения) с помощью компьютера.

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

Для работы с Rational Rose необходимо знать UML (Unified Modeling Language - унифицированный язык моделирования). UML - это графический язык описания архитектуры системы. В Rational Rose можно работать с UML в одной из нотаций:

  1. в Unified (унифицированной);
  2. в нотации Г. Буча (Booch);
  3. в нотации ОМТ (Object Model Template - шаблон объектной модели).

Наиболее распространена Unified (унифицированная) нотация.

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

После проектирования классов на диаграммах Rational Rose дает возможность привязать их к конкретному языку программирования и создать на нем программный код. Rational Rose поддерживает работу с такими языками: C++, Ada, Java/J2EE, Visual C++, Visual Basic и XML. Существует надстройка, обеспечивающая интеграцию Rational Rose со средой Delphi. Rational Rose понимает модели COM и CORBA, схемы Oracle.

Разработчик

Само название Rational Rose переводится с английского либо как "Рациональная роза", либо как "Повышение рациональности", что связано с неоднозначностью перевода слова "Rose".

Rational Rose разработана компанией Rational (http://www.rational.com), которая основана в 1981 году и занимается созданием CASE-технологий. Программные продукты фирмы Rational предназначены для анализа требований к системе, разработки программного обеспечения, тестирования, управления проектами и поддержки команды разработчиков.

Страница http://www.rational.com/products/rose/rsds/renterprise_generic.jsp на сайте разработчика посвящена Rational Rose.

Предварительно зарегистрировавшись, с сайта разработчика можно скачать бесплатную 15-дневную версию Rational Rose (http://www.rational.com/support/downloadcenter/index.jsp). Там же можно получить документацию (на английском языке). Rational Rose существует для двух платформ - Windows (начиная с 98) и UNIX (Solaris 2.6, 7 и 8, HP-UX 10.20, 11, 11.11 (11i), Linux).

Те, кому не хватает возможностей, предоставляемых Rational Rose, могут дополнительно закачать и установить разнообразные надстройки и утилиты к ней (http://www.rational.com/support/downloadcenter/addins/rose/index.jsp).

Работа

В Rational Rose модель представлена с четырех точек зрения, или видов (View):

  1. Use Case View. Описывает, как проект выглядит с точки зрения его использования. Кто и куда вводит данные, что после этого делает программа и кому передает результат;
  2. Logical View. Здесь описывается логика программы. Рекомендуется приступать к работе с этим аспектом модели в последнюю очередь, когда уже определено, что и в какой последовательности будет делать программа. Здесь описываются классы, их свойства и методы, отношения между классами;
  3. Component View. Показывает, на какие компоненты разбит проект, что помещено в каждый из них. Здесь проектируются модули и зависимости между ними, переходы от главной программы к подпрограммам;
  4. Deployment View. Помогает продумать расположение физических устройств и связей между ними.

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

  1. State diagram . Диаграмма состояний и переходов между ними;
  2. Activity diagram . Отображает состояния системы и ее объектов, выполняемые действия и условные переходы;
  3. Iteraction diagram . Диаграмма взаимодействия объектов.

Полезность

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

Rational Rose в этом плане отличается от языков программирования. "С кондачка" ее не выучишь - нужен весьма серьезный стимул. Поскольку система комплексна и многогранна - ориентироваться в ней так же непросто, как в современной политике.

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

При установке Rational Rose обнаруживает программное обеспечение разработчика и активно с ним взаимодействует. В Rational Rose 2001 реализован контроль версий при помощи Microsoft Visual SourceSafe или встроенного средства фирмы Rational.

Любителям "открытого программирования", да и тем, у кого просто есть желание поделиться собственным открытием, стоит знать, что Rational Rose с помощью средства Rose Web Publisher может публиковать свои диаграммы, чтобы они стали достоянием общественности, на любом веб-сервере. Или в локальной сети - все зависит от настроек.

Хозяйке на заметку: комментарии можно вставлять в классы при их проектировании. То есть на том этапе, когда разработчик еще не забыл, для чего должны служить эти классы, и не увлекся написанием кода.

В Rational Rose существует также возможность, называемая Reverse Engeneering - реинжиниринг. Предположим, имеется работающая программа на языке. В данном случае реинжиниринг - это набор методов, позволяющих получить на основе исходного кода модель Rational Rose.

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

При создании класса его имя вводится один раз, а потом выбирается из списка доступных объектов. Это предохраняет от грамматических ошибок.

Когда приложение состоит из нескольких классов, каждый из которых использует произвольное количество остальных, не запутаться сложно. Но на диаграмме Rational Rose отлично видно, какие сущности использует каждый класс.

На рисунке показано, что класс EnvironmentalController унаследован от Controller. Он использует классы TemperatureSensor и pHSensor. Класс pHSensor включает в себя классы pH и location, а класс TemperatureSensor - классы temp и location.

После создания модели приложения в Rational Rose остается только ассоциировать ее с языком программирования, список которых находится в меню Tools (Сервис). Затем для генерирования программного кода используется пункт подменю Code Generation.

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

На ранних этапах проектирования программ Rational Rose может облегчить взаимопонимание заказчика и проектировщика. Не секрет, что программисту иногда приходится объяснять клиенту, что ему нужно. Четкая и аккуратная диаграмма действий легче воспримется заказчиком, чем пространное объяснение, полное терминов, или бесконечные строки кода на дисплее.

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

И, тем не менее, не стоит забывать, что творцом остается человек, а компьютер и технологии - это лишь его верные (хотя подчас весьма капризные!) помощники.

Татьяна МИХНО,
zmeika_t@yahoo.com


Задать вопрос
Прислать свою статью для публикации в журнале
Просто поговорить
Получить именной бланк подписки на "бумажную" версию
Получить каталог всех статей

До следующего выпуска!
Елена Полонская, редактор "К+П"
www.cp.comizdat.com

Перепечатка материалов этой рассылки разрешается только по согласованию с редакцией журнала "Компьютеры+Программы"



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное