ОГЛАВЛЕНИЕ
Введение
Лабораторная работа 1. Диаграммы активности
Лабораторная работа 2. Построение диаграммы вариантов использования
Лабораторная работа 3. Диаграммы взаимодействия
Лабораторная работа 4. Диаграммы состояния
Лабораторная работа 5. Диаграммы классов
Введение
В настоящее время Case-технологии получили широкое распространение, и лидером среди Case-средств является RationalRose. Этот пакет позволяет создавать сложные программные системы от замысла до создания исходного кода. Можно сказать, что RationalRose — это программный пакет для визуального объектно-ориентированного моделирования систем на основе классов и их взаимодействия, или другими словами, это визуальный редактор, позволяющий создавать программные системы любой сложности на основе графических диаграмм языка UML.
Язык UML предназначен для описания моделей. Этот язык является открытым и обладает средствами расширения базового ядра. На UML можно содержательно описывать классы, объекты и компоненты в различных предметных областях.
В данном пособии рассмотрены основные приемы моделирования бизнес-процессов с помощью RationalRose. Преимуществами данного CASE-средства заключается в том, что в сочетании со средствами документирования (RationalSoDA) он может давать полное представление о проекте.
Полностью интегрируясь с MicrosoftVisualStudio, этот пакет дает возможность получать исходный код взаимодействующих классов и строить визуальные модели по уже написанному коду.
Возможность интеграции со средствами управления требованиями (RequisitePro), со средствами тестирования (SQASuite, PerformanceStudio), со средствами конфигурационного управления (ClearCase, PVCS) поднимает процесс ведения программного проекта на совершенно новый уровень.
Открытая архитектура RationalRose позволяет включать в него поддержку языков программирования, которые не предусмотрены стандартной поставкой.
Первым шагом при создании программных систем является выбор модели жизненного цикла программного обеспечения. В состав жизненного цикла ПО обычно включаются следующие стадии.
1. Формулировка требований.
Этап 1. Планирование или подготовительная работа.
Этап 2. Анализ предметной области.
2. Проектирование.
3. Реализация.
4. Тестирование.
5. Ввод в действие.
6. Эксплуатация и сопровождение.
7. Снятие с эксплуатации.
Построение модели бизнес-процессов предметной области, для которой разрабатывается программная система, начинается на первом этапе «Планирование» стадии «Формулировка требований».
Этап планирования (или подготовительная работа) обычно включает подготовку многочисленных электронных копий документов, обработку результатов интервьюирования, заседания группы разработчиков требований и другие виды деятельности. Данный этап включает в себя создание диаграммы активности (лабораторная работа 1) и диаграмм вариантов использования (лабораторная работа 2).
Этап анализа предметной области включает следующие шаги:
Построение концептуальной модели.
Дополнение словаря терминов.
Создание диаграммы последовательности.
Данный этап описан в лабораторной работе 3 и лабораторной работе 4.
Стадия «Проектирование» включает следующие шаги:
1. Описание реальных вариантов использования.
2. Уточнение архитектуры системы.
3. Построение диаграмм кооперации.
4. Построение диаграмм классов.
Реальный вариант использования(real use case) описывает конкретное проектное решение по реализации идеального варианта использования в терминах выбранной технологии. Реальные варианты использования оказываются очень полезными в том случае, если заказчик требует подробного описания интерфейса до начала его реализации.
Уточнение архитектуры системы. Типичная архитектура программного обеспечения включает три уровня: уровень представлений, уровень логики приложений, уровень данных. Уровень представлений включает объекты графического интерфейса (окна, отчеты и т.д.) и является относительно независимым от выполнения основных задач программы. Объекты уровня представления лишь направляют запросы на уровень логики программы, который в свою очередь взаимодействует с уровнем хранения данных.
Программное обеспечение с трехуровневой логической архитектурой может разворачиваться в следующих конфигурациях:
Компоненты уровней представления и логики размещаются на клиенте, компоненты уровня данных — на сервере.
Компоненты уровня представления размещаются на клиенте, уровня логики — на сервере приложений, компоненты уровня данных — на сервере баз данных.
Для изображения архитектуры программной системы средствами UML можно использовать пакеты (package). Пакет это группа элементов модели любого вида, например, классов, вариантов использования и т.д. Всю систему можно рассматривать как единый пакет. Внутри пакета могут изображаться вложенные пакеты.
Построение диаграмм взаимодействия (кооперации) Диаграммы взаимодействия (кооперации) отображают поток событий в конкретном варианте использования, а также иллюстрируют взаимодействие объектов в формате графа или сети. На диаграмме взаимодействия отображаются объекты и события, участвующие в потоке одного варианта использования (лабораторная работа 4).
Лабораторная работа 1. Диаграммы активности
Цель работы – описание бизнес-процессов предприятия с использованием диаграммы активности (activity diagram).
Теоретическая справка
Диаграмма активности позволяет проектировать алгоритмы поведения объектов любой сложности, в том числе может использоваться для составления блок-схем. Данная диаграмма позволяет моделировать последовательность бизнес-процессов или операций класса по принципу активности к активности или активности к состоянию. Этот тип диаграмм может использоваться для моделирования различных типов депйствий и заменять такое известное CASE-средство, как BPwin.
Диаграмма активности (activity diagram) состоит из следующих элементов
начальное состояние (start state);
конечное состояние (end state);
деятельность (activity);
состояние (state);
переход (state transition);
решение (decision);
горизонтальные синхронизаторы (horizontal synchronization);
вертикальные синхронизаторы (vertical synchronization);
разделительные линии (swimlane);
объект (object);
поток объектов (object flow).
Начальное состояние (start state) обозначается черным маленьким кружком, с которым может быть связано название, например, «начало». Конечное состояние (end state) обозначается большим черным кружком внутри круга, с которым может быть связано название, например, «конец».
Пример начального (start state) и конечного состояния (end state) представлен на рис. 1.1.
Рис. 1.1. Пример начального (start state)
и конечного состояния (end state)
Диаграмма активности (Activity diagram) может иметь только одно начальное состояние. Конечных же состояний может существовать множество.
Новые начальные состояния могут быть только на диаграммах, декомпозирующих отдельные виды деятельности.
Активность (activity) обозначается прямоугольником с закругленными сторонами. Пример элемента активность (activity) представлен на рис. 2.
Рис. 1.2. Пример элемента
«активность» (activity)
Элемент «активность» (activity) используется для описания определенной деятельности субъекта или объекта. С этим элементом должно быть связано наименование. Наименование должно отражать цель деятельности. Деятельность именуется глаголом в настоящем времени. На диаграммах активности (activity diagram) элементы с одним и тем же именем используются для обозначения одного и того же вида деятельности.
С элементом «активность» (activity) могут быть связаны определенные действия, которые происходят на входе этого элемента, на выходе, внутри него или при наступлении определенного события. Действия можно добавить к элементу «активность» (activity) при использовании спецификации.
Действие может быть описано в форме свободного текста.
Пример элемента «активность» (activity) с действиями на входе, выходе, внутри элемента и по наступлению события представлен на рис. 1.3.
Рис. 1.3. Пример элемента «деятельность» (activity) с действиями
по наступлению события, на входе, выходе и внутри элемента
Состояние (state) обозначается прямоугольником с закругленными углами. Пример элемента «состояния» (state) представлен на рис.1.4.
Рис. 1.4. Пример элемента
состояние (state)
Элемент «состояние» (state) используется для описания определенных состояний какого-либо субъекта или объекта, например состояния ожидания. С этим элементом должно быть связано имя. Имя должно отражать состояние субъекта или объекта. Состояние должно именоваться также как и деятельность, глаголом в настоящем времени, например, «ожидает приход товара со склада».
С элементом «состояние» (state) могут быть также связаны определенные действия, которые происходят на входе этого элемента, на выходе, внутри него или при наступлении определенного события. Действия можно добавить к элементу «состояние» (state) при использовании спецификации.
Переход (state transition) используется для описания связи между элементами диаграммы «активность» (activity), «состояние» (state). Переход (state transition) обозначается сплошной линией со стрелкой. Стрелка указывает на следующее действие или состояние. Пример элемента переход (statetransition) представлен на рис. 1.5.
Рис. 1.5. Пример элемента «переход»
(state transition)
Переход (state transition) может иметь имя, 'связанное с событием, его вызвавшим. Событием называется любое происшествие, которое может быть причиной изменения состояния субъекта или объекта, или перехода от одного вида деятельности к другому виду. События могут вызывать некоторые действия. Одному событию соответствует ровно одно действие.
Переход может происходить по условию. События, действия, условия можно добавить к переходу, используя для его описания спецификацию.
Для отображения действий, выполняемых по условию, используется элемент решение (decision). Элемент решение (decision) обозначается в виде ромба.
Разделительные линии (swimlane) используются для разделения диаграммы на части, например, с целью отражения на диаграммах, ответственных за выполнение определенных действий.
Синхронизаторы (synchronization) используются для отражения выполнения параллельной деятельности.
Объекты (objects) на диаграммах активности используются для изображения различных сущностей, связанных с определенным видом деятельности. Например, деятельности дилера («заключает депозитную сделку») соответствует объект - документ по сделке. Объект может находиться в определенном состоянии. Объект связывается с деятельностью с использованием потока объектов (object flow). Поток имеет направление.
Учебное задание
Постройте диаграммы активности для описания технологии покупки материалов на заводе радиоаппаратуры. Автоматизируемые виды деятельности пометьте оранжевым цветом. Завод включает подразделения: склад и бухгалтерию. Основные работы:
qвыписывает доверенность;
qвыписывает приемный акт в двух экземплярах;
qрегистрирует товар в картотеке;
qпередает экземпляр акта в бухгалтерию;
qполучает приемный акт.
При описании документооборота по приемке товара от продавца должны быть детально рассмотрены и описаны следующие документы:
qзаявление отдела снабжения о возможности получения товара в любой форме;
qдоверенность на товар;
qнакладная;
qприемный акт;
qкарточка товара.
Технология выполнения учебного задания
Часть 1. Формулировка требований
Для рассматриваемой в качестве примера системы определение требований выполняется лишь схематично — в реальной системе требования должны быть более полными.
Общая формулировка задачи
Цель проекта — создание системы автоматизации снабжения и приемки товаров завода радиоаппаратуры.
Потребители: завод радиоаппаратуры.
Цели
qПовышение уровня автоматизации снабжения завода материалами, необходимыми для производственной деятельности.
qБыстрый и точный анализ количества и качества хранимых материалов на складе.
qАвтоматическая инвентаризация товаров.
Функции системы
Следующий перечень функций системы автоматизации снабженческой деятельности является далеко не полным, поскольку наша задача — разобраться в деталях процесса анализам проектирования, а не в тонкостях процесса снабжения.
Функция |
Категория |
Вычисление общей стоимости покупки, включая налоги |
Очевидная |
Оформление счета на товар в организации, поставляющей данный товар |
Очевидная |
Оплата товара |
Очевидная |
Выписка доверенности на получение товара |
Очевидная |
Поездка на склад организации продавца |
Очевидная |
Получение товара на склад организации продавца |
Очевидная |
Доставка товара на склад |
Очевидная |
Приемка товара кладовщиком |
Очевидная |
Действия кладовщика в случае несоответствия товара по количеству и качеству |
Скрытая |
Выписка приемного акта |
Очевидная |
Регистрация товара в картотеке |
Скрытая |
Передача одного экз. приемного акта снабженцу |
Очевидная |
Передача второго экз. приемного акта в бухгалтерию |
Очевидная |
Часть 2. Описание бизнес-процессов с помощью диаграммы активности
1. Запуск RATIONAL ROSE (Rose) производится из меню Пуск Microsoft Windows (Программы, Rational Rose Enterprise Editions, Rational Rose Enterprise Edition). При запуске Rose на экран выводится окно шаблонов.
При запуске Rose на экран выводится окно шаблонов. Нажмите кнопку «Cancel» для отмены их ввода. На экране появляется окно с диаграммой классов.
2. Щелкните по пакету Use Case View в окне просмотра, выберите из появившегося меню пункт New, а затем из вновь появившегося меню пункт Activity Diagram. В окне просмотра появится поле NewDiagram. В поле с именем NewDiagram введите наименование диаграммы «Технология покупки товара». Далее щелкните правой клавишей мыши по наименованию диаграммы и выберите команду Open. На экране появится окно рисования диаграммы активности (activity diagram).
3. Щелкните по иконке с изображением разделительной линии (swimlane) на панели инструментов. Щелкните мышью в окне рисования диаграммы в месте, где должно находиться изображение разделительной линии (swimlane) Повторяйте эти действия до тех пор, пока четыре разделительные линии (swimlane) не будут размещены на поле диаграммы.
Поименуйте первую разделительную линию, как «документы», вторую как — «действия», третью как - «подразделения», четвертую как - «сотрудники».
Для этого щелкните правой клавишей мыши по заголовку разделительной линии (swimlane), например, «New Swimlane», и в появившемся меню выберите пункт Open Specification. В окне спецификации разделительной линии на вкладке General в поле Name внесите название линии, например, «документы».
4. Рисование элементов диаграммы деятельность, состояние, в том числе начальное и конечное состояние, решение, синхронизаторы, производиться следующим образом. Щелкните по иконке с изображением требуемого элемента диаграммы на панели инструментов. Щелкните мышью в окне рисования диаграммы в месте, где должно находиться изображение выбранного элемента.
5. Рисование перехода должно производиться следующим образом. Щелкните по иконке с изображением перехода на панели инструментов. Соедините требуемые элементы диаграммы переходом.
6. Именование элементов диаграммы должно производиться в окне спецификации в поле Name. Вызов окна спецификации производиться по двойному щелчку левой клавишей мыши по элементу диаграммы.
Краткое описание элемента диаграммы можно производить в окне спецификации элемента диаграммы на вкладке General в разделе Documentation.
7. Наименование документов, подразделений, сотрудников и прочий текст можно разместить на диаграмме активности с использованием иконки на панели инструментов с изображением заметки (Note), и текста (TextBox). Изображение заметки может крепиться к любому элементу диаграммы с использованием специальной линии Anchor Note to Decision Item.
8. На модели производственных процессов должны быть выделены виды активности, которые следует автоматизировать. Выделение автоматизируемых видов активности может производиться с использованием какого-либо цвета, отличного от цвета не автоматизируемых видов активности.
Пометка производится следующим образом. Щелкните правой кнопкой мыши по активности. В появившемся меню выберите пункт Format. Далее в появившемся меню выберите пункт Fill Color. Из палитры выберите требуемый цвет. Нажмите кнопку ОК.
9. Сохраните результаты своей работы в своей сетевой папке под именем Z00-1
Контрольные вопросы
1. Для чего используется модель бизнес процессов?
2. Какие компоненты диаграмм активности применяются при построении модели бизнес-процессов?
Самостоятельное задание 1.1
Постройте диаграмму активности страховой фирмы, которая включает два отдела: отдел страхования и бухгалтерию. Основные работы:
qклиент пишет заявление и заполняет карточку клиента;
qагент выписывает страховой полис в двух экземплярах и квитанцию на оплату страхового взноса;
qменеджер регистрирует клиента в базе данных;
qпередает экземпляр страхового полиса в бухгалтерию;
qклиент оплачивает взнос и получает страховой полис.
При описании документооборота по страхованию должны быть детально рассмотрены и описаны следующие документы:
qзаявление на страховку;
qстраховой полис;
qквитанция;
qкарточка клиента.
Рис. 1.6. Пример диаграммы активности для описания технологии покупки товара
Лабораторная работа 2. Построение диаграммы вариантов использования
Цель работы: построение функциональной модели предметной области (businessusecasemodel), подлежащей автоматизации, с использованием диаграммы вариантов использования (usecasediagram)
Теоретическая справка
Диаграмма вариантов использования позволяет создать список операций, которые выполняет система. Часто этот вид диаграммы называют диаграммой функций, потому что на основе набора таких диаграмм создается список требований к системе и определяется множество выполняемых системой функций.
Варианты использования высокого уровня описывают процессы очень сжато, обычно в: двух или трех предложениях. Такой тип описания удобно использовать на начальном этапе формулирования требований к системе для быстрого осознания степени сложности и функций системы. Варианты использования высокого уровня — это лишь краткое описание, имеющее слабое отношение к конкретным проектным решениям.
Идеальные варианты использования (essentialusecases) — это развернутые варианты использования, выражающие общую сущность процесса без детализации их реализации.
Варианты использования необходимо ранжировать по трем категориям: основные, второстепенные и дополнительные.
Основные варианты использования (primaryusecases) представляют самые общие процессы, например покупку товара.
Второстепенные варианты использования (secondaryusecases) представляют менее значительные или более редкие процессы, такие как запрос на ассортимент новых товаров.
Дополнительные варианты использования (optionalusecases) описывают процессы, которые могут быть не реализованы в системе.
Варианты использования начинают описывать, что должна будет делать система, но чтобы разработать систему необходимо определить конкретные детали в документе, называемом «поток событий» (flowofevents). Целью потока событий является документирование процесса обработки данных, реализуемого в рамках варианта использования. Этот документ подробно описывает, что будут делать пользователи системы и что — сама система. Поток событий содержит:
qкраткое описание;
qпредусловия;
qосновной поток событий;
qальтернативный поток событий;
qпостусловия.
Описание. Каждый вариант использования должен иметь связанное с ним короткое описание того, что он будет делать.
Предусловия варианта использования — это такие условия, которые должны быть выполнены, прежде чем вариант использования начнет свою работу. Например, таким условием может быть выполнение другого варианте использования или наличие у пользователя прав доступа, требуемых для запуска данного варианта использования.
В основном и альтернативном потоках событий отражаются конкретные детали вариантов использования. Поток событий поэтапно описывает, что должно происходить во время выполнения заложенной в варианты использования функциональности. Поток событий уделяет внимание тому, что будет делать система, причем описывает это с точки зрения пользователя. Основной и альтернативный потоки событий содержат:
qописание того, каким образом запускается вариант использования;
qразличные пути варианта использования;
qосновной поток варианта использования;
qотклонения от основного потока использования;
qпотоки ошибок;
qописание того, каким образом завершается вариант использования.
Постусловиями называются такие условия, которые должны быть выполнены после завершения варианта использования.
Построение диаграммы вариантов использования.
Построение вариантов использования предметной области заключается в декомпозиции (разбиении) автоматизируемой организации на подразделения, в которых определяются действующие лица производственного процесса и их функции.
Функциональная модель предметной области (businessusecasemodel) определяется как иерархия диаграмм.
Первый уровень иерархии должен включать одну или несколько организационных единиц (organizationunit) - например, предприятие, подлежащее автоматизации.
Последующие уровни иерархии могут включать также одну или несколько организационных единиц (organizationunit), например, это могут быть подразделения автоматизируемого предприятия. Или могут включать действующих лиц производственного процесса: субъектов (businessworker) и объектов (businessactor), их варианты использования (businessusecase), связи (relationships) между действующими лицами и их вариантами использования и между вариантами использования.
Для изображения организационных единиц (organizationunit) на диаграммах вариантов использования (usecasediagram) используется изображение следующего вида
Рис. 2.1. Изображение организационных единиц (organizationunit) на диаграммах вариантов использования (usecasediagram)
Под изображением организационной единицы указывается ее наименование.
Действующее лицо — субъект производственного процесса (businessworker) обозначается на диаграммах вариантов использования (usecasediagram) как представлено на рис. 2.2, действующее лицо — объект (businessactor) производственного процесса — как представлено на рис. 2.3.
Рис. 2.2. Изображение субъекта производственного процесса (businessworker) на диаграммах вариантов использования (usecasediagram)
Рис. 2.3. Изображение объекта производственного процесса (businessactor) на диаграммах вариантов использования (usecasediagram)
Изображение объекта производственного процесса также можно использовать и для обозначения субъекта производственного процесса.
Под изображением действующего лица указываются его наименование. Наименование действующего лица есть роль, которую он выполняет в производственном процессе, например, дилер (businessworker), автоматизированная система торгов (businessactor). Бизнес функции (businessusecase) изображаются на диаграммах функций (usecasediagram) как овал следующего вида (рис.2.4)
Рис. 2.4. Изображение бизнес-функции (businessuse-case) на диаграммах вариантов использования (usecasediagram)
Декомпозированные варианты использования (businessusecaserealization), т.е те варианты использования которые предполагается описать более подробно с помощью, например, диаграмм взаимодействия и т.п., изображаются на диаграммах вариантов использования (use case diagram) как овал, представленный на рис 2.5.
Рис. 2.5. Изображение декомпозированной бизнес (businessuse-caserealization)
Под овалом указывается имя функции. Имя функции может включать неформальное описание последовательности действий. Рекомендуется именовать функции с использованием глаголов, например, определить состояние счета, зарегистрировать курс.
Связи на диаграммах вариантов использования (businesscasediagram) имеют место: между организационными единицами; между действующим лицом и вариантом использования; между вариантами использования.
Между организационными единицами может иметь место связь, которая является зависимостью (Dependency). Связь обозначается прерывистой линией со стрелкой. Связь должна проводится от зависимой организационной единицы к независимой. Связь может быть двусторонней.
На рис. 2.6 представлен пример связи между организационными единицами.
Рис. 2.6. Пример зависимой связи
между организационными единицами
Между действующим лицом производственного процесса (businessworker или businessactor) и вариантом использования устанавливается связь, которая называется ассоциацией (Unidirectional Association). Связь отражает наличие определенной функции у действующего лица. В RationalRose может поддерживаться несколько типов связей. Это связи коммуникации (communication), использования (uses), расширения (extends) и обобщения действующего лица (actorgeneralization).
Связи коммуникации описывают связи между действующими лицами и вариантами использования. Такая связь обозначается сплошной линией со стрелкой или без нее. На рис. 2.7 представлен пример связи между действующим лицом и функцией.
Рис. 2.7. Пример связи между действующим
лицом и функцией
В двойных скобках « » может указывается стереотип связи, например, «communicates» (взаимодействует).
Связи использования и расширения отражают связи между вариантами использования. Связь использования позволяет одному варианту использования задействовать функциональность другого. С помощью таких связей обычно моделируют многократно применяемую функциональность, встречающуюся в двух или более вариантов использования. Например, при проектировании системы работы банкомата, варианты использования «Снять деньги» и «Положить деньги на счет» должны опознать (аутентифицировать) клиента и его идентификационный номер перед тем, как разрешить выполнение самой транзакции. Вместо того, чтобы подробно описывать процесс аутентификации для каждого из них, можно поместить эту функциональность в свой собственный вариант использования под названием «Аутентифицировать клиента». Когда какому-нибудь варианту использования потребуется выполнить эти действия, он сможет воспользоваться функциональностью созданного варианта использования «Аутентифицировать Клиента». Связь использования изображается с помощью стрелок и слова <<uses>>, как показано на рис. 2.8.
Рис. 2.8. Пример связи со стереотипом <<uses>>
Связь расширения позволяет варианту использования только при необходимости применять функциональные возможности, предоставляемые другим вариантом использования.
Связи «include» и «extends» обозначают прерывистой линией со стрелкой, рядом с которой указан стереотип. Для связи «include» стрелка направлена к функции, которую используют. Для связи «extends» стрелка направлена к функции, которая включает функцию, используемую опционально или по наступлении определенного условия.
Примеры связей «include» и «extends» между функциям представлены на рис. 2.9, 2.10.
Рис. 2.9. Пример связи со стереотипом «include»
Рис.2.10. Пример связи со стереотипом «extends»
На рис. 2.11 представлена архитектура модели производственных функций.
Рис. 2.11. Архитектура модели производственных функций
Учебное задание
Создать многоуровневую функциональную модель завода по производству радиоаппаратуры:
qпервый уровень: автоматизируемое предприятие;
qвторой уровень: автоматизируемые отделы;
qтретий уровень: сотрудники склада и документы склада;
qчетвертый уровень: роли на складе;
qпятый уровень: задачи кладовщика;
qшестой уровень: функции кладовщика по оприходованию товаров от продавца.
Технология выполнения учебного задания
1. Идентификация вариантов использования, исполнителей и определение границы системы
Приблизительный список исполнителей и инициируемых ими процессов (не претендующий на полноту), включает следующие элементы.
Исполнитель |
Функции |
Снабженец |
5,6,7 |
Кладовщик |
8,9,10.11,12,13 |
Бухгалтер |
1, 3, 4 |
Системный администратор |
Добавление новых пользователей |
2. Описание всех вариантов использования в формате высокого уровня, разделение их по категориям (основной, второстепенный, дополнительный)
Можно составить следующий приблизительный список вариантов использования высокого уровня
Вариант использования |
WriteAct(Выписка приемного акта) |
Исполнители |
Кладовщик |
Тип |
Основной |
Описание |
Кладовщик выписывает приемный акт в двух экземплярах. |
Вариант использования |
RegCart (регистрирует товар в картотеке) |
Исполнители |
Кладовщик |
Тип |
Основной |
Описание |
Кладовщик проверяет по картотеке наличие товара. Если товара нет добавляет его в картотеку. |
Вариант использования |
SendFin(Посылает экземпляр Приходного акта в бухгалтерию) |
Исполнители |
Кладовщик |
Тип |
Второстепенный |
Описание |
Кладовщик передает второй экземпляра Приемного акта бухгалтеру |
3 Построение диаграммы вариантов использования.
Этап 1. Запуск и настройка системы
1. Запуск RATIONALROSE 2001 (Rose) производится из меню Пуск Microsoft Windows (Программы=> Rational Rose 2001 Enterprise Edition=> Rational Rose 2001 Enterprise Edition).
Диаграмма активности должна создаваться в окне просмотра в разделе Use Case View. Выберите вкладку Existing, найдите свою сетевую папку и откройте ранее сохраненный проект ZOO-1.
2. Диаграмма вариантов использования должна создаваться в окне просмотра в разделе UseCaseView.
Щелкните по пакету UseCaseView в окне просмотра, выберите из появившегося меню пункт New, а затем из вновь появившегося меню пункт UseCaseDiagram. В окне просмотра появится поле NewDiagram.
В поле с именем NewDiagram введите наименование диаграммы вариантов использования «Автоматизируемое предприятие». Далее щелкните правой клавишей мыши по наименованию диаграммы и выберите команду Open. На экране появится окно рисования диаграммы функций (usecasediagram).
3. В меню Tools выберите пункт Options... На вкладке General задайте шрифты с кириллицей.
Этап 2. Построение диаграмм вариантов использования
4. Построение функциональной модели верхнего уровня. Для этого щелкнем по иконке с изображением организационной единицы (organizationunit) на панели инструментов. Далее щелкните мышью в окне рисования диаграммы в месте, где должно находиться изображение организационной единицы (organizationunit).
5. Щелкните правой кнопкой мыши по изображению организационной единицы и выберите в открывшемся меню команду OpenSpecification. Далее в поле Name введите Завод радиоаппаратуры и нажмите кнопку OK.
На функциональной модели должны быть выделены функции, которые следует автоматизировать. Выделение автоматизируемых функций может производиться использованием какого-либо цвета, отличного от цвета не автоматизируемых функций
Измените цвет организационной единицы на оранжевый, который будет означать что её функции будут автоматизированы..
Рис. 2.12 Верхний уровень модели производственных функций: автоматизируемое предприятие
6. Создайте функциональную модель второго уровня следующим образом. Дважды щелкните левой клавишей мыши по организационной единице, которую следует декомпозировать. На экране появится поле для рисования диаграммы последующего уровня. Разместите на этой диаграмме три организационные единицы и назовите их Бухгалтерия, Склад, и Отдел снабжения. Измените цвет автоматизируемого подразделения, в данном случае «Склад».
Рис. 2.13. Второй уровень модели производственных функций:
автоматизируемые отделы
7. Создайте функциональную модель третьего уровня. Для этого дважды щелкаем по организационной единице Склад. Поместите на диаграмму две организационные единицы.
Рис. 2.14. Третий уровень модели производственных
функций: сотрудники склада и документы склада
Измените цвет автоматизируемого единицы, в данном случае «Сотрудники склада».
8. Создайте функциональную модель четвертого уровня. Для этого дважды щелкаем по организационной единице Сотрудники склада. Поместите на новую диаграмму одну организационную единицу.
Рис. 2.15. Четвертый уровень модели производственных функций:(роли на складе
Измените цвет автоматизируемого единицы, в данном случае «Кладовщик».
8. Создайте функциональную модель пятого уровня. Для этого дважды щелкаем по организационной единице Кладовщик. Поместите на новую диаграмму одну организационную единицу.
Рис. 2.16. Пятый уровень модели производственных функций: задачи кладовщика
9. Создайте функциональную модель шестого уровня. Для этого дважды щелкаем по организационной единице «Оприходование товаров на складе». На экране появится поле для рисования диаграммы. Разместите на этой диаграмме роль Actor и назовите их Кладовщик через команду OpenSpecification. Затем размещаем щелкаем по иконке Use-caserealization, размещаем ее на диаграмме и даем ей название «Выписывает приемный акт в 2-х экз».
Краткое описание действующего лица можно производить в окне спецификации действующего лица на вкладке General в разделе Documentation. Окно спецификации действующего лица вызывается по двойному щелчку по действующему лицу.
По аналогии создайте друг под другом еще два блока Use-caserealization и назовите их «Регистрирует товар в картотеке» и «Передает экз. приходного ордера в бухгалтерию».
10. Установите связи между элементами диаграммы. Для этого выберите на панели инструментов иконку с изображением зависимой связи (Unidirectional Association). Соедините связью требуемые пакеты. Если требуемой иконки на панели инструментов нет, ее можно выбрать из настраиваемой панели инструментов.
Для того чтобы добавить стереотип к связи, щелкните по связи два раза. На экране появится окно спецификации связи. На вкладке General спецификации связи в поле Stereotype занесите вручную стереотип связи, или если стереотип связи уже существует, выберите его из выпадающего меню. Закройте окно спецификации.
Если связь не имеет направление, то щелкните по связи правой кнопкой мыши и уберите флажок в строке меню Navigable.
Если требуемой иконки на панели инструментов нет, ее можно выбрать из настраиваемой панели инструментов. Для этого щелкните по панели инструментов два раза, и на экране появится окно настраиваемой панели инструментов следующего вида. Из имеющихся иконок в окне слева выберите иконку с изображением связи, нажмите кнопку добавить. В окне панели инструментов появится иконка с изображением связи. Нажмите кнопку закрыть.
11. Декомпозиция варианта использования «Регистрирует товар на складе» Декомпозиция функций диаграммами функций (usecasediagram) должна производиться следующим образом. Дважды щелкните левой клавишей мыши по функции, которую следует декомпозировать, чтобы открыть спецификацию. На вкладке General спецификации функции в поле Stereotype задайте стереотип функции - businessuse-caserealization. Закройте окно спецификации функции, нажав кнопку ОК. Далее щелкните правой кнопкой мыши по функции, которую следует декомпозировать, и в появившемся меню выберите пункт SelectinBrowser. В окне просмотра щелкните по функции правой кнопкой мыши и в появившемся меню выберите пункт меню New, а затем во вновь появившемся меню пункт UseCaseDiagram. Задайте наименование диаграммы, а затем откройте диаграмму.
Рис. 2.17. Шестой уровень модели производственных функций: функции кладовщика при приемке товаров от снабженца
12. Если на диаграмме требуется разместить какой-либо текст, то используйте иконки на панели инструментов с изображением заметки (Note), и текста (TextBox).
13. Детальное описание функции можно производить с использованием редактора Word. Файлы с детальным описанием можно подключить к спецификации функции.
Для включения описания функции в редакторе Word в спецификацию следует.
1. Выбрать закладку File в окне спецификации.
2. Щелкнуть правой кнопкой по внутренней части окна.
3. В появившемся меню выбрать пункт InsertFile.
4. В окне просмотра файлов выбрать требуемый файл.
5. Нажать кнопку Open.
6. Нажать кнопку ОК в окне спецификации.
7. Рекомендуется в текстовых файлах отражать следующую информацию:
qпредусловия. Какие функции должны выполняться перед данной функцией;
qсемантика функции (собственно описание функции);
qописание функций декомпозирующих данную функцию.;
q описание альтернативной функции.
14. Задание количества экземпляров конкретного действующего лица (в данном случае кладовщика). Как правило, на предприятии работают 1 или 2 кладовщика. Чтобы зафиксировать этот факт, можно использовать поле Cardinality (Множественность) окна спецификации. Значение множественности можно ввести в соответствии со следующими форматами:
Формат |
Значение |
<число> |
ровно число |
<число 1>..<число 2> |
между числом 1 и числом 2 |
<число>..n |
число и больше |
<число 1>,<число 2> |
число 1 или число 2 |
<число 1>,<число 2>..<число 3> |
ровно число 1 или между числом 2 и числом 3 |
<число 1>..<число 2>,<число 3>..<число 4> |
между числом 1 и числом 2 или между числом 3 и числом 4 |
Чтобы установить множественность необходимо.
1. Щелкнуть правой кнопкой мыши на действующем лице (кладовщик) в браузере или на диаграмме Вариантов Использования.
2. В открывшемся меню выбрать пункт OpenSpecification (Открыть спецификацию).
3. Перейти на вкладку Detail (Подробно).
4. Выбрать нужную множественность в раскрывающемся списке Cardinality или ввести самостоятельно, используя один из форматов записи.
15. Определение автоматизированных функций. На модели производственных функций должны быть выделены функции, которые следует автоматизировать. Выделение автоматизируемых функций может производиться использованием какого-либо цвета, отличного от цвета не автоматизируемых функций.
Контрольные вопросы
1. Для чего используется диаграмма вариантов использования?
2. Какие компоненты диаграмм вариантов использования применяются при построении модели производственных функций предметной области?
3. Какие существуют стереотипы функций?
4. Какие существуют стереотипы связей?
Самостоятельное задание 2.1
Постройте модель функций отдела снабжения.
qТретий уровень: сотрудники отдела снабжения и документы отдела снабжения.
qЧетвертый уровень: сотрудники отдела: снабженец.
qПятый уровень: задачи снабженца: покупка товара.
qШестой уровень: покупка товаров.
Действие снабженца при покупке товаров:
qполучает доверенности в бухгалтерии у бухгалтера;
q едет к продавцу с доверенностью;
qполучает товар в организации-продавца с оформлением накладной и счета-фактуры;
qпривозит товар на склад;
qсдает товар кладовщику, а кладовщик принимает товар по количеству и качеству.
Самостоятельное задание 2.2
Постройте модель функций отдела страхования.
qТретий уровень: сотрудники отдела сотрудники и документы отдела страхования.
qЧетвертый уровень: сотрудники отдела: менеджер, агент.
qПятый уровень: задачи агента: страхование клиента, задача менеджера: ведение БД.
qШестой уровень: страхование клиента.
Действие агента при страховании клиента:
qедет к клиенту с доверенностью;
q оформляет страховой полис;
q обеспечивает приход клиента на фирму.
Самостоятельное задание 2.3
Постройте диаграмму активности магазина оптовой торговли, которая включает в себя три отдела: магазин, склад и бухгалтерию. Основные работы:
qклиент заполняет бланк заказа и передает продавцу магазина (менеджеру);
qменеджер регистрирует нового клиента (если обращение впервые);
qвносит новый заказ или изменяет существующий заказ;
qпередает один экземпляр заявки в бухгалтерию, другую — на склад;
qкладовщик обрабатывает заказ;
qподготавливает инвентарную опись;
qпередает экземпляр инвентарной ведомости менеджеру;
qобновляет инвентарную опись;
qменеджер оформляет заказ или отклоняет его.
Лабораторная работа 3. Диаграммы взаимодействия
Цель работы - построение модели взаимодействия субъектов и объектов (businessobjectmodel) для описания предметной области, подлежащей автоматизации, с использованием диаграмм последовательностей (sequencediagram) и сотрудничества (collaborationdiagram).
Теоретическая справка
Диаграмма взаимодействия включает в себя диаграммы последовательностей и диаграммы сотрудничества. Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе.
Диаграмма последовательностей позволяет отразить последовательность передачи сообщений между объектами. Эта диаграмма не акцентирует внимание на конкретном взаимодействии, главный акцент уделяется последовательности приема/передачи сообщений. Таким образом, диаграмма последовательностей — это упорядоченная во времени диаграмма Взамодействия.
Диаграмма сотрудничества позволяет описать взаимодействие объектов, абстрагируясь от последовательности передачи сообщений. На этом типе диаграмм в компактном виде отражаются все принимаемые и передаваемые сообщения конкретного объекта и типы этих сообщений.
Создание диаграммы последовательности
Диаграммы последовательностей выполняются на стадии анализа цикла разработки. Этот процесс зависит от предварительного формирования вариантов использования.
Поведение системы
Прежде чем приступать к разработке логики работы программного приложения, необходимо исследовать и определить ее поведение как "черного ящика". Поведение системы (systembehavior) представляет собой описание того, какие действия выполняет система, без определенного механизма их реализации. Одной из составляющих такого описания является диаграмма последовательностей.
Диаграммы последовательностей
Варианты использования определяют, как исполнители взаимодействуют с программной системой. В процессе этого взаимодействия исполнителем генерируются события, передаваемые системе, которые представляют собой запросы на выполнение некоторой операции.
Диаграмма последовательностей системы (systemsequencediagram) является схемой, которая для определенного сценария варианта использования показывает генерируемые внешними исполнителями события, их порядок, а также события, генерируемые внутри самой системы. При этом все системы рассматриваются как "черный ящик". Назначение данной диаграммы — отображение событий, передаваемых исполнителями системе через ее границы.
Сценарий варианта использования — это его частный случай или реальный путь его реализации.
Диаграмма последовательностей должна быть создана для типичного хода событий вариантов использования, а при необходимости и для наиболее существенных альтернативных последовательностей.
На данном этапе строится модель взаимодействия. Целью построение модели взаимодействия субъектов и объектов (business object model) является описание сценария выполнения производственных функций субъектами и объектами предметной области.
Построение модели взаимодействия субъектов и объектов (business object model) производится с использованием диаграммы последовательностей (sequence diagram) и/или диаграммы сотрудничества (collaboration diagram).
Диаграмма последовательностей системы (sequencediagram) является схемой, которая для определенного варианта использования показывает генерируемые внешними исполнителями события, их порядок, а также события, генерируемые внутри самой системы.
Диаграммы последовательностей (sequence diagram) и сотрудничествая (collaboration diagram) включают следующие элементы: действующих лиц варианта использования (business worker, business actor), сущности варианта использования (business entity), сообщения (messages).
Действующее лицо - субъект производственного процесса (business worker) обозначается на диаграммах последовательностей (sequence diagram) или взаимодействия (collaboration diagram) как представлено на рис. 2.1, действующее лицо — объект (business actor) производственного процесса — как представлено на рис. 2.2.
Рис. 2.1. Изображение субъекта производственного
процесса (businessworker)
Рис. 2.2. Изображение объекта производственного
процесса (businessactor)
Изображение объекта (business actor) производственного процесса также можно использовать и для обозначения субъекта производственного процесса. Под изображением действующего лица указываются его наименование. Наименование действующего лица есть роль, которую он выполняет в производственном процессе, например, дилер (business worker), автоматизированная система торгов (business actor).
Производственная сущность (business entity), представляет абстракцию сущности или объектов реального мира. Пример изображения производственной сущности (business entity) на диаграммах классов представлен на рис. 2.3.
Рис. 2.3. Пример изображения производственной
сущности (businessentity)
Примерами производственной сущности могут являться: накладная, график выпуска продукции, заявка на изобретение, компьютер и т.п.
Наименование действующих лиц и производственных функций изображается на диаграммах последовательностей (sequence diagram) и взаимодействия (collaboration diagram) как наименование действующего лица или производственной сущности, например, :диспетчер или :график.
Действующие лица и производственные сущности располагаются на диаграмме последовательностей (sequence diagram) горизонтально. Под каждым объектом располагается вертикальная пунктирная линия. На диаграммах взаимодействия (collaboration diagram) действующие лица и производственные сущности могут располагаться произвольным образом.
Для каждого объекта диаграммы можно задать его устойчивость. Поддерживаются следующие типы:
Persistent (Устойчивый). Устойчивый объект будет существовать даже после прекращения работы программы. Обычно он сохраняется в базе данных.
Static (Статичный). Статичный объект сохраняется в памяти компьютера в течение всей работы программы, но не после её завершения.
Transient (Временный). Временный объект сохраняется в памяти в течение короткого времени, пока не закончатся связанные с ним процессы.
Сообщение — это связь между объектами, в котором один из них требует от другого выполнения каких-либо действий.
Сообщение (object message) между действующими лицами:
на диаграмме последовательностей (sequence diagram) обозначаются сплошной линией со стрелкой, над которой находится имя сообщения,
на диаграммах взаимодействия (collaboration diagram) обозначаются сплошной линией, с расположенной над ней стрелкой, порядковым номером сообщения и именем сообщения.
Линия проводится от действующего лица, которое посылает сообщение, к действующему лицу, которое получает сообщение. Действующее лицо может посылать сообщение само себе (message to self).
Кроме этого, на вкладке Detail (подробно) окна спецификации сообщений можно определить синхронизацию посылаемых сообщений. Доступны пять значений параметра синхронизации:
Simple (Простое) — используется по умолчанию. Означает, что все сообщения выполняются в одном потоке управления;
Synchronous (Синхронное) — применяется, если клиент посылает сообщение и ждет ответа пользователя;
Balking (С отказом становиться в очередь) — применяется тогда, когда сообщение, посланное клиентом, отменяется, если сервер не может его немедленно;
Timeout (С лимитированным временем ожидания). Клиент посылает сообщение серверу, а затем ждет указанное время. Если в течение этого времени сервер не принимает сообщение, оно отменяется;
Asynchronous (Асинхронное) — клиент посылает сообщение серверу и продолжает свою работу, не ожидая подтверждения о получении.
Сложные сценарии могут быть дополнены пояснениями. Пояснения могут быть подписаны к любому сообщению слева от диаграммы на соответствующем уровне текстом.
У каждого объекта имеется линия жизни (lifeline), изображаемая в виде вертикальной штриховой линии под объектом.
Учебное задание
В предыдущем задание была построены диаграмма активности и диаграмма вариантов использования для исполнителя «Кладовщик» (рис. 2.17). Необходимо вариант использования «регистрирует товар в картотеке» декомпозировать с использованием диаграммы последовательностей (sequence diagram) и взаимодействия (collaboration diagram).
Технология выполнения учебного задания
Этап 1. Запуск и настройка системы.
1. Запуск RATIONALROSE 2001 (Rose) производится из меню Пуск Microsoft Windows (Программы=> Rational Rose 2001 Enterprise Edition> Rational Rose 2001 Enterprise Edition).
2. При запуске Rose на экран выводится окно шаблонов. Выберите вкладку Existing, найдите свою сетевую папку и откройте ранее сохраненный проект ZOO-1.
Диаграммы последовательностей (sequence diagram) и взаимодействия (collaboration diagram) при использовании их для описания сценариев производственных функций должны создаваться в окне просмотра в разделе UseCase View.
Диаграммы строятся для уже спроектированных вариантов использования (производственных функций) и при условии, что определены производственные сущности!!!
Этап 2. Построение диаграмм последовательностей (sequencediagram) и взаимодействия (collaborationdiagram) с использованием Rose
Построение диаграмм последовательностей (sequence diagram) и взаимодействия (collaboration diagram) с использованием Rose должно включать следующие шаги.
1. Определений производственных функций, описываемых сценарием.
2. Задание производственным функциям стереотипа business use-case realization.
3. Построение диаграммы последовательностей (sequence diagram).
4. Построение диаграммы взаимодействия (collaboration diagram).
Определение производственных функций, описываемых сценарием и открытие поля для построения диаграмм последовательностей (sequence diagram) и взаимодействия (collaboration diagram), представлено выше в разделе Запуск и настройка системы.
Задание производственным функциям стереотипа business use-case realization производится в окне спецификации функции. Для этого щелкните по функции, которая будет описана сценарием, правой клавишей мыши и в появившемся меню выберите пункт Open Specification. В окне спецификации функции на вкладке General в поле Stereotype выберите из меню стереотип business use-case realization.
Построение диаграммы последовательностей (sequence diagram) производится следующим образом.
3. В окне просмотра, выберите функцию, которую следует описать с использованием варианта использования. Далее щелкните правой клавишей мыши по изображению функции и в появившемся меню выберите пункт New. Далее из появившегося меню выберите пункт sequence diagram. В окне просмотра появится поле NewDiagram.
В поле с именем NewDiagram введите наименование диаграммы, например, сценарий функции "Наименование функции". Далее щелкните правой клавишей мыши по наименованию диаграммы и выберите команду Open. На экране появится окно рисования диаграммы последовательностей (sequence diagram).
4. На поле диаграммы последовательностей (sequence diagram) из окна просмотра Use Case View перетащите требуемых действующих лиц и производственные сущности. Соедините действующих с производственными сущностями посредством сообщений в соответствии с проектируемым сценарием.
5. Для определения устойчивости объекта щелкните правой кнопкой мыши на объекте «Накладная» диаграммы последовательности. В появившемся меню выберите пункт OpenSpecification (Открыть спецификацию). Установите переключатель Persistence в значение Persistamce/
6. Построение диаграммы взаимодействия (collaboration diagram) производится автоматически по нажатию клавиши F5. Повторное нажатие клавиши F5 приведет к возврату в диаграмму последовательностей (sequence diagram).
Если на диаграммах требуется разместить какой-либо текст, то используйте иконки на панели инструментов с изображением заметки (Note), и текста (TextBox). Изображение заметки может крепиться к любому элементу диаграммы с использованием специальной линии Anchor Note to Decision
Рис. 3.1. Пример сценария функции «регистрирует товар
в картотеке», разработанного с использованием диаграммы
последовательностей (sequence diagram)
Контрольные вопросы
1. Для чего используется модель взаимодействия субъектов и объектов (business object model)?
2. Какие диаграммы и какие их компоненты применяются при построении модели взаимодействия субъектов и объектов (business object model)?
Самостоятельное задание 3.1
Нарисуйте в окне просмотра Use Case View диаграмму вариантов использования, включающую Агента и его единственный вариант использования «оформление страхового полиса». Опишите вариант использования «оформление страхового полиса» с использованием диаграмм последовательностей и взаимодействия. Отобразите на этих диаграммах следующие действия:
qполучает от клиента заявление;
qзаполняет страховой полис;
qвыписывает квитанцию на оплату страхового взноса;
qпроставляет на страховой полис печать;
Рис. 3.2. Пример варианта использования «регистрирует товар в картотеке», разработанного с использованием диаграммы взаимодействия
(collaboration diagram)
Самостоятельное задание 3.2
Постройте диаграмму взаимодействия работы отдела продаж, включающую Продавца и его три сценария:
qпродавец вводит новый заказ;
qпродавец пытается ввести заказ, но товара нет на складе;
qпродавец пытается ввести заказ, но при его сохранении в базе данных возникает ошибка.
Лабораторная работа 4. Диаграммы состояния
Цель работы — описать поведение объектов предметной области, подлежащей автоматизации, с использованием диаграммы состояний (statechartdiagram)
Теоретическая справка
Диаграмма состояний предназначена для отображения состояний объектов системы, имеющих сложную модель поведения.
При моделировании поведения объектов реального мира с использованием диаграмм состояний (statechart diagram) показывают состояния объекта, события, которые влекут переход из одного состояния в другое, действия, которые происходят при изменении состояния. На диаграмме состояния отображается жизненный цикл одного объекта, начиная с момента его создания и заканчивая его разрушением.
Диаграммы состояний (statechart diagram) включают следующие элементы:
- начальное состояние (start state);
- конечное состояние (endstate);
состояние (state);
переход (state transition).
Начальное состояние (start state) обозначается черным маленьким кружком, с которым может быть связано название «начало».
Конечное состояние (end state) обозначается большим черным кружком внутри круга, с которым может быть связано название «конец». Пример начального (start state) и конечного состояния (endstate) представлен на рис. 4.1.
Рис. 4.1. Пример начального (startstate)
и конечного состояния (endstate)
Каждая диаграмма состояний (Statechart diagram) должна иметь только одно начальное состояние. Конечных же состояний может существовать множество.
Состояние (state) обозначается прямоугольником с закругленными углами. Пример элемента состояния (state) представлен на рис. 4.2.
Рис. 4.2. Пример элемента состояние (state)
Элемент состояние (state) используется собственно для описания определенных состояний какого-либо субъекта или объекта, например состояния ожидания. С этим элементом должно быть связано имя. Имя должно отражать состояние субъекта или объекта.
С элементом состояние (state) могут быть также связаны определенные действия, которые происходят на входе этого элемента, на выходе, внутри него или при наступлении определенного события. Действия можно добавить к элементу состояние (state) при использовании спецификации.
Пример элемент диаграммы состояние (state) с добавленными действиями на входе, выходе, внутри состояния и по наступлению определенного события представлен на рис. 4.3.
Рис. 4.3. Пример элемента состояние (state) с добавленными действиями на входе, выходе, внутри состояния и по наступлению определенного события
С состоянием можно связывать данные пяти типов: деятельность, входное действие, выходное действие, событие и история состояния.
Деятельность — называется поведение, которое реализуется объектом, когда он находится в данном состоянии. Деятельность это прерываемое поведение. Оно может выполняться до своего завершения, если объект находится в данном состоянии, или может быть прервано переходом объекта в другое состояние. Деятельность изображается внутри состояния, ей должно предшествовать слово do (делать) и двоеточие.
Входным действием называется поведение, когда объект переходит в данное состояние. Данное действие осуществляется не после того, как объект перешел в состояние, а скорее как часть этого перехода. В отличие от деятельности, входное действие рассматривается как непрерываемое. Входное действие изображается внутри состояния, ему должно предшествовать слово entry (вход) и двоеточие.
Выходное действие подобно входному. Однако оно осуществляется как составная часть процесса выхода из данного состояния. Оно является частью процесса перехода. Как и входное, выходное действие является непрерываемым. Выходное действие изображается внутри состояния, ему должно предшествовать слово exit (выход) и двоеточие.
Поведение объекта во время деятельности, входных действий, выходных действий может включать в себя отправку событий другому объекту. В этом случае описанию деятельности, входных действий, выходных действий предшествует знак, например: do: Цель.Событие(Аргументы), где Цель — это объект, получающий событие, Событие— посылаемое сообщение, а Аргументы являются параметрами посылаемого сообщения.
Переходом называется перемещение из одного состояния в другое. У перехода существует несколько спецификаций: события, аргументы, ограждающие условия, действия и посылаемые события. На диаграмме состояний и переходов переход изображается сплошной линией со стрелкой, над которой может указываться названия события и действия. Стрелка указывает на следующее состояние. Каждый переход соединяет два состояния. Состояние может иметь переход само в себя.
Событием называется любое происшествие, которое может быть причиной перехода из одного состояния в другое. У события могут быть аргументы.
Ограждающие условия определяют, когда переход мажет быть выполнен, а когда нет. Условие есть логическое выражение, включающее некоторые величины. Переход в последующее состояние допускается только в случае истинности этого выражения. Переход из одного состояния в другое состояние может происходить по условию. На диаграмме ограждающие условия заключают в квадратные скобки и размещают вдоль линии перехода после имени события.
Действие называется непрерываемое поведение, выполняющееся как часть перехода. Входные и выходные действия показываются внутри состояния. Другие действия изображаются вдоль линии перехода, так как они не должны осуществляться при входе или выходе из состояния. В этом случае действию предшествует косая черта (/).
Пример элемента переход (state transition) представлен на рис. 4.5.
Рис. 4.5. Пример элемента переход (statetransition)
Возможна вложенность состояний. Семантика вложенности подразумевает для вложенных состояний исключающее или объемлющее состояние называется суперсостоянием, а вложенное состояние - подсостоянием. Пример вложенных состояний представлен на рис. 4.6.
Рис. 4.6. Пример вложенных состояний
Для вложенных состояний, начальное состояние должно определяться в каждом контексте отдельно.
История. Иногда, возвращаясь к суперсостоянию, требуется попасть в то же подсостояние, в котором находились в последний раз. Эта семантика изображается значком истории (буква Н (History) внутри кружка) на изображении состояния. Пример значка истории также представлен на рис. 4.6.
Отдельные состояния можно декомпозировать с использованием другой диаграммы состояний (statechart diagram) и диаграммой деятельности (activity diagram). Такая декомпозиция производиться следующим образом.
1. Щелкните правой кнопкой мыши по состоянию, которое следует декомпозировать. В появившемся меню выберите пункт Sub Diagrams. Во вновь появившемся меню выберите пункт New Statechart diagram или New activity diagram. На экране появится окно для рисования новой диаграммы.
2. Декомпозированное состояние следует пометить каким-либо цветом. Пометка производится следующим образом. Щелкните правой кнопкой мыши по состоянию. В появившемся меню выберите пункт Format. Далее в появившемся меню выберите пункт Fill Color. Из палитры выберите требуемый цвет. Нажмите кнопку ОК.
3. Далее щелкните правой кнопкой мыши по деятельности, которую декомпозировали. В появившемся меню выберите пункт Select in Browser. Декомпозирующая диаграмма находится в окне просмотра ниже декомпозированного элемента. В окне просмотра щелкните по изображению декомпозирующей диаграммы правой кнопкой мыши и в появившемся меню выберите пункт меню Rename. Задайте наименование диаграммы.
Учебное задание
Описать поведение объекта «Приемный акт» с использованием диаграммы состояний (statechartdiagram)
Технология выполнения учебного задания
Этап 1. Запуск и настройка системы
1. Запуск RATIONALROSE (Rose) производится из меню Пуск Microsoft Windows (Программы=>Rational Rose Enterprise Edition=> Rational Rose Enterprise Edition).
При запуске Rose на экран выводится окно шаблонов. Выберите вкладку Existing, найдите свою сетевую папку и откройте ранее сохраненный проект ZOO-1.
Перед рисование диаграммы в окне просмотра должен быть создан объект предметной области, а именно производственная сущность (businessentity)!!!
2. Диаграмма состояний (statechart diagram) должна создаваться в окне просмотра Rose в разделе Use Case View. В окне просмотра, выберите Приемный акт — сущность, поведение которой следует описать с использованием диаграммы состояний. Далее щелкните правой клавишей мыши по изображению сущности. В появившемся меню выберите пункт New. Далее из вновь появившегося меню выберите пункт Statechart Diagram. В поле с именем NewDiagram введите наименование диаграммы состояний. Далее щелкните правой клавишей мыши по наименованию диаграммы и выберите команду Open. На экране появится окно рисования диаграммы состояний (Statechart Diagram).
Этап 2. Моделирование поведения объекта
3. Щелкните по иконке с изображением требуемого элемента диаграммы на панели инструментов. Щелкните мышью в окне рисования диаграммы в месте, где должно находиться изображение выбранного элемента.
Рисование перехода (state transition) должно производиться следующим образом. Щелкните по иконке с изображением перехода на панели инструментов. Соедините требуемые элементы диаграммы переходом.
Именование элементов диаграммы должно производиться в окне спецификации на вкладке General в поле Name. Вызов окна спецификации производиться по двойному щелчку левой клавишей мыши по элементу диаграммы.
События, действия, условия, связанные с переходом могут задаваться следующим образом.
Дважды щелкните левой клавишей мыши по переходу. На экране появится окно спецификации перехода. В окне спецификации перехода на вкладке General в поле Event задайте имя события.
В окне спецификации перехода на вкладке Detail в поле Guard Condition задайте условие, в поле Action - действие.
Краткое описание элемента диаграммы можно производить в окне спецификации элемента диаграммы на вкладке General в разделеDocumentation.
Значок истории (Н (History)) задается в окне спецификации на вкладке General включением флага State/Activty History.
Текст на диаграмме можно разместить с использованием иконки на панели инструментов с изображением заметки (Note), и текста (TextBox). Изображение заметки может крепиться к любому элементу диаграммы с использованием специальной линии Anchor Note to Decision Item.
Контрольные вопросы
1. Для чего используется диаграмма состояний?
2. Какие компоненты диаграмм состояний применяются при построении модели поведения объекта?
Самостоятельное задание 4.1
Создайте диаграмму состояния (statechartdiagram) объекта «Накладная».
Самостоятельное задание 4.2
Создайте диаграмму состояния страхового полиса клиента.
Самостоятельное задание 4.3
Создайте диаграмму состояния объекта «Заказ».
Рис. 4.7. Диаграмма состояния объекта
Лабораторная работа 5. Диаграммы классов
Цель работы — разработать описание документов при моделировании предметной области, подлежащей автоматизации, для использования их при проектировании входных/выходных форм, баз данных (БД), пользовательского интерфейса программных систем с использованием диаграммы классов (classdiagram).
Теоретическая справка
Диаграмма классов — это набор статических, декларативных элементов модели, таких как классы, интерфейсы и их отношения.
Диаграммы отображают классы ПО и их взаимоотношения. Обычно на такую диаграмму выносится следующая информация:
Классы, ассоциации и атрибуты
Интерфейсы со своими операциями и константами
Методы
Информация о типах атрибутов
Способы навигации
Зависимости
Диаграммы классов строятся на стадии проектирования каждого цикла разработки. До начала их создания необходимо построить диаграммы взаимодействий (диаграммы последовательности или диаграммы кооперации), по которым разработчик определяет, какие классы должны быть задействованы в проектном решении, а также методы этих классов.
Для построения диаграммы классов используется следующая стратегия.
1. Определите все классы, задействованные в программном решении. Для этого проанализируйте диаграммы взаимодействий.
2. Отобразите их на диаграмме классов.
3. Перенесите на диаграмму атрибуты соответствующих понятий из концептуальной модели.
4. Добавьте имена методов на основе анализа диаграмм взаимодействия.
5. Добавьте информацию о типах атрибутов и методов.
6. Добавьте ассоциации, необходимые для поддержки обеспечения видимости посредством атрибутов.
7. Добавьте стрелки, определяющие направление навигации для ассоциаций.
8. Добавьте линии зависимостей, определяющие другие способы обеспечения видимости, отличные от видимости посредством атрибутов.
Описание документов
В данной работе с помощью диаграммы классов будут описываться документы. Целью описания документов является создание описания документов такой степени подробности, которое позволило использовать это описание при проектировании пользовательского интерфейса программных систем, баз данных (БД), выходных форм.
Для создания описания документов используется компоненты диаграммы классов - производственная сущность (business entity), ассоциативная связь (association), связи агрегация (agregation) и наследование (generalization).
Производственная сущность (business entity), представляет абстракцию сущности реального мира.
Пример изображения производственной сущности (business entity) на диаграммах классов представлен на рис. 5.1.
Рис. 5.1. Пример изображения производственной сущности (business entity)
Производственные сущности (business entity) могут иметь атрибуты. Пример изображения производственных сущностей (business entity) с атрибутами на диаграмме классов представлен на рис. 5.2.
Рис. 5.2. Пример изображения двух производственных
сущностей с атрибутами
Ассоциативная связь (association) между производственными сущностями (business entity) есть смысловая связь. Связь не объясняет, как сущности общаются друг с другом, отмечается только смысловая зависимость между ними. Ассоциативная связь (association) изображается на диаграмме классов сплошной прямой линией как представлено на рис. 5.3.
Рис. 5.3. Пример ассоциативной связи (association) между
производственными сущностями (business entity)
Ассоциативная связь (association) может быть поименована. Имя ассоциации обозначается глаголом, например, учит, управляет. Рекомендуется указывать имя ассоциации так, чтобы оно читалось корректно слева направо или сверху вниз.
Количество сущностей, принимающих участие в связи, называется мощностью связи. Мощность указывается на каждом конце ассоциативной связи. Мощность означает число связей между одной производственной сущностью в начале линии связи с производственными сущностями в конце линии связи.
Мощность может обозначаться следующим образом:
1 - точна одна производственная сущность;
0...* - ноль или больше производственных сущностей;
1..*- одна или больше производственных сущностей;
0..1 - ноль или одна производственная сущность;
5..8 - специфический диапазон 5,6,7,8;
4..7, 9 - комбинация 4,5,6,7, или 9 производственных сущностей.
Пример изображения ассоциативной связи между двумя производственными сущностями с указанием мощности связи на диаграмме классов представлен на рис. 5.4.
Рис. 5.4. Пример ассоциативной связи (association) между
производственными сущностями с указанием мощности связи
Представленную на рис. 5.4 ассоциативную связь между производственными сущностями следует интерпретировать как: - одна производственная сущность Договор связана с одной или более производственных сущностей Бланк заказа. Одна производственная сущность Бланк заказа связана ровно с одной производственной сущностью Договор.
Связь «агрегация» (agregation) обозначает связь часть целого (part of). При этом часть может существовать без целого. Например, пакет документов включает договор, учредительные документы, справку из налоговой инспекции и т.п. Агрегация есть частный случай ассоциации.
Агрегация (agregation) изображается сплошной прямой линией с добавлением на конце не закрашенного ромба как представлено на рис. 5.5. Не закрашенный ромб указывает на целое.
Рис. 5.5. Пример агрегации (agregation) между бизнес сущностями
Существует еще один вид агрегации (agregation), который называется композицией (composite aggregation). Композиция также обозначает связь часть целого (part of), но при этом часть не может существовать без целого. Например, бланк заказа включает заголовок заказа и строки заказа.
Композиция (composite aggregation) изображается сплошной прямой линией с добавлением на конце закрашенного ромба как представлено на рис. 5.6 Закрашенный ромб указывает на целое.
Рис. 5.6. Пример композиции (composite agregation)
между бизнес сущностями
Наследование (generalization) между производственными сущностями это такое отношение между ними, когда одна производственная сущность повторяет структуру другой производственной сущности (одиночное наследование) или других сущностей (множественное наследование).
Так как наследование (generalization) не является связью между разными сущностями, она может не именоваться, на ней также не указывается мощность.
На диаграммах классов наследование (generalization) изображается стрелкой с не закрашенным треугольником, обращенным к сущности, от которой наследуются свойства. Пример изображения наследования (generalization) и агрегации между производственными сущностями представлен на рис. 5.7.
Рис. 5.7 Пример изображения наследования (generalization) и агрегации (agregation) между производственными сущностями
Для объединения производственных сущностей сходных по назначению на диаграммах классов используется изображение организационной единицы (organization unit).
Пример изображения организационной единицы (organization unit) на диаграмме классов (class diagram) представлен на рис. 5.8.
Рис. 5.8. Изображение организационных единиц (organization unit) на диаграммах классов (class diagram)
Все классы делятся на:
qпараметризированные классы (parameterizedclass) — применяется для создания семейства других классов. Аргументом такого класса могут быть другой класс, тип данных или выражение-константа;
qкласс-накопитель — это параметризованный класс, аргументы которого имеют фактические значения;
qметакласс — это класс, экземпляры которого являются классами, а не объектами.
Каждому классу необходимо задать стереотип. Стереотип — это механизм, позволяющий категоризировать классы. На языке UML определены три основных стереотипа.
1. Пограничные классы (boundaryclasses) — классы, расположенные на границе системы со всем остальным миром. Они включают в себя формы, отчеты, интерфейсы с аппаратурой. Пограничный класс обозначается
Учебное задание
Создайте архитектуру диаграммы классов при описании документов. На первом уровне диаграммы классов отображается организационная единица с наименованием: «Первичные документы». На втором уровне (внутри организационной единицы «Первичные документы») организационные единицы с наименованиями, исходящие документы и т.п. На третьем уровне должны отображаться собственно документы, например, приемный акт, карточка товара, накладная.
Создайте классы исходя из диаграммы последовательности «Регистрация товара».
Рис. 5.9. Структура документа приемный акт
Технология выполнения учебного задания
1. Запуск RATIONAL ROSE 2001 (Rose) производится из меню Пуск Microsoft Windows (Программы=> Rational Rose 2001 Enterprise Edition=> Rational Rose 2001 Enterprise Edition).
2. При запуске Rose на экран выводится окно шаблонов. Выберите вкладку Existing, найдите свою сетевую папку и откройте ранее сохраненный проект ZOO-1.
3. Найдите в разделе Use Case View. окна просмотра пакет «Завод радиоаппаратуры», щелкните по нему и в окне просмотра и найдите значок «Документы склада». Создание модели структурной единицы «Документы склада» должно включать следующие шаги:
qПроектирование диаграммы верхнего уровня («Первичные документы склада»);
qПроектирование диаграммы следующего уровня (организационные единицы с наименованиями «Исходящие документа склада», «Документы по оприходыванию товара»;
qПроектирование диаграмм с отдельными документами для организационной единицы «Исходящие документа склада»
qПроектирование диаграмм с отдельными документами для организационной единицы «Документы по оприходыванию товара»
4. Определим классы путем анализа диаграммы последовательности «Регистрация товара». Анализ позволяет выделить три класса Кладовщик, Карточка товара, Приемный акт. Начнем создавать классы с объекта «Карточка товара». Щелкните правой клавишей мыши по изображению организационной единицы Карточка товара и в окне просмотра, выберите из появившегося меню пункт New, а затем из вновь появившегося меню пункт Class Diagram. В окне просмотра появится поле New Diagram. В поле с именем New Diagram введите наименование диаграммы классов «Структура документа Карточка товара». Далее щелкните правой клавишей мыши по наименованию диаграммы и выберите команду Open. На экране появится окно рисования диаграммы классов (class diagram).
5. Найдите на диаграмме вариантов использования «Оприходование товаров на складе» сущность «Карточка товара» и перетащите ее в окно рисование диаграммы классов.
6. Далее щелкните по иконке с изображением производственной сущности (business entity) на панели инструментов. Щелкните мышью в окне рисования диаграммы в месте, где должно находиться изображение производственной сущности (business entity). Повторяйте эти действия до тех пор, пока все производственной сущности (business entity) не будут размещены на поле диаграммы организационной единицы (organization unit).
7. Соедините производственные сущности (business entity) связями. При построении связи между сущностями, выберите на панели инструментов иконку Aggregation. Соедините связью требуемые производственные сущности. Щелкните правой клавишей мыши по изображению связи и в появившемся меню выберите пункт Open Specification. В окне спецификации на вкладке Role A Detail в поле Multiplicity выберите мощность связи и для переключателя Containment of Карточка товара выберите значение By Value.
8. Далее определите атрибуты производственных сущностей (business entity) (рис. 5.9.).Определение атрибутов производится следующим образом.
qВ окне спецификации производственной сущности выберите вкладку Attributes. Щелкните правой клавишей мыши по белому полю на вкладке и в появившемся меню выберите пункт Insert. введите имя атрибута. Далее дважды щелкните клавишей по появившейся новой строке в списке атрибутов, на экране появится окно спецификации атрибута.
qПоле спецификации Name используется для написания имени атрибута. Поле Class определяет, где определен атрибут. Поле спецификации Type используется для описания типа атрибута. Stereotype - описания стереотипа атрибута, поле Initial value - для задания начального значения атрибута.
qЗадайте для новых классов атрибуты, согласно рис. 5.10.
9. Далее по аналогии создаем диаграмму классов для объекта Приемный акт.
Создадим класс Кладовщик. Для этого находи м организационную единицу Кладовщик и щелкаем по ней правой клавишей мыши. Далее в окне просмотра, выберите из появившегося меню пункт New, а затем из вновь появившегося меню пункт Class Diagram.
Рис. 5.10. Диаграмма классов для объекта «Приемный акт»
Рис. 5.11. Диаграмма классов для объекта «Кладовщик»
10. В поле с именем New Diagram введите наименование диаграммы классов «Класс Кладовщик». Далее щелкните правой клавишей мыши по наименованию диаграммы и выберите команду Open. На экране появится окно рисования диаграммы классов (class diagram).
11. Найдите на диаграмме вариантов использования «Оприходование товаров на складе» сущность «Кладовщик» и перетащите ее в окно рисование диаграммы классов.
12. Далее определите атрибуты класса «Кладовщик» согласнорис. 5.11.
13. Операции класса «Кладовщик» определите из диаграммы последовательности «Регистрация товара». Для задания операций в окне спецификации производственной сущности «Кладовщик» выберите вкладку Attributes. Щелкните правой клавишей мыши по белому полю на вкладке и в появившемся меню выберите пункт Insert. введите имя операции. Далее дважды щелкните клавишей по появившейся новой строке в списке операций, на экране появится окно спецификации операций.
Поле спецификации Name используется для написания имени операции. Поле Return type определяет тип параметра, который вычисляется в результате выполнения операции. Поле спецификации Type используется для описания типа атрибута. Stereotype - описания стереотипа операции.
Контрольные вопросы
1. Из каких этапов состоит разработка программной системы?
2. Для чего используется описание документов при моделировании предметной области?
3. Какие компоненты диаграмм классов используются при описании документов?
Самостоятельное задание 5.1
Создайте диаграмму классов отдела продаж для приема заказа.