Книга «Rational Rose 2000 и UML. Визуальное моделирование» является исчерпывающим руководством по использованию инструмента (Rational Rose 2000), процесса (Rational Unified Process) и языка (UML) для визуального представления, определения, описания и создания программной системы. Здесь изложены основы процесса разработки и дано четкое объяснение каждого этапа и элемента. Автор следует упрощенному варианту методологии Rational Unified Process и описывает процесс разработки от задумки до системного анализа и проектирования. На простом практическом примере, проходящем через всю книгу, наглядно демонстрируются итеративный процесс разработки, средства языка UML и возможности среды моделирования Rational Rose. В приложениях рассматриваются вопросы генерации кода и возвратного проектирования в программе Rational Rose 2000 для языков C++, Visual C++ и Visual Basic.
В книге также обсуждаются следующие темы:
— создание функций;
— поиск объектов и классов;
— стереотипы и пакеты в языке UML;
— сценарии и диаграммы взаимодействий;
— способы взаимодействия объектов;
— ассоциативные и агрегационные отношения;
— поведение и структура классов;
— наследование и отношения суперкласс/подкласс;
— поведение объектов и диаграммы переходов и состояний;
— проверка целостности модели;
— определение, представление и описание системной архитектуры;
— итерационный процесс планирования.
Предисловие
Эдворд Тафт в своей известной работе «Визуальное представление количественной информации» заметил, что «графика открывает данные». Утверждая это, он имел в виду следующее: графическое представление любого сложного набора данных содержит больше информации, чем просто данные в исходном виде. Это справедливо и для программного обеспечения: при постоянном развитии и совершенствовании информационных систем сложность их возрастает, поэтому возможность эффективно управлять такими системами зависит от нашей способности представить их визуально, отделив от уровня исходного кода. Действительно, успешное распространение таких языков, как Visual Basic (применяется чаще других языков, даже Кобола), и средств визуального проектирования для C++ и Java показывает, что визуализация является важным средством для разработки сложных систем. А с появлением распределенных и параллельных систем различных типов, особенно Web-технологий, визуальное представление программных комплексов просто необходимо.
Терри Кватрани (Terry Quatrani) в своей книге утверждает, что «процесс, нотация и инструмент моделирования — это три концепции, необходимые для графического представления программной системы». Как я отмечал в предисловии к первому изданию ее книги, очевидно, что эти ключевые компоненты разработки программ продолжают развиваться. На сегодняшний день программисты владеют более мощным набором инструментов для проектирования и создания систем, чем два года назад. Кроме того, утвердившиеся стандарты в методах, языках и инструментах позволяют сосредоточить усилия непосредственно на разработке и поставке сложных программных комплексов и не тратить время, как раньше, на обсуждение различных подходов (хотя вокруг языков дебаты продолжаются). Мне довелось участвовать не только при разработке универсального языка моделирования (UML), но и при определении стандартов для самого процесса разработки, утвержденных компанией Rational Software. Я рад, что язык UML получил широкое распространение и признание, а также тому, что растет популярность таких продуктов, как Rational Rose, Rational Suites, а также методики Rational Unified Process.
Использование общих инструментов, методов и индустриальных стандартов позволит достичь реального взаимодействия и эффективной работы при построении широкомасштабных распределенных промышленных систем.
Терри работала с программой Rational Rose и языком UML практически с момента их зарождения. Ее знания в этой области очень обширны. Она была одним из лучших наставников, обучающих клиентов Rational пользоваться языком UML.
Эта книга отражает глубокое понимание предмета и является результатом работы над многочисленными сложными программными системами. Специалисты, интересующиеся вопросами визуального представления систем, узнают из книги Терри о том, как правильно описывать, отображать, документировать и создавать программные комплексы с использованием стандартной нотации и передовых инструментов. Я высоко ценю профессиональные знания и опыт Терри. Уверен, что читатель тоже их оценит.
От автора
Цель книги
Два года назад, когда я приступала к написанию первого издания книги, я думала о том, что это простая задача, ведь я занимаюсь своей проблемой всю жизнь. Как я заблуждалась! Грамотно изложить материал было очень сложно (конечно, родить ребенка — более тяжелое испытание, но не намного). Долгими ночами и в выходные дни я упорно работала над книгой и хочу отметить, что, когда я впервые увидела ее на прилавке магазина, сильно волновалась. Я также поняла, что надо быть мужественной, чтобы читать книжное обозрение. Моя книга может понравиться людям (пять звезд) либо не произвести никакого впечатления (одна звезда). По ряду причин рейтинг моей книги оказался средним.
В процессе работы над вторым изданием я собиралась адресовать его двум группам критиков. Прежде всего тем, кому она понравилась, — спасибо вам. Приятно слышать, когда кто-то скажет: «Отличная работа, с этой книгой я многому научился». Однажды на семинаре в Нью-Йорке один человек подошел ко мне и сказал: «Спасибо, с этой книгой я сэкономил много времени». Такие люди действительно поняли цель моей книги — упростить введение в визуальное моделирование.
Что касается людей, на которых первое издание не произвело никакого впечатления, — им, вероятно, не понравится и это издание. Я говорю так, потому что цель книги осталась прежней. Это не полное руководство по языку UML (подобные книги уже написаны Грейди и Джимом, я даже не собираюсь состязаться с этими признанными экспертами). Это также не руководство по методологии Rational Unified Process (такая книга недавно написана Филиппом и Айваром). Это даже не книга по языку С++. Как я уже отмечала, моя книга — попытка в простой и доступной форме объяснить, как использовать процесс, язык и инструмент для создания схемы информационной системы.
Задача книги
Основная задача книги — помочь в овладении техникой визуального моделирования и освоении основ языка UML. Здесь используются единый практический пример для демонстрации методов анализа и проектирования приложения. Приложение — это система регистрации учебных курсов для университета. Такая проблемная область была выбрана по причине ее понятности и отсутствия в ней компьютерной специфики. Поэтому вы можете сконцентрироваться на процессе моделирования и не тратить время на изучение самой предметной области.
Проблемная область рассматривается достаточно глубоко, чтобы была возможность практически опробовать методы визуального моделирования и поупражняться в решении реальной задачи, не обращая при этом особого внимания на несущественные детали. Ряд сопутствующих вопросов, условий и ограничений опущены с целью получения простого и понятного примера, соответствующего задачам книги.
Для получения подробной информации о методах визуального моделирования, языке UML и способах их использования для приложений вы можете обратиться на учебные курсы компании Rational Software Corporation. Ее адрес: 2800 San Tomas Expressway, Santa Clara, CA 95051; телефон: 8-10-1-800-767-3237; электронный адрес:
; сайт:
www.rational.com
.
Краткое содержание глав
Порядок и нумерация глав в настоящем издании не изменились, но содержание многих глав обновилось. Рисунки и сообщения программы приведены для версии Rational Rose 2000. Серьезные изменения коснулись глав 5 и 11. В главе 5 «Способы взаимодействия объектов» диаграммы последовательности действий и диаграммы взаимодействий сохранены в логическом представлении системы. Это сделано для соответствия Rational Unified Process. В главе 11 «Проектирование системной архитектуры» изменения внесены для того, чтобы показать значки компонентов вместе с нотацией для интерфейсных классов.
Я также добавила приложения, в которых рассматриваются способы использования программы Rational Rose с языками Visual Basic и Visual С++.
В главе 1 «Что такое визуальное моделирование» обсуждаются преимущества визуального моделирования, история языка UML и этапы разработки программы.
Глава 2 «Начало проекта» содержит описание системы регистрации учебных курсов, которая используется в качестве основного примера книги.
Глава 3 «Создание прецедентов» описывает методы исследования поведения системы на основе прецедентов.
Благодарности
Я хотела бы поблагодарить многих людей за помощь в создании, оформлении и распространении моей книги.
Особую признательность я выражаю Стиву Бейли (Steve Bailey), Нэвине Берэни (Naveena Bereny), Керту Биттеру (Kurt Bitter), Грейди Бучу (Grady Booch), Джиму Коналлену (Jim Conallen), Эду Делио (Ed Delio), Лизе Дорнел (Lisa Dornell), Мэту Дразелу (Matt Drahzal), Марии Эриксон (Maria Ericsson), Джиму Форду (Jim Ford), Адаму Франклу (Adam Frankl), Скоту Фромэну (Scott Frohman), Джиму Джилеспи Qim Gillespie), Дороти Грин (Dorothy Green), Джону Хопкинсу (Jon Hopkins), Айвару Джекобсону (Ivar Jacobson), Джэйсону Джэймсу (Jason James), Филиппу Крачтену (Philippe Kruchten), Эрику Липановичу (Eric Lipanovich), Питеру Лаки (Peter Luckey), Грэгу Мэйерсу (Greg Meyers), Сью Майкл (Sue Mickle), Лоре Малине (Laura Mullins), Лэри Обрайену (Larry O'Brien), Сильвии Нэчеко (Sylvia Pacheco), Джиму Пьетрокарло (Jim Pietrocarlo), Хьюго Санчесу (Hugo Sanchez), Чарли Снайдеру (Charlie Snyder), Лин Стил (Lynne Steele), Уокеру Ройсу (Walker Royce), Джиму Рамбо (Jim Rumbaugh),ToMy Шульцу (Tom Schultz), Джону Смиту Qohn Smith) и Дейву Тропеано (Dave Tropeano). Спасибо также редактору моей книги Картеру Шанклину (Carter Shanklin) и его помощнику Кристин Эриксон (Kristin Erickson) — без их содействия эта книга не была бы напечатана.
Принятые обозначения
Для облегчения работы с текстом в книге приняты следующие соглашения:
фрагменты примеров, важные операторы, классы, объекты, прецеденты, атрибуты, пакеты обозначены специальным шрифтом (Courier);
важные объяснения, базовые определения и термины, встретившиеся впервые, выделены
курсивом;
команды, клавиши и пункты меню даны полужирным шрифтом;
для обозначения последовательности выполнения команд меню используется символ =>, например:
New
=>
Actor
.