UML и Rational Rose

Уэнди Боггс Майкл Боггс

1. Введение в UML
Введение в объектно-ориентированную парадигму
Инкапсуляция
Наследование
Полиморфизм
Визуальное моделирование
Метод Буча, ОМТ и UML
Диаграммы UML
Кооперативные диаграммы
Диаграммы Вариантов Использования
Диаграммы Последовательности
Кооперативные диаграммы
Диаграммы Классов
Диаграммы Состояний
Диаграммы Компонентов
Диаграммы Размещения
Визуальное моделирование и процесс разработки программного
обеспечения
Начальная фаза
Уточнение
Конструирование
Ввод в действие

2. Введение в Rose
Что такое Rose?
Установка Rose 98
Установка Rose 98i
Знакомство с Rose
Элементы экрана
Браузер
Окно документации
Панели инструментов
Окно диаграммы
Журнал
Четыре представления модели Rose
Представление Вариантов Использования
Логическое представление
Представление Компонентов
Представление Размещения
Работа в среде Rose
Создание моделей
Сохранение моделей
Экспорт и импорт моделей
Публикация модели на Web-странице (98i)
Работа с управляемыми элементами
Работа с меню
Установка глобальных параметров
Работа со шрифтами
Работа с цветом

3. Варианты использования и действующие лица
Представление Вариантов Использования
Диаграммы Вариантов Использования
Создание диаграмм Вариантов Использования
Удаление диаграмм Вариантов Использования
Связывание файлов и ссылок с диаграммой Вариантов Использование
Панель инструментов диаграмм Вариантов Использования
Работа с вариантами использования
Документирование потока событий
Описание
Предусловия
Основной и альтернативный потоки событий
Постусловия
Добавление вариантов использования
Удаление вариантов использования
Спецификации вариантов использования
Присвоение имен вариантам использования
Просмотр участников варианта использования
Назначение стереотипа для варианта использования
Назначение приоритета варианту использования
Создание абстрактных вариантов использования
Просмотр диаграмм, содержащих варианты использования
Просмотр связей варианта использования
Связывание файлов и ссылок с вариантом использования
Работа с действующими лицами
Добавление действующих лиц
Удаление действующих лиц
Спецификации действующего лица
Именование действующих лиц
Назначение стереотипа для действующего лица
Задание множественности действующего лица
Создание абстрактного действующего лица
Просмотр связей действующего лица
Связывание файлов и ссылок с действующим лицом
Просмотр экземпляров действующего лица
Работа со связями
Связи коммуникации
Связь использования
Связь расширения
Связь обобщения действующего лица
Работа с примечаниями
Добавление примечаний на диаграмму
Удаление примечаний
Работа с пакетами
Создание пакетов
Удаление пакетов
Упражнение

4. Взаимодействие объектов
Диаграммы Взаимодействия
Что такое объект?
Что такое класс?
Поиск объектов
Использование диаграмм Взаимодействия
Диаграммы Последовательности
Создание диаграммы Последовательности
Удаление диаграммы Последовательности
Связывание файлов и ссылок с диаграммой Последовательности
Панель инструментов диаграммы Последовательности
Кооперативные диаграммы
Создание Кооперативной диаграммы
Удаление Кооперативной диаграммы
Связывание файлов и ссылок с Кооперативной диаграммой
Панель инструментов Кооперативной диаграммы
Работа с действующими лицами на диаграмме Взаимодействия
Работа с объектами
Добавление объектов к диаграмме Взаимодействия
Удаление объектов с диаграмм Взаимодействия
Спецификации объекта
Именование объекта
Соотнесение объекта с классом
Определение устойчивости объекта
Работа с сообщениями
Добавление сообщений на диаграммы Взаимодействия
Добавление сообщений на диаграмму Последовательности
Удаление сообщений с диаграммы Последовательности
Изменение порядка сообщений на диаграмме Последовательности
Нумерация сообщений на диаграмме Последовательности
Просмотр активизации на диаграммах Последовательности
Добавление сообщений на Кооперативную диаграмму
Удаление сообщений с Кооперативной диаграммы
Нумерация сообщений на Кооперативной диаграмме
Добавление потоков данных к Кооперативной диаграмме
Спецификации сообщений
Именование сообщений
Соотнесение сообщения с операцией
Установка синхронизации сообщений
Установка частоты сообщения
Работа с примечаниями
Добавление примечаний на диаграммы Взаимодействия
Работа со скриптами
Переключение между диаграммами Последовательности
и Кооперативными диаграммами
Двухэтапный подход к разработке диаграмм Взаимодействия
Упражнение

5. Классы и пакеты
Логическое представление модели Rose
Диаграммы Классов
Что такое класс?
Выявление классов
Создание диаграмм Классов
Удаление диаграмм Классов
Организация элементов на диаграмме классов
Связывание файлов и ссылок с диаграммой Классов
Панель инструментов диаграммы Классов
Работа с классами
Добавление классов
Удаление классов
Спецификации класса
Добавление параметризованного класса
Задание аргументов параметризованного класса
Создание класса-наполнителя
Добавление утилиты класса
Добавление утилиты параметризованного класса
Создание утилиты класса-наполнителя
Добавление метакласса
Именование классов
Назначение стереотипа для класса
Пограничные классы
Классы-сущности
Управляющие классы
Задание видимости класса
Задание множественности класса
Задание требований к хранению класса
Задание устойчивости класса
Задание параллелизма класса
Создание абстрактного класса
Просмотр атрибутов класса
Просмотр операций класса
Просмотр связей класса
Использование вложенных классов
Связывание файлов и ссылок с классом
Просмотр диаграмм Взаимодействия, содержащих классы
Работа с примечаниями
Добавление примечаний
Удаление примечаний
Работа с пакетами
Добавление пакетов
Удаление пакетов
Упражнение

6. Атрибуты и операции
Работа с атрибутами
Выявление атрибутов
Добавление атрибутов
Удаление атрибутов
Спецификации атрибута
Задание типа данных атрибута
Назначение стереотипа для атрибута
Задание начальных значений атрибута
Задание видимости атрибута
Задание метода локализации атрибута
Определение статичного атрибута
Определение производного атрибута
Работа с операциями
Выявление операций
Операции реализации
Операции доступа
Вспомогательные операции
Добавление операций
Удаление операций
Спецификации операции
Задание возвращаемого класса операции
Назначение стереотипа для операции
Задание видимости операций
Добавление аргументов к операции
Определение протокола операции
Определение уточнений операции
Задание исключительных ситуаций операции
Определение размера операции
Задание времени выполнения операции
Задание параллелизма операции
Задание предусловий операции
Определение постусловий операции
Определение семантики операции
Связывание файлов и ссылок с операцией
Изображение атрибутов и операций на диаграммах Классов
Изображение атрибутов
Изображение операций
Изображение видимости
Изображение стереотипов
Соотнесение операций с сообщениями
Соотнесение операций с сообщениями на диаграммах Взаимодействия
Упражнение

7. Связи
Связи
Типы связей
Выявление связей
Ассоциации
Создание ассоциаций
Удаление ассоциаций
Зависимости
Создание зависимостей
Удаление зависимостей
Зависимости между пакетами
Создание зависимостей между пакетами
Удаление зависимостей между пакетами
Агрегации
Создание агрегаций
Удаление агрегаций
Обобщения
Создание обобщений
Удаление обобщений
Работа со связями
Задание множественности
Использование имен связей
Использование стереотипов
Использование ролей
Задание управления экспортом
Использование статичных связей
Использование дружественных связей
Задание метода включения
Работа с квалификаторами
Работа с элементами связи
Использование ограничений
Упражнение

8. Поведение объекта
Диаграммы Состояний
Создание диаграмм Состояний
Добавление состояний
Добавление деталей к описанию состояния
Деятельность
Входное действие
Выходное действие
Добавление переходов
Детальное описание перехода
Событие
Ограждающее условие
Действие
Задание специальных состояний
Начальное состояние
Конечное состояние
Использование вложенных состояний
Упражнение

9. Представление Компонентов
Что такое компонент?
Типы компонентов
Диаграммы Компонентов
Создание диаграмм Компонентов
Добавление компонентов
Определение деталей компонента
Связывание файлов и ссылок с компонентом
Добавление зависимостей между компонентами
Упражнение

10. Представление Размещения
Диаграммы Размещения
Открытие диаграммы Размещения
Создание процессоров
Добавление деталей к описанию процессора
Добавление устройств
Добавление деталей к описанию устройства
Добавление связей
Добавление деталей к описанию связей
Добавление процессов
Упражнение

11. Знакомство с процессом генерации программного кода
с помощью Rational Rose
Подготовка к генерации программного кода
Этап первый: проверка модели
Нарушения правил доступа
Проверка, специфичная для языка
Этап второй: создание компонентов
Этап третий: отображение классов на компоненты
Этап четвертый: установка свойств генерации программного кода
Клонирование наборов свойств
Удаление наборов свойств
Этап пятый: выбор класса, компонента или пакета
Этап шестой: генерация программного кода
Результаты генерации

12. Генерация программного кода C++ и Visual C++
Свойства генерации программного кода C++
Свойства проекта
Свойства классов
Свойства атрибутов
Свойства операций
Свойства спецификаций модулей (файлов заголовков)
Свойства тел модулей (файлов реализации)
Свойства ассоциаций
Свойства ролей
Свойства агрегаций (связей Has)
Свойства зависимостей
Свойства подсистем
Свойства категорий классов
Свойства обобщений
Генерируемый программный код
Классы
Генерируемый файл заголовка
Генерируемый файл реализации
Атрибуты
Операции
Двунаправленные ассоциации
Однонаправленные ассоциации
Ассоциации с множественностью "один ко многим"
Ассоциации с множественностью "многие ко многим"
Ассоциации с ограниченной множественностью
Рефлексивные ассоциации
Агрегации по значению (связи композиции)
Агрегации по ссылке
Связи зависимости
Связи обобщения
Параметризованные классы
Пример генерируемого программного кода C++
Упражнение

13. Генерация программного кода Java
Свойства генерации программного кода Java
Свойства проекта
Свойства классов
Свойства атрибутов
Свойства операций
Свойства модулей
Свойства ролей
Генерируемый программный код
Классы
Раздел сведений об авторских правах
Атрибуты
Операции
Двунаправленные ассоциации
Однонаправленные ассоциации
Ассоциации с множественностью "один ко многим".
Ассоциации с множественностью "многие ко многим"
Рефлексивные ассоциации
Агрегации
Связи зависимости
Связи обобщения
Пример генерируемого программного кода Java
Упражнение

14. Генерация программного кода Visual Basic
Свойства генерации программного кода Visual Basic
Свойства классов
Свойства атрибутов
Свойства операций
Свойства спецификаций модулей
Свойства ролей
Свойства обобщений
Использование Мастера генерации кода
(Code Generation Wizard) в Rose 98
Использование Code Update Tool в Rose 98i
Генерируемый программный код
Классы
Атрибуты
Операции
Двунаправленные ассоциации
Однонаправленные ассоциации
Ассоциации с множественностью "один ко многим"
Ассоциации с множественностью "многие ко многим"
Рефлексивные ассоциации
Агрегации по значению (связи композиции)
Агрегации по ссылке
Связи зависимости
Связи обобщения
Параметризованные классы
Пример генерируемого программного кода Visual Basic
Упражнение

15. Генерация программного кода PowerBuilder
Свойства генерации программного кода PowerBuilder
Свойства атрибутов
Свойства спецификаций модулей
Свойства тел модулей
Генерируемый программный код
Классы
Создание невизуальных объектов
Создание окон
Создание объектов приложений
Атрибуты
Операции
Двунаправленные ассоциации
Однонаправленные ассоциации
Ассоциации с множественностью "один ко многим"
Ассоциации с множественностью "многие ко многим"
Рефлексивные ассоциации
Агрегации
Связи зависимости
Связи обобщения
Пример генерируемого программного кода PowerBuilder
Упражнение

16. Генерация программного кода CORBA/IDL
Свойства генерации программного кода CORBA/IDL
Свойства проекта
Свойства классов
Свойства атрибутов
Свойства операций
Свойства спецификаций модулей
Свойства тел модулей
Свойства ассоциаций (ролей)
Свойства агрегаций (Has-связей) (98)
Свойства зависимостей
Свойства подсистем (98)
Генерируемый программный код
Классы
Программный код, генерируемый для различных типов CORBA/IDL
Атрибуты
Атрибуты, генерируемые для интерфейса
Атрибуты, генерируемые для TypeDef
Атрибуты, генерируемые для перечисления
Атрибуты, генерируемые для константы
Атрибуты, генерируемые для исключения
Атрибуты, генерируемые для структуры
Атрибуты, генерируемые для объединения
Операции
Операции, генерируемые для интерфейса
Операции, генерируемые для других типов CORBA
Двунаправленные ассоциации
Двунаправленные ассоциации, генерируемые для TypeDef
Двунаправленные ассоциации, генерируемые для перечисления
Двунаправленные ассоциации, генерируемые для константы
Двунаправленные ассоциации, генерируемые для исключения
Двунаправленные ассоциации, генерируемые для структуры
Двунаправленные ассоциации, генерируемые для объединения
Однонаправленные ассоциации
Ассоциации с множественностью "один ко многим"
Ассоциации "один ко многим", генерируемые для TypeDef
Ассоциации "один ко многим", генерируемые для перечисления
Ассоциации "один ко многим", генерируемые для константы
Ассоциации "один ко многим", генерируемые для исключения
Ассоциации "один ко многим", генерируемые для структуры
Ассоциации "один ко многим", генерируемые для объединения
Ассоциации с множественностью "многие ко многим"
Ассоциации с множественностью "многие ко многим", генерируемые
для других типов CORBA
Ассоциации с ограниченной множественностью
Ограниченные ассоциации, генерируемые для исключения
Ограниченные ассоциации, генерируемые для структуры
Ограниченные ассоциации, генерируемые для объединения
Ограниченные ассоциации, генерируемые для других типов CORBA
Рефлексивные ассоциации
Рефлексивные ассоциации, генерируемые для исключения
Рефлексивные ассоциации, генерируемые для структуры
Рефлексивные ассоциации, генерируемые для объединения
Рефлексивные ассоциации, генерируемые для других типов CORBA
Агрегации
Связи зависимости
Связи обобщения
Обобщения, генерируемые для TypeDef
Обобщения, генерируемые для перечисления
Обобщения, генерируемые для константы
Обобщения, генерируемые для исключения
Обобщения, генерируемые для структуры
Обобщения, генерируемые для объединения
Пример генерируемого программного кода CORBA/IDL
Упражнение

17. Генерация кода DDL
Свойства генерации кода DDL
Свойства проекта
Свойства атрибутов
Генерируемый код
Классы и атрибуты
Изменение имени таблицы
Установка первичного ключа
Изменение типа данных или длины поля
Контроль за использованием неопределенных (NULL) значений в поле
Двунаправленные ассоциации
Изменение имен внешних ключей
Создание индексов
Множественность ассоциаций
Однонаправленные ассоциации
Множественность ассоциаций
Рефлексивные ассоциации
Агрегации
Связи зависимости
Связь обобщения
Пример генерируемого кода DDL
Упражнение

18. Генерация схем Оrасlе8
Свойства генерации кода Оrасlе8
Свойства проекта
Свойства классов
Свойства атрибутов
Свойства операций
Свойства спецификаций модулей
Свойства ролей
Создание объектов Oracle8
Объектные типы
Реляционная таблица
Реляционное представление
Объектное представление
Изменяемые массивы (VARRAYs)
Вложенные таблицы
Объектная таблица
Генерируемый код

19. Знакомство с процессом обратного проектирования
с помощью Rational Rose
Элементы модели, генерируемые во время обратного проектирования
Итеративная разработка

20. Обратное проектирование программного кода С++
Этапы обратного проектирования
программного кода C++
Этап первый: запуск приложения C++ Analyzer
Этап второй: создание нового проекта
Этап третий: установка заголовка проекта
Этап четвертый: установка списка каталогов
Этап пятый: установка списка расширений
Этап шестой: выбор базового проекта
Этап седьмой: выбор файлов для обратного проектирования
Этап восьмой: анализ файлов
Этап девятый: установка параметров экспорта
Этап десятый: экспорт в Rose
Этапы обратного проектирования программного кода Visual C++
Этап первый: запуск мастера обратного проектирования
Этап второй: выбор проекта (проектов) для обратного проектирования
Этап третий: анализ и завершение
Элементы модели, генерируемые из программного кода C++
Классы
Элементы данных
Функции-члены
Дружественные объявления (friend declarations) классов
Шаблоны классов
Связи наследования

21. Обратное проектирование программного кода Java
Этапы обратного проектирования
Элементы модели, генерируемые из программного кода Java
Классы
Атрибуты
Методы
Интерфейсы
Связь наследования

22. Обратное проектирование программного кода Visual Basic
Этапы обратного проектирования
Элементы модели, генерируемые из программного кода Visual Basic
Формы и управляющие элементы
Модули классов
Модули
Операторы Implements

23. Обратное проектирование программного кода PowerBuilder
Этапы обратного проектирования
Элементы модели, генерируемые из программного кода PowerBuilder
Объект приложения
Невизуальные пользовательские объекты
Окна
Атрибуты
Операции
Окна данных
Структуры
Меню
Связи наследования
Связи ассоциации

24. Обратное проектирование схем Оrасlе8
Этапы обратного проектирования схемы Оrасlе8
Элементы модели, генерируемые из схемы Оrасlе8