Главная страница
Навигация по странице:

  • Основные элементы диаграмм классов

  • Пример.

  • Документирование классов

  • Пакет (package)

  • Порядок выполнения работы Создание диаграммы Классов

  • Этапы выполнения упражнения Создание пакетов

  • Создание Главной диаграммы Классов В навигаторе моделей выберите с помощью контекстного меню создайте новую диаграмму классов ClassDiagram

  • Создание диаграммы Классов для сценария "Ввести новый заказ" с отображением всех классов

  • Объединение классов в пакеты

  • Уточнение методов и свойств классов

  • проектный практикум 7 практик. Создание диаграмм прецедентов (вариантов) использования 2


    Скачать 1.86 Mb.
    НазваниеСоздание диаграмм прецедентов (вариантов) использования 2
    Дата02.04.2023
    Размер1.86 Mb.
    Формат файлаdocx
    Имя файлапроектный практикум 7 практик.docx
    ТипЛабораторная работа
    #1032235
    страница6 из 7
    1   2   3   4   5   6   7

    Тема: Создание диаграмм классов


    Цель работы: изучение среды программного инструмента моделирования StarUML, поддерживающего UML, и приобретение навыков по созданию диаграмм классов.

    Теоретическая часть

    Диаграммы классов

    Диаграмма классов является частью логической модели системы и представляет статическую картину системы.

    Для каждой системы строится не одна, а несколько диаграмм классов: возможно, что для каждого прецедента или сценария своя. На одних показывают подмножества классов, объединенные в пакеты, и отношения между ними, на других – отображают те же подмножества, но с атрибутами и операциями классов. Для представления системы разрабатывается столько диаграмм классов, сколько потребуется.

    Основные элементы диаграмм классов

    Дадим некоторые определения и опишем основные элементы нотации диаграмм классов.

    Объект – это некоторая сущность реального мира или концептуальная(абстрактная) сущность.

    Пример. Примерами объектов могут служить дом №4по улице Садовая, сотрудник фирмы Иван Петров, ваш компьютер. Или нечто абстрактное: химическая формула, торговый заказ номер 456789, банковский счет клиента Петра Иванова.

    Объект имеет четко определенные границы и значение для системы и характеризуется состоянием, поведением и индивидуальностью.

    Состояние объекта – это одно из условий, в котором он может находиться. Состояние обычно изменяется со временем и характеризуется набором свойств, которые называются атрибутами.

    Пример. Покупатель определяется его именем, адресом, телефоном, датой рождения.

    Поведение определяет, как объект реагирует на запросы других объектов и что может делать сам объект. Поведение характеризуется операциями объекта.

    Пример. Покупатель может добавить товар в корзину, просматривать каталог, удалять товар из корзины.

    Индивидуальность означает, что каждый объект уникален, даже если его состояние идентично состоянию другого объекта.

    Пример. Объекты Ирина Петрова и Анна Седова уникальны, хотя каждый из них является покупателем магазина и имеет одинаковые поведение и состояния.

    Как правило, в системе существует множество объектов имеющих одинаковое поведение, принимающих одинаковые состояния. Например, сотрудники фирмы, которых может быть несколько десятков, и данные о которых содержатся в базе данных, имеют одинаковые атрибуты – фамилию, имя, отчество, дату рождения, должность и др. – с разными значениями этих атрибутов, а также могут иметь схожее поведение – подать заявление на отпуск или перевод в другое подразделение. Для группировки объектов используются классы.

    Класс – это описание группы объектов с общими свойствами(атрибутами), поведением (операциями), отношениями с другими объектами и семантикой.

    Каждый класс является шаблоном для создания объекта. А каждый объект – это экземпляр класса. Важно помнить, что каждый объект может быть экземпляром только одного класса

    Пример. Применительно к магазину мы можем сгруппировать сотрудников магазина, описав общий для них класс Сотрудник. Объект этого класса, например, Иван Петров, может включать в себя следующую информацию: имя, адрес, должность, размер заработной платы, кроме того этот объект может выйти в отпуск.

    В нотации UML классы и объекты изображаются в виде прямоугольников (см. рис. 1). Прямоугольник класса всегда делится на три секции (раздела), имя класса помещается в первую секцию, каждое слово в названии класса принято писать с большой буквы. Во второй и третьей секциях могут указываться атрибуты и операции класса соответственно, эти секции могут быть пустыми. Названия классов выбираются в соответствии с понятиями предметной области. Это должно быть существительное или словосочетание в единственном числе, наиболее точно характеризующее предмет. Класс должен описывать только одну сущность.



    Рисунок 1- Изображение классов и объектов
    Имя класса может быть простым, как это показано на рисунке 1, или составным (см. рис. 2). Составное имя класса состоит из самого имени класса и из имени пакета, которому принадлежит класс, разделенных двоеточием. Имя класса должно быть уникальным внутри пакета.



    Рисунок 2 - Составное имя класса
    Составное имя объекта также состоит из имени объекта и имени класса, разделенных двоеточием. Объект может быть анонимным, если неизвестно его настоящее имя. Тогда на диаграмме объект изображается с именем, которое состоит из двоеточия и имени класса, которому принадлежит объект. Если пока неизвестен класс, экземпляром которого является объект, то изображается имя объекта после которого идет двоеточие. Такой объект называется «сиротой» (см. рис. 3).



    Рисунок 3 - Именование объектов
    Пример. Класс Сотрудники объект этого класса – некоторого сотрудника - можно изобразить так, как показано на рисунке 4.



    Рисунок 4 - Класс и его объект
    Мы дали объекту класса Сотрудник имя, совпадающее с именем класса.

    Выявление классов

    Выявление классов можно начать с изучения потока событий. Имена существительные в описании этого потока дадут понять, что может являться классом. В общем случае существительное может оказаться действующим лицом, классом, атрибутом класса или выражением, не являющимся ни действующим лицом, ни классом, ни атрибутом класса.

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

    Некоторые возможные классы будут выявлены при рассмотрении трех стереотипов: сущность (entity), граница (boundary) и управление (control). Мы уже встречались со стереотипами отношений, когда говорили об отношениях на диаграммах прецедентов. Тот же принцип создания нового типа на основе уже существующего применим и для классов.

    Стереотип –это механизм, позволяющий категоризировать классы. Он используется для создания нового типа элемента, в данном случае нового типа класса.

    Например, Вы хотите выделить все экранные формы в модели. Для этого нужно создать стереотип Form (Форма).

    Стереотипы помогают лучше понять ответственности каждого класса в модели, категоризировать выполняемые ими функции. В UML для этого применяют три основных стандартных вида стереотипов классов: классы-сущности, граничные классы и управляющие классы.

    Класс-сущность содержит информацию, хранимую постоянно. Используется для моделирования данных и поведения с длинным жизненным циклом. Они могут представлять информацию о предметной области, а могут представлять элементы самой системы. Часто являясь абстракциями предметной области, они имеют наибольшее значение для пользователя, поэтому в их названиях применяются термины предметной области. Если существует проект базы данных, то можно обратиться к изучению названий таблиц, многие из них станут классами-сущностями. Обозначаются классы-сущности стереотипом <> либо специальной пиктограммой (рис. 5).



    Рисунок 5 - Обозначение классов-сущностей
    Граничными классами называются классы, расположенные на границе системы со всем остальным миром, и т.о. они обеспечивают взаимодействие между окружающей средой и внутренними элементами системы.

    Для вычисления пограничных классов необходимо исследовать диаграммы вариантов использования. Для каждого взаимодействия между актером и прецедентом нужно создать хотя бы один граничный класс. Обратите внимание, что если два действующих лица инициируют один прецедент, то они могут применять один общий пограничный класс для взаимодействия с системой. Обозначаются граничные классы именем стереотипа <> либо специальной пиктограммой (рис. 6).



    Рисунок 6 - Обозначение граничных классов
    Управляющий класс отвечает за координацию действий других классов. Они служат для моделирования последовательного поведения одного или нескольких прецедентов и координации событий, реализующих заложенное в них поведение. Обозначаются управляющие классы именем стереотипа <> либо специальной пиктограммой (рис. 7).



    Рисунок 7 - Обозначение управляющих классов
    Управляющие классы можно представить, как «исполняющие» прецедент, поэтому у каждого варианта использования обычно имеется один управляющий класс, контролирующий последовательность событий этого прецедента. Они обычно зависят от приложения.

    Управляющий класс делегирует ответственности другим классам. Сам он может получать мало сообщений, но отсылать множество. Его называют классом-менеджером. Он запускает альтернативные потоки и знает, как поступить в случае ошибки. На начальном этапе проектирования управляющие классы создаются для каждой пары актер/прецедент, в дальнейшем они могут объединяться, разделяться или исключаться.

    Документирование классов

    После того, как класс создан, информацию о нем необходимо документировать. Заметим, что документация предназначена для описания предназначения класса, а не его структуры.

    Пример. Если в нашей модели присутствует класс Сотрудник, то хорошим описанием для него будет:

    Сотрудник – это человек, работающий на фирме. Класс содержит информацию, необходимую для исполнения организацией своих обязанностей по отношению к сотруднику (начисление зарплаты, перевод на другую должность, увольнение и т.п.)

    Плохим описанием будет описание структуры класса, которая может быть и так описана с помощью атрибутов. Например, плохое описание класса Сотрудник:

    Имя, телефон, адрес, должность, зарплата.

    В StarUML документирование классов выполняется также как и описанное ранее документирование прецедентов. Нужно выделить класс, который вы хотите описать, открыть окно документирования Documentation на инспекторе модели и ввести описание класса.

    Пакеты в языке UML

    Если в нашей модели немного классов, то нам легко ими управлять, однако многие системы содержат большое количество классов, поэтому необходим механизм, позволяющий классы группировать и облегчающий их повторное использование. Таким механизмом в UML являются пакеты.

    Пакет (package) —общецелевой механизм для организации различных элементов модели в группы.

    Подпакет (subpackage) —пакет, который является составной частью другого пакета.

    Пакет в логическом представлении модели – это объединение классов или других пакетов. С помощью объединения классов в пакеты мы можем получить представление о системе на более высоком уровне. Напротив, рассматривая пакет, мы получаем более детальное представление модели.

    Объединять классы в пакеты можно как угодно, однако, существует несколько наиболее распространенных подходов.

      1. можно группировать классы по стереотипам: классы-сущности, граничные и управляющие классы.

      2. группировка классов по их функциональности: например, пакет классов, отвечающих за безопасность системы или пакет классов Работа с сотрудниками и т.п.

      3. наконец, применяют комбинацию двух указанных методов.

    В дальнейшем можно вкладывать пакеты друг в друга.

    Чаще всего пакет на диаграмме изображается в виде папки с закладкой с именем пакета

    Для того чтобы создать пакет на диаграмме, нужно открыть рабочее поле диаграммы, щелкнуть по элементу пакет Package на панели элементов слева, затем щелкнуть по рабочему полю диаграммы в том месте, где вы хотите поместить пакет. В окне редактора свойств можно задать новое имя пакета.

    Чтобы разместить классы по пакетам, используют метод перетаскивания: на навигаторе модели нужно перетащить, удерживая левую кнопку мыши, классы в соответствующие пакеты на навигаторе модели.
    Постановка задачи: Необходимо сгруппировать в пакеты классы, созданные при выполнении предыдущих работ. Затем нужно будет построить несколько диаграмм Классов и показать на них классы и пакеты системы.

    Порядок выполнения работы

    Создание диаграммы Классов

    Объедините обнаруженные классы в пакеты. Создайте диаграмму Классов для отображения пакетов, диаграммы Классов, для представления классов в каждом пакете и диаграмму Классов для представления всех классов варианта использования "Ввести новый заказ".

    Этапы выполнения упражнения Создание пакетов

    1. В обозревателе моделей щелкните правой кнопкой мыши по разделу <> и выберите Add>Package (рисунок 8).



    Рисунок 8 – Создание пакета


    1. Назовите новый пакет Сущности.

    2. Повторив шаги 1—2, создайте пакеты Границы и Управление.

    Создание Главной диаграммы Классов

    1. В навигаторе моделей выберите с помощью контекстного меню создайте новую диаграмму классов ClassDiagram, откройте ее.

    2. Перетащите пакет Сущности из браузера на диаграмму.

    3. Перетащите пакеты Границы и Управление из браузера на диаграмму. Главная диаграмма Классов должна выглядеть, как показано на рис. 9



    Рисунок 9 - Диаграмма классов в логическом представлении браузера.
    Создание диаграммы Классов для сценария "Ввести новый заказ" с отображением всех классов

    1. В ннавигаторе моделей выберите с помощью контекстного меню создайте новую диаграмму классов ClassDiagram.

    2. Назовите новую диаграмму Классов: Ввод нового заказа.

    3. Дважды щелкнув мышью на этой диаграмме в браузере, откройте ее.

    4. Перетащите из браузера все классы (Выбор_заказа,Заказ_деталей,упр_заказами, Заказ, Упр_транзакциями

    Объединение классов в пакеты

    1. В браузере перетащите класс выбор_заказа на пакет Границы.

    2. Перетащите класс заказ_деталей на пакет Границы.

    3. Перетащите классы Упр_заказами и Упр-транзакциями на пакет Управление.

    4. Перетащите класс Заказ на пакет Сущности.

    Классы и пакеты в браузере показаны на рис. 10



    Рисунок 10 - Представление пакетов и классов Добавление диаграмм Классов к каждому пакету


    1. В браузере щелкните правой кнопкой мыши на пакете Границы.

    2. В открывшемся меню выберите пункт AddDiagram>ClassDiagram.

    3. Введите имя новой диаграммы — Main (Главная).

    4. Дважды щелкнув мышью на этой диаграмме, откройте ее.

    5. Перетащите на нее из браузера классы выбор_заказа и заказ_деталей.

    6. Закройте диаграмму.

    В браузере щелкните правой кнопкой мыши на пакете Сущности.

    1. В открывшемся меню выберите пункт AddDiagram>ClassDiagram.

    2. Введите имя новой диаграммы — Main (Главная).

    3. Дважды щелкнув мышью на этой диаграмме, откройте ее.

    4. Перетащите на нее из браузера класс Заказ.

    5. Закройте диаграмму

    6. В браузере щелкните правой кнопкой мыши на пакете Управление

    7. В открывшемся меню выберите пункт AddDiagram>ClassDiagram.

    8. Введите имя новой диаграммы — Main (Главная).

    9. Дважды щелкнув мышью на этой диаграмме, откройте ее.

    10. Перетащите на нее из браузера классы Упр_заказами и Упр_транзакциями

    11. Закройте диаграмму

    Уточнение методов и свойств классов

    В этом упражнении к описаниям операций будут добавлены детали, включая параметры и типы возвращаемых значений, и определены атрибуты классов

    Постановка проблемы

    Для определения атрибутов классов был проанализирован поток событий. В результате к классу Заказ диаграммы Классов были добавлены атрибуты Номер заказа и Имя клиента. Так как в одном заказе можно указать большое количество товаров и у каждого из них имеются свои собственные данные и поведение, было решено моделировать товары как самостоятельные классы, а не как атрибуты класса Заказ.
    1   2   3   4   5   6   7


    написать администратору сайта