Rational Rose для разработчиков и ради разработчиков

         

Данной статьей мне хочется открыть


"Долго запрягается, но быстро едет..." -

стиль жизни отечественного разработчика...
Данной статьей мне хочется открыть ретроспективу материалов по Rational Rose. Долгое время у меня вызывало сомнение необходимость подобного эссе, поскольку про Розу сказано достаточно много во всех периодических изданиях. Аналитики и проектировщики имеют представление о данном продукте и приблизительно знают, к чему его применить. Проблема только в разработчиках, которые либо не до конца представляют возможности пакета, либо имеют неправильную установку. Сия установка (комплекс) получается в результате того, что сам инструмент Rational Rose - широкопрофильный, покрывающий все большую часть аналитиков, проектировщиков и все тех же разработчиков. А по традиции его используют активно только первые две категории работников, поскольку для них очевидна необходимость применения CASE средств для описания как модели предприятия, так и бизнес-процессов и пр:
То, что может дать разработчикам собственно сама Роза, мы поговорим на страницах статьи, сейчас же необходимо отметить, что основное ее предназначение - это проектирование классов и реинжениринг уже существующих:
Вот мы плавно и подошли к камню преткновения: Ни для кого не секрет, что разработчик, профессионально владеющий инструментом (языком программирования, оболочкой, и пр.), очень неохотно использует новые инструменты, не говоря о методологиях. В этом случае пушистый котеночек превращается в ежа с большим количеством острых иголок, направленных на отстаивание собственной позиции (по иголке на каждую!). В первую очередь, поэтому все новое так трудно приживается на нашей российской ниве.
Вернемся от общих размышлений к продукту. В разработческих кругах основательно засело мнение о том, что: 1) генерация программ невозможна в принципе (по слухам-то, Роза как раз и генерирует программы), 2) генераторы никогда не смогут генерировать эффективный код!!! Ну что можно сказать по такому поводу?! Конечно же, часть возражений можно принять в расчет, но в основном это не так!


Начнем развеивать мифы:

  1. Rational Rose не собирается за вас генерировать 100% исполняемый код! Ее задача состоит в генерации расписанных (разрисованных) классов на определенном языке программирования.
  2. По поводу кода: а это как посмотреть! В свое время тоже не верилось в трансляцию с высокоуровневого языка в машинные коды! А сейчас ведь есть уже ни один набор оптимизирующих компиляторов! Это разве не прогресс??? Скорее всего, Rose в недалеком будущем научится создавать гарантированно высококачественный код.

Еще раз хочу отметить, что Rose позволит упростить разработку сложных классов посредством выразительных возможностей по графическому представлению классов и их взаимоотношений.
Данная статья является моей попыткой продемонстрировать Rational Rose именно с точки зрения разработчика. Подобная попытка уже была предпринята мною несколько ранее в статьях по конфигурационному управлению (Clear Case), по средствам тестирования (Rational Purify, Quantify, PureCoverage). Подобная очередность не случайна, поскольку их назначение для меня, как для разработчика, очевидно и не требует дополнительного пояснения, чего не скажешь про Rational Rose. Здесь кавалерийский наскок не получился! Пришлось разбираться продукте и вникать во все детали. Плодом разбирательств и является данная статья. В ней я попытаюсь объяснить, зачем Rose нужен разработчикам.
По своей структуре статья - это "ужастик" с продолжением!!! Сейчас мне трудно сказать, сколько будет в ней частей: но никак не меньше 3. А вообще, я призываю всех разработчиков, прочитавших первую часть, высказать свое мнение о ней и дать рекомендации по дальнейшему "продвижению"!!! Данная информация от Вас мне очень и очень важна, просто не хочется писать о том, что не вызывает интереса!!!
Итак, ниже вам предложена первая, очень общая статья в стиле доклада. В ней приводятся только общие моменты с конкретными примерами на С++.
Приятного чтения!

Содержание раздела