|
|
|||||||||||||||||||||||||||||
|
Программирование в картинках. Rational RoseИсточник: Компьютеры+программы, #4/2002 Татьяна Михно
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 в одной из нотаций:
Наиболее распространена Unified (унифицированная) нотация. Программа на UML не кодируется, а описывается при помощи диаграмм, очень напоминающих школьный алгоритмический язык. Диаграммы UML состоят из объектов и связей между ними (как на рис. 1) или из этапов процесса (как на рис. 2). Рис. 1. Диаграмма использования термометра Рис. 2. Диаграмма состояний процесса сравнения двух переменных После проектирования классов на диаграммах 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 , которая основана в 1981 году и занимается созданием CASE- технологий. Программные продукты фирмы Rational предназначены для анализа требований к системе, разработки программного обеспечения, тестирования, управления проектами и поддержки команды разработчиков. Страница на сайте разработчика посвящена Rational Rose. Предварительно зарегистрировавшись, с сайта разработчика можно скачать бесплатную 15-дневную версию Rational Rose. Там же можно получить документацию (на английском языке). Rational Rose существует для двух платформ - Windows (начиная с 98) и UNIX (Solaris 2.6, 7 и 8, HP-UX 10.20, 11, 11.11 (11i), Linux). Те, кому не хватает возможностей, предоставляемых Rational Rose, могут дополнительно закачать и установить разнообразные надстройки и утилиты к ней. РаботаВ Rational Rose модель представлена с четырех точек зрения, или видов (View):
ПолезностьКак правило, программисты неохотно берутся за освоение новых программных продуктов. На такой отчаянный шаг они готовы пойти либо в случае, когда им предлагают достаточную сумму за написание программы на языке, которого они пока не знают, либо когда им нечего делать, либо просто из любопытства. Rational Rose в этом плане отличается от языков программирования. "С кондачка" ее не выучишь - нужен весьма серьезный стимул. Поскольку система комплексна и многогранна - ориентироваться в ней так же непросто, как в современной политике. Хотя, впрочем, не стоит забывать, что работа программиста - это тоже творчество, а посему случаи, похожие на озарение,- не редкость. Когда оказывается, что для изменения модели не нужно переписывать ее сверху донизу; когда понимаешь, что можешь показать заказчику будущий продукт с любой степенью детализации; когда начальство многозначительно хмыкает при взгляде на стройные ряды классов и объектов - в такие моменты чувствуешь себя демиургом, творцом небольшой вселенной. Что тоже не вредно для самолюбия. При установке Rational Rose обнаруживает программное обеспечение разработчика и активно с ним взаимодействует. В Rational Rose 2001 реализован контроль версий при помощи Microsoft Visual SourceSafe или встроенного средства фирмы Rational. Любителям "открытого программирования", да и тем, у кого просто есть желание поделиться собственным открытием, стоит знать, что Rational Rose с помощью средства Rose Web Publisher может публиковать свои диаграммы, чтобы они стали достоянием общественности, на любом веб-сервере. Или в локальной сети - все зависит от настроек. На рис. 3 показана диаграмма Use Case, выложенная на веб-сервер по имени HAWK. Рис. 3. Публикация модели Rational Rose в сети Хозяйке на заметку: комментарии можно вставлять в классы при их проектировании. То есть на том этапе, когда разработчик еще не забыл, для чего должны служить эти классы, и не увлекся написанием кода. В Rational Rose существует также возможность, называемая Reverse Engeneering - реинжиниринг. Предположим, имеется работающая программа на языке. В данном случае реинжиниринг - это набор методов, позволяющих получить на основе исходного кода модель Rational Rose. Но не все так безоблачно, как может показаться на первый взгляд,- при создании программы с помощью Rational Rose приходится долго настраивать среду и вводить разнообразную информацию о создаваемых классах. Но в будущем это окупается сторицей - изменения в модель вносятся с легкостью, не нарушая при этом целостности программного продукта. При создании класса его имя вводится один раз, а потом выбирается из списка доступных объектов. Это предохраняет от грамматических ошибок. Когда приложение состоит из нескольких классов, каждый из которых использует произвольное количество остальных, не запутаться сложно. Но на диаграмме Rational Rose отлично видно, какие сущности использует каждый класс. Рис. 4. Связи между классами На рис. 4 показано, что класс EnvironmentalController унаследован от Controller. Он использует классы TemperatureSensor и pHSensor. Класс pHSensor включает в себя классы pH и location, а класс TemperatureSensor - классы temp и location. После создания модели приложения в Rational Rose остается только ассоциировать ее с языком программирования, список которых находится в меню Tools (Сервис). Затем для генерирования программного кода используется пункт подменю Code Generation. Rational Rose может быть полезна не только разработчикам. Системные аналитики и менеджеры проектов вполне могут применять ее для понимания архитектуры и требований при создании крупных программ. С ее помощью руководитель проекта легко может разделить работу между командой программистов так, чтобы каждый не вмешивался в работу других, но при этом видел результаты работы товарищей. На ранних этапах проектирования программ Rational Rose может облегчить взаимопонимание заказчика и проектировщика. Не секрет, что программисту иногда приходится объяснять клиенту, что ему нужно. Четкая и аккуратная диаграмма действий легче воспримется заказчиком, чем пространное объяснение, полное терминов, или бесконечные строки кода на дисплее. Но в любом случае главную роль играет полет творческой мысли создателя проекта, вне зависимости от используемых средств. Можно, пользуясь стандартным текстовым редактором и компилятором из командной строки, создавать шедевры. А можно и с помощью самых современных средств проектирования создать громоздкую и ненужную программу. И, тем не менее, не стоит забывать, что творцом остается человек, а компьютер и технологии - это лишь его верные (хотя подчас весьма капризные!) помощники.
|
|