Rational Rose 2000 и UML. Визуальное моделирование

Кватрани Терри

От автора

 

 

Цель книги

Два года назад, когда я приступала к написанию первого издания книги, я думала о том, что это простая задача, ведь я занимаюсь своей проблемой всю жизнь. Как я заблуждалась! Грамотно изложить материал было очень сложно (конечно, родить ребенка — более тяжелое испытание, но не намного). Долгими ночами и в выходные дни я упорно работала над книгой и хочу отметить, что, когда я впервые увидела ее на прилавке магазина, сильно волновалась. Я также поняла, что надо быть мужественной, чтобы читать книжное обозрение. Моя книга может понравиться людям (пять звезд) либо не произвести никакого впечатления (одна звезда). По ряду причин рейтинг моей книги оказался средним.

В процессе работы над вторым изданием я собиралась адресовать его двум группам критиков. Прежде всего тем, кому она понравилась, — спасибо вам. Приятно слышать, когда кто-то скажет: «Отличная работа, с этой книгой я многому научился». Однажды на семинаре в Нью-Йорке один человек подошел ко мне и сказал: «Спасибо, с этой книгой я сэкономил много времени». Такие люди действительно поняли цель моей книги — упростить введение в визуальное моделирование.

Что касается людей, на которых первое издание не произвело никакого впечатления, — им, вероятно, не понравится и это издание. Я говорю так, потому что цель книги осталась прежней. Это не полное руководство по языку UML (подобные книги уже написаны Грейди и Джимом, я даже не собираюсь состязаться с этими признанными экспертами). Это также не руководство по методологии Rational Unified Process (такая книга недавно написана Филиппом и Айваром). Это даже не книга по языку С++. Как я уже отмечала, моя книга — попытка в простой и доступной форме объяснить, как использовать процесс, язык и инструмент для создания схемы информационной системы.

 

Задача книги

Основная задача книги — помочь в овладении техникой визуального моделирования и освоении основ языка UML. Здесь используются единый практический пример для демонстрации методов анализа и проектирования приложения. Приложение — это система регистрации учебных курсов для университета. Такая проблемная область была выбрана по причине ее понятности и отсутствия в ней компьютерной специфики. Поэтому вы можете сконцентрироваться на процессе моделирования и не тратить время на изучение самой предметной области.

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

Для получения подробной информации о методах визуального моделирования, языке UML и способах их использования для приложений вы можете обратиться на учебные курсы компании Rational Software Corporation. Ее адрес: 2800 San Tomas Expressway, Santa Clara, CA 95051; телефон: 8-10-1-800-767-3237; электронный адрес: ; сайт: .

 

Краткое содержание глав

Порядок и нумерация глав в настоящем издании не изменились, но содержание многих глав обновилось. Рисунки и сообщения программы приведены для версии Rational Rose 2000. Серьезные изменения коснулись глав 5 и 11. В главе 5 «Способы взаимодействия объектов» диаграммы последовательности действий и диаграммы взаимодействий сохранены в логическом представлении системы. Это сделано для соответствия Rational Unified Process. В главе 11 «Проектирование системной архитектуры» изменения внесены для того, чтобы показать значки компонентов вместе с нотацией для интерфейсных классов.

Я также добавила приложения, в которых рассматриваются способы использования программы Rational Rose с языками Visual Basic и Visual С++.

В главе 1 «Что такое визуальное моделирование» обсуждаются преимущества визуального моделирования, история языка UML и этапы разработки программы.

Глава 2 «Начало проекта» содержит описание системы регистрации учебных курсов, которая используется в качестве основного примера книги.

Глава 3 «Создание прецедентов» описывает методы исследования поведения системы на основе прецедентов.

Глава 4 «Поиск классов» знакомит с основными подходами и нотацией для выделения объектов и классов системы. Здесь также рассматриваются понятия стереотипов и пакетов в языке UML.

В главе 5 «Изучение взаимодействия объектов» рассматривается добавление в систему сценариев, описывающих, как прецеденты реализуются путем взаимодействия между наборами объектов. Здесь приводятся примеры использования диаграмм последовательности действий и диаграмм взаимодействий для получения сценариев.

Глава 6 «Определение отношений» иллюстрирует возможности установки отношений между классами системы. Отдельно обсуждаются понятия ассоциации и агрегации.

Глава 7 «Добавление поведения и структуры» содержит информацию о способах добавления структуры и поведения классов к модели системы.

Глава 8 «Изучение наследования» знакомит с принципами наследования и отношения типа подкласс-суперкласс.

В главе 9 «Анализ поведения объекта» рассказывается об использовании диаграмм переходов и состояний для анализа классов с выраженным динамическим поведением.

В главе 10 «Проверка модели» обсуждаются методы проверки целостности моделей, применяемые при параллельной работе над проектом нескольких рабочих групп.

Глава 11 «Проектирование системной архитектуры» знакомит с понятиями и нотацией для описания и документирования системной архитектуры. Данная глава не является полным руководством по разработке архитектуры, она лишь описывает нотацию и процессы, необходимые для ее определения, представления и документирования. Эти сведения специально размещены именно здесь, потому что архитектурные решения используются в последующих главах.

В главе 12 «Выпуск версий» рассматривается организация процесса выпуска версий. Здесь также приводится нотация языка UML для описания решений, принимаемых на этапе проектирования при создании версии. В этой главе не обсуждаются удачные или неудачные решения в области проектирования, а говорится о процессе и нотации, используемых для построения версий.

Приложение А «Генерация кода и возвратное проектирование для С++» описывает поэтапную последовательность действий для генерации кода и возвратного проектирования с использованием программы Rational Rose 2000 и языка С++.

Приложение В «Генерация кода и возвратное проектирование для Visual C++ и Visual Basic» содержит информацию о поэтапной последовательности действий для генерации кода и возвратного проектирования с использованием пакета Rational Rose 2000 и языков Visual C++ и Visual Basic.

Приложение С «Примеры программ на Visual Basic» посвящено способам создания и использования динамических библиотек Visual Basic.

В глоссарии перечислены основные термины, используемые в книге.

 

Благодарности

Я хотела бы поблагодарить многих людей за помощь в создании, оформлении и распространении моей книги.

Особую признательность я выражаю Стиву Бейли (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.

Существует несколько общепринятых вариантов именования объектов, когда в их названия необходимо включить несколько слов. Поскольку многие языки программирования не поддерживают пробелы в именах объектов, то назвать объект несколькими словами не получится. Один из способов — слова внутри имени разделять символом подчеркивания (например, number_of_students). Другой — слова внутри имени писать слитно, но каждое слово начинать с заглавной буквы (например, numberOfStudents). В оригинале используется второй вариант, известный как «Венгерская нотация». Но поскольку русский перевод имен объектов модели все равно не преобразуется напрямую в имена объектов языка программирования, то в данной книге эти названия, выделенные моноширинным шрифтом, приводятся с пробелами, например: количество студентов.