Предисловие 
 
 Структура книги 
 Рекомендации по изучению языка UML 
 Благодарности 
 Часть I. Основы UML
 
 Глава 1. Введение
 
   1.1. Методология процедурно-ориентированного программирования 
   1.2. Методология объектно-ориентированного программирования 
   1.3. Методология объектно-ориентированного анализа и проектирования 
   1.4. Методология системного анализа и системного моделирования 
 
 Глава 2. Исторический обзор развития методологии объектно-
                  ориентированного анализа и проектирования сложных систем
   2.1. Предыстория. Математические основы 
    Теория множеств   
    Теория графов 
    Семантические сети    
   2.2. Диаграммы структурного системного анализа 
    Диаграммы "cущность-связь"   
    Диаграммы функционального моделирования 
    Диаграммы потоков данных 
   2.3. Основные этапы развития UML 
 
 Глава 3. Основные компоненты языка UML
 
   3.1. Назначение языка UML 
   3.2. Общая структура языка UML 
   3.3. Пакеты в языке UML 
   3.4. Основные пакеты метамодели языка UML 
    Пакет Основные элементы  
    Пакет Элементы ядра 
    Пакет Вспомогательные элементы 
    Пакет Механизмы расширения 
    Пакет Типы данных 
    Пакет Элементы поведения 
    Пакет Общее поведение 
    Пакет Кооперации 
    Пакет Варианты использования 
    Пакет Автоматы 
    Пакет Общие механизмы     
    Пакет Управление моделями 
   3.5. Специфика описания метамодели языка UML 
   3.6. Особенности изображения диаграмм языка 
 
 Часть II. Диаграммы концептуального, логического и физического моделирования
 
 Глава 4. Диаграмма вариантов использования (use case diagram)
 
   4.1. Вариант использования  
   4.2. Актеры 
   4.3. Интерфейсы        
   4.4. Примечания        
   4.5. Отношения на диаграмме вариантов использования      
    Отношение ассоциации          
    Отношение расширения       
    Отношение обобщения  
    Отношение включения    
   4.6. Пример построения диаграммы вариантов использования   
   4.7. Рекомендации по разработке диаграмм вариантов использования    
 
 Глава 5. Диаграмма классов (class diagram)
 
   5.1. Класс 
    Имя класса  
    Атрибуты класса      
    Операция      
   5.2. Отношения между классами 
    Отношение зависимости  
    Отношение ассоциации   
    Отношение агрегации 
    Отношение композиции 
    Отношение обобщения    
   5.3. Интерфейсы  
   5.4. Объекты    
   5.5. Шаблоны или параметризованные классы  
   5.6. Рекомендации по построению диаграмм классов 
 
 Глава 6. Диаграмма состояний (statechart diagram)
 
   6.1. Автоматы 
   6.2. Состояние        
    Имя состояния       
    Список внутренних действий     
    Начальное состояние   
    Конечное состояние     
   6.3. Переход 
    Событие    
    Сторожевое условие      
    Выражение действия     
   6.4. Составное состояние и подсостояние  
    Последовательные подсостояния      
    Параллельные подсостояния        
   6.5. Историческое состояние       
   6.6. Сложные переходы 
    Переходы между параллельными состояниями     
    Переходы между составными состояниями   
    Синхронизирующие состояния    
   6.7. Заключительные рекомендации по построению диаграмм состояний 
 
 Глава 7. Диаграмма деятельности (activity diagram) 
 
   7.1. Состояние действия 
   7.2. Переходы     
   7.3. Дорожки    
   7.4. Объекты    
   7.5. Рекомендации по построению диаграмм деятельности    
 
 Глава 8. Диаграмма последовательности (sequence diagram) 
 
   8.1. Объекты    
    Линия жизни объекта          
    Фокус управления           
   8.2. Сообщения      
    Ветвление потока управления         
    Стереотипы сообщений           
    Временные ограничения на диаграммах последовательности     
    Комментарии или примечания           
   8.3. Пример построения диаграммы последовательности 
   8.4. Заключительные рекомендации по построению диаграмм последовательности 
 
 Глава 9. Диаграмма кооперации (collaboration diagram)
 
   9.1. Кооперация    
    Диаграмма кооперации уровня спецификации        
   9.2. Объекты    
    Мультиобъект         
    Активный объект         
    Составной объект        
   9.3. Связи 
    Стереотипы связей         
   9.4. Сообщения  
    Формат записи сообщений          
   9.5. Пример построения диаграммы кооперации     
   9.6. Заключительные рекомендации по построению диаграмм кооперации      
 
 Глава 10. Диаграмма компонентов (component diagram)
 
   10.1. Компоненты        
    Имя компонента          
    Виды компонентов 
   10.2. Интерфейсы      
   10.3. Зависимости      
   10.4. Рекомендации по построению диаграммы компонентов 
 
 Глава 11. Диаграмма развертывания (deployment diagram)
 
   11.1. Узел 
   11.2. Соединения       
   11.3. Рекомендации по построению диаграммы развертывания    
 
 Часть III. Средства реализации CASE-технологий
 
 Глава 12. Особенности реализации языка UML в CASE-инструментарии Rational Rose 98/2000
 
   12.1. Общая характеристика CASE-средства Rational Rose 98/2000 
   12.2. Особенности рабочего интерфейса Rational Rose   
    Главное меню программы        
    Стандартная панель инструментов          
    Окно браузера          
    Специальная панель инструментов          
    Окно диаграммы         
    Окно документации        
    Окно журнала       
   12.3. Начало работы над проектом в среде Rational Rose 
   12.4. Разработка диаграммы вариантов использования в среде Rational Rose   
   12.5. Разработка диаграммы классов в среде Rational Rose 
   12.6. Разработка диаграммы состояний в среде Rational Rose 
   12.7. Разработка диаграммы последовательности в среде Rational Rose 
   12.8. Разработка диаграммы кооперации в среде Rational Rose 
   12.9. Разработка диаграммы компонентов в среде Rational Rose  
   12.10. Разработка диаграммы развертывания в среде Rational Rose 
 Заключение 
 Приложение. Язык объектных ограничений 
    Выражения языка OCL       
    Основные типы значений и операций в языке OCL        
    Операции над отдельными типами значений     
    Операции с действительными числами 
    Операции с целыми числами 
    Операции со строками 
    Операции с Булевыми выражениями 
    Операция @pre для указания предшествующих элементов 
   Допустимые выражения в языке OCL       
    Неопределенные значения выражений         
    Совокупности допустимых значений в языке OCL        
    Операции над совокупностями значений  
    Операция выбора select 
    Операция исключения reject 
    Операция формирования совокупности collect 
    Операция "для всех" forAll 
    Операция "существует" exists 
    Другие операции над совокупностью значений 
    Некоторые операции с множествами, последовательностями и комплектами   
    Операции преобразования типов 
    Примеры записи выражений языка OCL      
    Определение значения переменной 
    Определение возраста сотрудника 
    Определение кратности значений 
    Определение совокупности инвариантов 
 Глоссарий 
 Список литературы