Лабораторные работы. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ. Лабораторная работа 1
Скачать 1.87 Mb.
|
Теоретические сведения Содержание работы и методические указания к ее выполнению UML (Universal Modeling Language) - универсальный язык моделирования, который был разработан компанией Rational Software с целью создания наиболее оптимального и универсального языка для описания как предметной области, так и конкретной задачи в программировании. Визуальное моделирование в UML можно представить как некоторый процесс поуровневого спуска от наиболее обшей и абстрактной концептуальной модели системы к логической, а затем и к физической модели соответствующей системы. Любая задача, таким образом, моделируется при помощи некоторого набора иерархических диаграмм, каждая из которых представляет собой некоторую проекцию системы. Диаграмма (Diagram) - это графическое представление множества элементов. Чаще всего она изображается в виде связного графа с вершинами (сущностями) и ребрами (отношениями). В UML определено восемь видов диаграмм [1]: диаграмма прецедентов (Use case diagram) - диаграмма поведения, на которой показано множество прецедентов и актеров, а также отношения между ними; диаграмма деятельности (Activity diagram) - диаграмма поведения, на которой показан автомат и подчеркнуты переходы потока управления от одной деятельности к другой; диаграмма классов (Class diagram) - структурная диаграмма, на которой показано множество классов, интерфейсов, коопераций и отношения между ними; диаграмма состояний (Statechart diagram) - диаграмма поведения, на которой показан автомат и подчеркнуто поведение объектов с точки зрения порядка получения событий; диаграмма последовательностей (Sequence diagram) - диаграмма поведения, на которой показано взаимодействие и подчеркнута временная последовательность событий; диаграмма кооперации (Collaboration diagram) - диаграмма поведения, на которой показано взаимодействие и подчеркнута структурная организация объектов, посылающих и принимающих сообщения; диаграмма компонентов (Component diagram) - диаграмма поведения, на которой показан автомат и подчеркнуто поведение объектов с точки зрения порядка получения событий диаграмма развертывания (Deployment diagram) - структурная диаграмма, на которой показаны узлы и отношения между ними. Взаимосвязи между диаграммами UML Диаграмма прецедентов Диаграммы прецедентов применяются для моделирования вида системы с точки зрения внешнего наблюдателя. На диаграмме прецедентов графически показана совокупность прецедентов и Субъектов, а также отношения между ними. Рассмотрим основные элементы диаграммы прецедентов. Субъект (actor) - любая сущность, взаимодействующая с системой извне [2] или множество логически связанных ролей, исполняемых при взаимодействии с прецедентами [1]. Стандартным графическим обозначением субъекта на диаграммах является фигурка "человечка", под которой записывается конкретное имя субъекта, однако субъектом может быть не только человек, но и техническое устройств о, программа или любая другая система, которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик. <="" p=""> Прецеденты (use case) - это описание множества последовательностей действий (включая их варианты), которые выполняются системой для того, чтобы актер получил результат, имеющий для него определенное значение. При этом ничего не говорится о том, каким образом будет реализовано взаимодействие субъектов с системой, это одна из важнейших особенностей разработки прецедентов. Стандартным графическим обозначением прецедента на диаграммах является эллипс, внутри которого содержится краткое название прецедента или имя в форме глагола с пояснительными словами. <="" p=""> Сущность концепции прецедентов подразумевает несколько важных пунктов. Прецедент представляет собой завершенный фрагмент функциональных возможностей (включая основной поток логики управления, его любые вариации (подпотоки) и исключительные условия (альтернативные потоки)). Фрагмент внешне наблюдаемых функций (отличных от внутренних функций). Ортогональный фрагмент функциональных возможностей (прецеденты могут при выполнении совместно использовать объекты, но выполнение каждого прецедента независимо от других прецедентов). Фрагмент функциональных возможностей, инициируемый субъектом. Будучи инициирован, прецедент может взаимодействовать с другими субъектоми. При этом возможно, что субъект окажется только на принимающем конце прецедента, опосредованно инициированного другим субъектом. Фрагмент функциональных возможностей, который предоставляет субъекту ощутимый полезный результат (и этот результат достигается в пределах одного прецедента). Между субъектами и прецедентами - основными компонентами диаграммы прецедентов - могут существовать различные отношения, которые описывают взаимодействие экземпляров одних субъектов и прецедентов с экземплярами других субъектов и прецедентов. В языке UML имеется несколько стандартных видов отношений между субъектами и прецедентами: Отношение ассоциации (association) - определяет наличие канала связи между экземплярами субъекта и прецедента (или между экземплярами двумх субъектов).Обозначается сплошной линией, возможно наличие стрелки и указание мощности связи. Отношение расширения (extend) - определяет взаимосвязь экземпляров отдельного прецедента с более общим прецедентом, свойства которого определяются на основе способа совместного объединения данных экземпляров. Обозначается пунктирной линией со стрелкой, направленной от того прецедента, который является расширением для исходного прецедента, и помечается ключевым словом "extend" ("расширяет"). Отношение включения (include) - указывает, что некоторое заданное поведение для одного прецедента включает в качестве составного компонента поведение другого прецедента. Данное отношение является направленным бинарным отношением в том смысле, что пара экземпляров прецедентов всегда упорядочена в отношении включения. Обозначается пунктирной линией со стрелкой, направленной от базового прецедента к включаемому, и помечается ключевым словом "include" ("включает"). Отношение обобщения (generalization) - служит для указания того факта, что некоторый прецедент А может быть обобщен до прецедента В. В этом случае прецедент А будет являться специализацией прецедента В. При этом В называется предком или родителем по отношению к А, а прецедент А - потомком по отношению к прецеденту В. Следует подчеркнуть, что потомок наследует все свойства и поведение своего родителя, а также может быть дополнен новыми свойствами и особенностями поведения. Графически данное отношение обозначается сплошной линией со стрелкой в форме незакрашенного треугольника, которая указывает на родительский прецедент. Для описания динамики системы используются диаграммы поведения (Behavior diagrams), которые подразделяются на: диаграммы состояний (Statechart diagrams); диаграммы активности (Activity diagrams); диаграммы взаимодействия (Interaction diagrams), состоящие из: диаграмм последовательности (Sequence diagrams); кооперативных диаграмм (Collaboration diagrams). Диаграмма состояний может быть представлена в виде ориентированного графа состояний и переходов из одного состояния в другое. Вершины графа представляют собой состояния объектов, а дуги – переходы. Каждая дуга маркирована парой «условие-действие», где первое представляет условие перехода, а второе – результат. Диаграмма активности отражает динамику проекта и представляет собой схемы потоков управления в системе от действия к действию, а также параллельные действия и альтернативные потоки. Диаграммы взаимодействия отображают один из процессов обработки информации в рамках варианта использования. Поскольку в каждом варианте использования может быть несколько альтернативных потоков, то это значит, что для данного варианта использования можно разработать несколько диаграмм взаимодействия, отражающих один и тот же процесс при различных условиях (например, при нормальном ходе процесса функционирования и в случае возникновения ошибки). Диаграммы взаимодействия делятся на диаграммы последовательности и диаграммы кооперации. На диаграммах обоих типов представляется одна и та же информация, однако на диаграммах последовательности основное внимание уделяется управлению, а кооперативные диаграммы отображают потоки данных. Диаграммы последовательности упорядочены во времени, они помогают понять логическую последовательность событий. Кооперативные диаграммы показывают, как компоненты системы взаимодействуют друг с другом. 2.3. Разработка диаграмм взаимодействия Диаграммы взаимодействия содержат объекты, классы или то и другое вместе и сообщения. Объект – это абстракция чего-либо в домене прикладной области или в выполняемой системе. Объект инкапсулирует данные и поведение, которые отличаются от традиционного разделения на функции и данные. Данные объекта представляются атрибутами, а его поведение – операциями. Значения атрибутов изменяются во времени, но сами атрибуты неизменны. Однотипные объекты (имеющие одинаковые атрибуты и операции) объединяются в классы. Класс – это некая сущность, представляющая собой как бы схему объекта. Иными словами, класс определяет данные и поведение, которыми должен обладать объект. Класс – более общий термин, являющийся, по существу, шаблоном для объектов. Объекты создаются для реализации функциональных возможностей, заложенных в варианте использования. Сообщение (Message) – это связь между объектами, в которой один из них (клиент) требует от другого (сервера) выполнения каких-то действий. При генерации кода сообщения транслируются в вызовы функций. С помощью сообщения один объект или класс запрашивает у другого выполнения какой-то конкретной функции. На диаграмме последовательности взаимодействие изображается в виде двухмерной схемы (в формате графа или сети). По вертикали проходит временная ось, где течение времени происходит сверху вниз. По горизонтали указываются роли классификатора, которые представляют отдельные объекты кооперации. У каждой роли классификатора есть «линия жизни», идущая сверху вниз. Тот период времени, в течение которого объект существует, изображается на диаграмме вертикальной пунктирной линией. Во время вызова процедуры определенного объекта (активизации) его линия жизни изображается в виде полого прямоугольника, который замещает собой часть линии жизни объекта. Сообщение выглядит на диаграмме последовательности как линия со стрелкой, идущая от линии жизни одного объекта к линии жизни другого объекта. Стрелки организованы согласно временной последовательности сообщений. Активацией называется выполнение процедуры, включающее в себя время ожидания выполнения всех вложенных процедур. Активным называется объект, которому принадлежит стек активаций (и вызовов операций). У каждого активного объекта есть свой собственный поток управления, который выполняется параллельно с другими активными объектами. Объекты, вызываемые пассивными объектами, называется пассивными. Они получают управление только на время вызова, а потом возвращают его. Диаграмма кооперации – это диаграмма классов, на которой отображаются не просто классификаторы и ассоциации, а роли классификатора и роли в ассоциации. Роли классификатора и роли в ассоциации описывают конфигурацию объектов и связей, которые могут образоваться при выполнении кооперации в реальной системе. Последовательность построения диаграмм взаимодействия: 1. Создайте диаграмму последовательности для выбранного прецедента (контекстное меню в браузере – New, Sequence Diagram (создать новую, диаграмма последовательности) или в контекстном меню на рабочем столе Sub Diagram, New Sequence Diagram (поддиаграмма, новая диаграмма последовательности)). В данном случае – это диаграмма добавления учебной дисциплины (рис. 16). Рис. 16. Диаграмма последовательности «Добавление учебной дисциплины» 2. Создайте объекты, переместив их непосредственно на рабочий стол из строки инструментов (Object), или перенесите из окна браузера уже существующие. В данном случае это объекты-сущности «Преподаватель», «Интерфейс пользователя», «Учебная дисциплина», «БД» и управляющий класс «Информационная система». 3. Добавьте необходимые сообщения (Message) из строки инструментов. Вызовите окно спецификации для сообщения, щелкнув по линии мышкой. Задайте имя и свойства. 4. Задайте свойства объектов (Open Specification в контекстном меню выбранного элемента). 5. Диаграмму коопераций (рис. 17) можно создать из диаграммы последовательности, если она отображает тот же процесс (Browse, Create Collaboration Diagram (просмотр, создать диаграмму кооперации)). Рис. 17. Диаграмма кооперации «Добавление учебной дисциплины» С помощью диаграмм взаимодействия проектировщики и разработчики системы могут определить классы, которые нужно создать, связи между ними, а также операции и ответственности (Responsibilities) каждого класса. Требования к отчету Отчет к лабораторной работе должен содержать: титульный лист; описание динамики поведения разрабатываемой программной системы; построенные динамические диаграммы; ответы на контрольные вопросы. Контрольные вопросы 1. Что такое UML? 2. Какими типами диаграмм задаются динамические модели? Содержание и оформление отчета Отчет должен содержать: титульный лист, название и цель работы; вариант задания; скриншоты результатов работы; выводы по работе. Лабораторная работа № 5 Объектно-ориентированное моделирование и построение моделей с помощью объектно-ориентированной CASE-системы (Rational Rose, Aris, Microsoft Office Visio 2007). Построение диаграммы сотрудничества. Построение диаграммы пригодности. Построение диаграммы активности. Цель работы Целью работы является изучение методологии объектно-ориентированного анализа и проектирования программных систем в среде Rational Software на этапах создания динамических моделей программной системы посредством построения диаграмм поведения с использованием пакета Rational Rose. Построение диаграммы сотрудничества. Построение диаграммы пригодности. Построение диаграммы активности 2.2. Разработка диаграммы активности Диаграмма активности иллюстрирует действия, переходы между ними, элементы выбора и линии синхронизации. В языке UML действие изображается в виде прямоугольника с закругленными углами, переходы – в виде направленных стрелок, элементы выбора – в виде ромбов, линии синхронизации – в виде горизонтальных или вертикальных линий. Пример диаграммы активности изображен на рис. 15. Рис. 15. Диаграмма активности «Поиск учебно-методических материалов» Последовательность построения диаграммы активности: 1. Щелкните правой кнопкой мыши по разделу Use Case View в списке браузера. 2. В появившемся меню выберите команду New, Activity Diagram (создать новую, диаграмма активности). В список будет добавлена новая диаграмма с именем New Diagram. 3. Введите название диаграммы (в данном случае, «Поиск УММ»). 4. Чтобы открыть диаграмму дважды щелкните по ней мышью в браузере. 5. Щелкните по кнопке Activity (действие) на панели инструментов. 6. Щелкните по диаграмме действий, чтобы поместить элемент, изображающий действие, на диаграмму. 7. Введите имя нового действия (например, «Ввод данных о пользователе»). 8. Повторите этапы 5-7 для создания остальных действий, указанных на рис. 15. 9. Щелкните по кнопке State Transition (состояние перехода) на панели инструментов. Переходы используются для изображения пути потока управления от действия к действию. 10. Щелкните по начальному действию на диаграмме и переместите стрелку перехода на последующее действие. 11. Создайте стрелки перехода для всех действий, указанных на рис. 15. Для построения элементов выбора: 1. Щелкните по кнопке Decision (элемент выбора) на панели инструментов. 2. Щелкните по диаграмме действий, чтобы поместить элемент выбора на диаграмму. 3. Щелкните по кнопке State Transition (состояние перехода) на панели инструментов. 4. Щелкните по начальному действию на диаграмме и переместите стрелку перехода на элемент выбора. 5. Создайте условные переходы от элемента выбора и назовите их (например, «Пользователь идентифицирован» и «Пользователь не идентифицирован»). 6. Повторите этапы 1-6 для задания следующего элемента выбора. Линии синхронизации используются для отображения действий процесса, выполняемых параллельно. Линии синхронизации строятся следующим образом: 1. Щелкните по кнопке Horizontal Synchronization (горизонтальная линия синхронизации) на панели инструментов. 2. Щелкните по диаграмме действий, чтобы поместить на нее линию синхронизации. 3. Щелкните по кнопке State Transition (состояние перехода) на панели инструментов, добавьте необходимые входящие и исходящие линии переходов и линии синхронизации, указанные на рис. 15. Для построения элементов выбора: 1. Щелкните по кнопке Decision (элемент выбора) на панели инструментов. 2. Щелкните по диаграмме действий, чтобы поместить элемент выбора на диаграмму. 3. Щелкните по кнопке State Transition (состояние перехода) на панели инструментов. 4. Щелкните по начальному действию на диаграмме и переместите стрелку перехода на элемент выбора. 5. Создайте условные переходы от элемента выбора и назовите их (например, «Пользователь идентифицирован» и «Пользователь не идентифицирован»). 6. Повторите этапы 1-6 для задания следующего элемента выбора. Линии синхронизации используются для отображения действий процесса, выполняемых параллельно. Линии синхронизации строятся следующим образом: 1. Щелкните по кнопке Horizontal Synchronization (горизонтальная линия синхронизации) на панели инструментов. 2. Щелкните по диаграмме действий, чтобы поместить на нее линию синхронизации. 3. Щелкните по кнопке State Transition (состояние перехода) на панели инструментов, добавьте необходимые входящие и исходящие линии переходов и линии синхронизации, указанные на рис. 15. Для явного задания участника реализации того или иного процесса на диаграмме активности используются так называемые плавательные дорожки (Swimlanes) или секции. Задание секций: 1. Щелкните по кнопке Swimlanes (плавательная дорожка) на панели инструментов. 2. Щелкните по диаграмме действий, чтобы создать на ней новую секцию. Дважды щелкните по названию секции и введите нужное имя. Для изменения размеров секции переместите ее границу с помощью мыши. Переместите все необходимые действия и переходы в секцию. |