- •Содержание
- •Введение
- •2 Теоретическая часть
- •2.1 Особенности и назначение языка uml
- •2.2 Виды диаграмм
- •2.3 Диаграмма активностей
- •3 Практическая часть
- •3.1 Изучение особенностей диаграмм
- •3.2 Примеры использования диаграмм
- •3.3 Советы по построению диаграмм активностей
- •3.4 Выразительные средства диаграмм активностей
- •Заключение
- •Список литературы
- •Введение
- •1 Основная часть
- •1.1 Физические модели таблиц базы данных
- •1.2 Физические модели хранения данных
- •1.3 Файловые структуры организации базы данных
- •1.4 Индексные файлы
- •1.4.1 Файлы с плотным индексом, или индексно-прямые файлы
- •1.4.2 Файлы с неплотным индексом, или индексно-последовательные файлы
- •1.4.3 Организация индексов в виде в-дерева — многоуровневой иерархической структуры
- •2 Специальная часть
- •2.1 Назначение и функции программной системы
- •2.2 Системные требования
- •2.3 Связывание таблиц
- •2.4 Запросы
- •2.5 Формы
- •2.6 Отчеты
- •Заключение
- •Список использованной литературы
3 Практическая часть
3.1 Изучение особенностей диаграмм
Рассмотрим примеры диаграмм активностей
Первая диаграмма (Приложение1) довольно точно описывает ежеутреннюю последовательность действий человека до момента ухода на работу. Все очень просто и понятно. Действия показаны скругленными прямоугольниками, как в блок-схеме, - узнаем даже ромбик символа принятия решения с обозначениями условий возле переходов. Да, отличия от блок-схемы не так уж сильны. Более того, эти отличия выглядят как логичное расширение нотации блок-схем. Обратим внимание на то, что начало и конец уже не изображаются одинаковым безликим кружком. Начало теперь закрашено, а конец изображен в виде символа, напоминающего кошачий глаз (рис. 5) (кстати, это образное название - "кошачий глаз" - является практически официальным в жаргоне архитекторов и аналитиков).
Рис. 5
Без пояснений понятен также смысл символа, предшествующего принятию душа и пению и следующего за ними - он означает распараллеливание, а затем опять слияние воедино ( синхронизацию ) потоков управления, т. е. операции "пение" и "душ" выполняются одновременно. Нотация проста: несколько потоков управления сливаются в один или один поток разделяется на несколько. Третьего не дано (рис. 6).
Рис. 6
Конечно, это не единственные отличия диаграммы активностей от блок-схемы. На диаграмме деятельностей можно не только показать параллельно выполняемые действия, но и указать состояния объектов (так же, как и на представлениях конечных автоматов, о которых нам так много говорили в университетах), также есть возможность показывать распределение ролей и т. д. Вот еще пример, подтверждающий, что диаграмма активностей - это нечто большее, чем блок-схема (Приложение 2).
Смысл диаграммы вполне понятен и без дополнительных объяснений. На ней показана работа с веб-приложением, которое решает некую задачу в удаленной базе данных. Привлекает внимание странное расположение активностей на этой диаграмме: они как бы разбросаны по трем беговым дорожкам, каждая из которых соответствует поведению одного из трех объектов - клиента, веб-сервера и сервера баз данных. Благодаря этому легко определить, каким из объектов выполняется каждая из активностей, и неожиданно приходит понимание того, что "странность" этой диаграммы, оказывается, очень упрощает ее восприятие.
Аналогия с дорожками действительно очень удачна. Именно таково официальное название элемента нотации UML, позволяющего указать распределение ролей на диаграмме активностей. Только дорожки это не беговые, а плавательные - они так и называются: swimlanes. Более формально, дорожка - часть области диаграммы деятельности, на которой отображаются только те деятельности, за которые отвечает конкретный объект.
Предназначены они для разбиения диаграммы в соответствии с распределением ответственности за действия. Имя дорожки может означать роль или объект, которому она соответствует. При использовании дорожек нотация слегка изменяется. Вот как, к примеру, выглядит диаграмма из предыдущего примера, перерисованная с использованием дорожек (Приложение 3).
Кстати, дорожки могут быть не только вертикальными, но и горизонтальными. Изображаются горизонтальные дорожки аналогично - просто повернуть "обычные" дорожки на 90 градусов против часовой стрелки.
Есть еще один нюанс нотации диаграмм активностей: это так называемая траектория объекта, или поток объекта ( object flow ). Суть его состоит в том, что на диаграмме деятельности можно изобразить и объекты, относящиеся к деятельности. С помощью символа зависимости эти объекты можно соотнести с той деятельностью или переходом, где они создаются, изменяются или уничтожаются. Представим такую ситуацию из повседневной жизни: вы приходите в какой-нибудь фастфуд и заказываете гамбургер с колой. Во время приготовления завтрака повар создает новый объект - гамбургер. Пока вы нетерпеливо выпиваете колу, официант перемещает этот объект (подает ваш заказ). Естественно, во время завтрака вы уничтожаете этот объект. Вот как это выглядит на диаграмме (Приложение 4).
Деятельность - это протяженное по времени составное действие, составленное из более простых действий. Вот эти-то самые простые (атомарные) действия, частенько изображают внутри деятельности в виде маленькой диаграммы активностей. Это слегка напоминает матрешку - одна (а часто и не одна) диаграмма внутри другой. Пример из Zicom Mentor (рис. 7).
Рис. 7
Диаграмма описывает высадку пассажиров самолета, достигших пункта назначения, и посадку новых пассажиров. Из нее, например, можно почерпнуть, что конечных состояний может быть больше одного. Кстати, кроме начального и конечного состояний есть еще конечное состояние потока (Flow final mode). От конечного состояния оно отличается вот чем: конечное состояние потока означает завершение одного потока управления, а конечное состояние говорит о завершении всех потоков управления внутри деятельности. Обозначается конечное состояние потока простым символом, напоминающим лампочку накаливания в схемах электрических цепей (рис. 8):
Рис.
8
