Файл: Задание 1 построение диаграммы классов и диаграммы объектов в нотации uml краткие теоретические сведения.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.01.2024
Просмотров: 29
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ЗАДАНИЕ № 1
ПОСТРОЕНИЕ ДИАГРАММЫ КЛАССОВ И ДИАГРАММЫ
ОБЪЕКТОВ В НОТАЦИИ UML
Краткие теоретические сведения
Диаграммы классов являются отправной точкой процесса разработки. Они помогают при анализе, позволяя аналитику общаться с клиентом в «привычных» ему терминах и стимулируя процесс выявления важных деталей в проблеме, которую требуется решить.
Класс – это категория или группа вещей, которая имеет сходные атрибуты и общие свойства.
Например, класс “Стена” описывает объекты с общими свойствами: высотой, длиной, толщиной, и т.д. При этом конкретные стены будут рассматриваться как отдельные экземпляры класса
«стена».
У каждого класса есть имя, (простое или составное, к которому спереди добавлено имя пакета, в который входит класс). Имя класса в пакете должно быть уникальным. Класс реализует один или несколько интерфейсов.
Атрибут – это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого класса.
Класс может иметь любое число атрибутов или не иметь их вовсе. В языках высокого уровня, таких, как С++, Java, атрибуты соответствуют переменным, объявленным в классе.
Атрибуты описывают перечень значений, в рамках которых указываются свойства объектов этого класса. Операция – это то, что может выполнять класс, либо то, что вы можете выполнять над данным классом.
Рис.1. Атрибуты класса
В UML имена классов чаще всего включают несколько слов.
Каждое слово в имени класса начинается с прописной буквы, пробелы между словами отсутствуют. Имена атрибутов и операций
строятся по тем же правилам, но первая буква является строчной
(например, загрузитьПрограмму)
Класс представляется прямоугольником, разделенным на три области:
верхняя часть содержит имя класса
средняя часть - атрибуты,
нижняя часть – операции
Рис.2. Список атрибутов класса
Построение на примере PowerDesigner
Рассмотрим основные возможности PowerDesigner при создании диаграммы классов:
Создание класса – с помощью инструмента Class на панели инструментов Pallete. В свойствах (Class Properties) указывается:
Вкладка General: Название класса и название в программном коде в полях Name и Code,
Вкладка Attributes - вносятся атрибуты класса. Каждый атрибут имеет свои свойства, их можно указать в свойствах атрибута (для этого нажать на введенный атрибут два раза левой кнопкой мыши – откроется форма Attribute Properties). В свойствах атрибута заполняются поля Name и Code, выбираетсятип для каждого значения атрибута (строка Data Type). Для того чтобы указать значение атрибута по умолчанию, необходимо перейти на вкладку
Detail ив поле Initial value вписать заданное значение.
Вкладка Operations – вносятся операции, которые может выполнять данный класс. Каждая операция имеет свои свойства, их можно указать в свойствах операции (для этого нажать на введенный атрибут два раза левой кнопкой мыши – откроется форма Operation
Properties). В свойствах операции заполняются поля Name и Code,
выбираетсятип возвращаемого значения (строка Return Type).
Также возможно указать параметры операции и их типы (вкладка
Parameters)
(например, загрузитьПрограмму)
Класс представляется прямоугольником, разделенным на три области:
верхняя часть содержит имя класса
средняя часть - атрибуты,
нижняя часть – операции
Рис.2. Список атрибутов класса
Построение на примере PowerDesigner
Рассмотрим основные возможности PowerDesigner при создании диаграммы классов:
Создание класса – с помощью инструмента Class на панели инструментов Pallete. В свойствах (Class Properties) указывается:
Вкладка General: Название класса и название в программном коде в полях Name и Code,
Вкладка Attributes - вносятся атрибуты класса. Каждый атрибут имеет свои свойства, их можно указать в свойствах атрибута (для этого нажать на введенный атрибут два раза левой кнопкой мыши – откроется форма Attribute Properties). В свойствах атрибута заполняются поля Name и Code, выбираетсятип для каждого значения атрибута (строка Data Type). Для того чтобы указать значение атрибута по умолчанию, необходимо перейти на вкладку
Detail ив поле Initial value вписать заданное значение.
Вкладка Operations – вносятся операции, которые может выполнять данный класс. Каждая операция имеет свои свойства, их можно указать в свойствах операции (для этого нажать на введенный атрибут два раза левой кнопкой мыши – откроется форма Operation
Properties). В свойствах операции заполняются поля Name и Code,
выбираетсятип возвращаемого значения (строка Return Type).
Также возможно указать параметры операции и их типы (вкладка
Parameters)
Если список атрибутов и/или операций слишком велик, можно уточнить информацию с помощью ключевого слова (стереотипа),
поле Stereotype.
Также дополнительную информацию можно внести в поле комментария Comment или присоединить комментарий к классу с помощью инструмента Note.
Ассоциации: если классы взаимодействуют друг с другом, то такое взаимодействие называется ассоциацией и изображается в
PowerDesigner при помощи инструмента Association. В свойствах
(Association Properties) указывается:
Вкладка General: название ассоциации и название в программном коде (поля Name и Code)
Если один класс ассоциируется с другим, каждый из них играет свою роль в этой ассоциации. Роли указываются в полях Role A (для класса А) и Role В (для класса В)
Рис.3. Взаимодействие классов
Ассоциации могут работать в разных направлениях, а также могут быть более сложными - с одним классом может ассоциироваться несколько других.
Подобно классам, ассоциация может иметь атрибуты и операции.
Для отображения класса ассоциации в PowerDesigner используется тот же инструмент Association, но соединяются не два класса а ассоциация и класс. А класс ассоциации сам может быть связан с другими классами (см. рисунок).
Кратность – количество объектов одного класса, которые могут быть связаны с определенным количеством объектов другого класса, см. рисунок (В PowerDesigner – открыть в свойствах ассоциации вкладку
Detail и установитьуказать кратность в поле Multiplicity).
Кратность может быть: 1:1, 1:m, m:1, m:m.
Рис.4. Взаимодействие нескольких классов
Класс может ассоциироваться сам с собой (рефлекторная ассоциация), см. пример на рисунке:
Рис.5. Рефлекторная ассоциация
Наследование: класс может наследовать атрибуты и операции другого класса. Наследующий класс является дочерним по отношению к родительскому, от которого он наследуется. Связь родительского и дочернего классов соответствует отношению
является видом. В PowerDesigner для изображения наследования используется инструмент Generalization.
Абстрактные классы предназначены только для использования в качестве базовых для наследования и не порождают своих объектов.
Зависимость: взаимосвязь при использовании одного класса другим называется зависимостью. Наиболее общий случай зависимости – это использование одного класса в сигнатуре операции другого класса. Для изображения зависимости применяется инструмент
Dependency. На примере ниже изображено два класса: Система и
Форма. У класса Система есть операция отобразитьФорму ().
Отображаемая системой форма зависит от того, какой экземпляр класса Форма выбрал пользователь.
Рис.6. Зависимость классов
Агрегация – взаимосвязь, при которой класс состоит из некоторого количества классов-компонентов, называется агрегацией.
Компоненты и класс, который они составляют, находятся в ассоциации часть-целое. Агрегацию можно представить в виде дерева, корнем которого является «целое», а листьями – его компоненты.
В
PowerDesigner применяется инструмент
Aggregation. Чтобы проиллюстрировать агрегацию на примере, смоделируем диаграмму меню в ресторане. В свойствах каждого класса и ассоциации необходимо указать все те поля, описание которых приведено выше.
Рис.7. Агрегация классов
Композит – это строгий тип агрегации, характеризующийся тем, что каждый элемент может принадлежать только одному целому.
Например, компоненты стола – столешница и ножки – составляют композит. Для отображения в PowerDesigner используется инструмент Composition.
Интерфейсы и реализация:
Интерфейс - это набор операций, которые задают некоторые аспекты поведения класса и представляют его для других классов..
В PowerDesigner первый вариант - добавить с помощью инструмента
Interface (свойства заполняются аналогично свойствам класса), второй вариант – добавить автоматически – нажать правой кнопкой мыши на созданный класс и в списке выбрать Create Interface (в
этом случае операции, прописанные в созданном классе, добавятся автоматически).
Взаимосвязь между классом и его интерфейсом называется отношением реализации (инструментRealization)
Пример: при использовании автомата по продаже карт экспресс оплаты, мы взаимодействуем с ним через интерфейс. Отношение панели управления и автомата по продаже карт оплаты – это реализация, а отношение человека и интерфейса ПанельУправления
– это зависимость (инструмент Dependency):
Рис.8. Взаимодействие нескольких классов
Видимость: данный термин применяется по отношению к атрибутам и операциям. Выделяют три области видимости:
Открытая – могут использовать другие классы;
Защищенная – могут использовать только наследники данного класса;
Закрытая – используются только самими классами.
В PowerDesigner видимость указывается в свойствах во вкладке
General, в поле Visibility.
Практические задания
Разработать программное обеспечение для ресторана с удобным интерфейсом. Для этого необходимо: несколько окон пользовательского интерфейса. Системе нужны пользовательские интерфейсы карманного компьютера для ввода заказа, изменения заказа, контроля состояния заказа, состояния клиента и отправки сообщений помощнику и уборщику. Шеф-повар должен иметь возможность отслеживать заказ. Каждый пользователь данной системы должен иметь возможность ответить на вопросы клиента и отследить его состояние. Необходима база данных для записи всех заказов. Каждая запись должна содержать номер столика, пункты заказа, время внесения заказа, имя официанта, статус заказа
(действителен или нет) и т.п. Должна быть подсистема обработки заказов, позволяющая передать заказ по назначению и зарегистрировать его в БД.
Таким образом, в систему необходимо включить: Интерфейс пользователя, GUI Официанта, GUI Шеф-повара, Обработчик
Взаимосвязь между классом и его интерфейсом называется отношением реализации (инструментRealization)
Пример: при использовании автомата по продаже карт экспресс оплаты, мы взаимодействуем с ним через интерфейс. Отношение панели управления и автомата по продаже карт оплаты – это реализация, а отношение человека и интерфейса ПанельУправления
– это зависимость (инструмент Dependency):
Рис.8. Взаимодействие нескольких классов
Видимость: данный термин применяется по отношению к атрибутам и операциям. Выделяют три области видимости:
Открытая – могут использовать другие классы;
Защищенная – могут использовать только наследники данного класса;
Закрытая – используются только самими классами.
В PowerDesigner видимость указывается в свойствах во вкладке
General, в поле Visibility.
Практические задания
Разработать программное обеспечение для ресторана с удобным интерфейсом. Для этого необходимо: несколько окон пользовательского интерфейса. Системе нужны пользовательские интерфейсы карманного компьютера для ввода заказа, изменения заказа, контроля состояния заказа, состояния клиента и отправки сообщений помощнику и уборщику. Шеф-повар должен иметь возможность отслеживать заказ. Каждый пользователь данной системы должен иметь возможность ответить на вопросы клиента и отследить его состояние. Необходима база данных для записи всех заказов. Каждая запись должна содержать номер столика, пункты заказа, время внесения заказа, имя официанта, статус заказа
(действителен или нет) и т.п. Должна быть подсистема обработки заказов, позволяющая передать заказ по назначению и зарегистрировать его в БД.
Таким образом, в систему необходимо включить: Интерфейс пользователя, GUI Официанта, GUI Шеф-повара, Обработчик
заказов, БД заказов. Смоделируйте диаграмму классов и добавьте операции каждому классу.
ЗАДАНИЕ № 2
ПОСТРОЕНИЕ ДИАГРАММЫ ПРЕЦЕДЕНТОВ В НОТАЦИИ
UML
Краткие теоретические сведения
Перед приобретением какого-либо продукта или системы, мы формируем список требований, которые желаем видеть в нашей покупке (например: возможности будущей системы, функции, которые она будет выполнять и т.д.), т.е. анализируем прецеденты
(use-case analysis). Такой процесс играет особенно важную роль на этапе анализа системных требований. Способ использования системы пользователями определяет проектное решение, которое будет положено в ее основу.
Прецедент - это конструкция, позволяющая описать систему с точки зрения потенциальных пользователей.
Прецедент представляет собой набор сценариев использования системы. Каждый сценарий описывает последовательность действий. Каждая последовательность действий инициируется пользователем, другой системой, аппаратным средством или в какой-либо момент времени. Сущности, инициирующие сценарии, называются исполнителями (actor).
Результат прецедента должен быть полезен исполнителю, инициировавшему этот прецедент, либо какому-то другому исполнителю.
Прецедент заставляет потенциальных пользователей думать о системе со своих позиций. Пользователям не всегда легко выразить свои требования к системе. Основная идея - привлечь пользователей к разработке системы на ранних стадиях анализа и проектирования.
Это повышает вероятность создания полезной системы, позволяет сконцентрироваться на мнении людей, а не на компьютерных понятиях, с которыми не могут работать реальные пользователи.
Лучший способ определения прецедентов - это опрос. При этом, важно выявить предусловия для инициализации прецедента и постусловия, реализуемые в результате выполнения прецедента.
Для аналитиков прецедент помогает определить способ использования системы. Для разработчиков - это полезный инструмент, предоставляющий надежную методику формирования
требований к системе с точки зрения пользователя (заказчика).
Представление модели прецедентов:
Один исполнитель инициирует прецедент, а другой (возможно, инициатор, но необязательно) - получает новое качество от его реализации. Графически модель прецедентов представляется просто: эллипс соответствует прецеденту, а упрощенная фигурка представляет исполнителя. Инициирующий исполнитель находится слева от прецедента, принимающий исполнитель - справа.
Взаимодействие исполнителя и прецедента обозначается с помощью сплошной соединительной линии.
При выполнении анализа прецедентов определяются границы системы и ее связь с окружающим миром. Исполнители обычно находятся вне системы, а прецеденты - внутри. Для обозначения границ системы используется прямоугольник, внутри которого указывается имя системы.
Исполнители, прецеденты и соединительные линии образуют
модель прецедентов.
Рис.9. Модель прецедентов
Построение в PowerDesigner
Рассмотрим построение прецедентов на примере модели автомата по продаже карт экспресс - оплаты:
Создайте диаграмму Use-Case.
Далее создайте 3 прецедента, используя инструмент Use-Case.Чтобы "сбросить" выбранный инструмент, выберите другой инструмент или нажмите на правую кнопку мыши. Чтобы изменить имя прецедента и другие свойства, нажмите два раза левой кнопкой мыши на объект. В открывшемся окне, в поле Name введите Покупка карты, а в поле Code введите название объекта, которое затем будет использоваться в программном коде (BuyCard). Остальные use-case переименуйте в соответствии с таблицей 1.
Таблица 1-Виды Use-case
Case_1
Покупка карты
BuyCard
Представление модели прецедентов:
Один исполнитель инициирует прецедент, а другой (возможно, инициатор, но необязательно) - получает новое качество от его реализации. Графически модель прецедентов представляется просто: эллипс соответствует прецеденту, а упрощенная фигурка представляет исполнителя. Инициирующий исполнитель находится слева от прецедента, принимающий исполнитель - справа.
Взаимодействие исполнителя и прецедента обозначается с помощью сплошной соединительной линии.
При выполнении анализа прецедентов определяются границы системы и ее связь с окружающим миром. Исполнители обычно находятся вне системы, а прецеденты - внутри. Для обозначения границ системы используется прямоугольник, внутри которого указывается имя системы.
Исполнители, прецеденты и соединительные линии образуют
модель прецедентов.
Рис.9. Модель прецедентов
Построение в PowerDesigner
Рассмотрим построение прецедентов на примере модели автомата по продаже карт экспресс - оплаты:
Создайте диаграмму Use-Case.
Далее создайте 3 прецедента, используя инструмент Use-Case.Чтобы "сбросить" выбранный инструмент, выберите другой инструмент или нажмите на правую кнопку мыши. Чтобы изменить имя прецедента и другие свойства, нажмите два раза левой кнопкой мыши на объект. В открывшемся окне, в поле Name введите Покупка карты, а в поле Code введите название объекта, которое затем будет использоваться в программном коде (BuyCard). Остальные use-case переименуйте в соответствии с таблицей 1.
Таблица 1-Виды Use-case
Case_1
Покупка карты
BuyCard
Case_2
Заправка автомата
Refuelling
Case_3
Сбор денег
GetMoney
Создайте 6 исполнителей, нажав на кнопку actor. Переименуйте объекты в соответствии с таблицей 2.
Таблица 2-Виды Use-case
Actor_1
Покупатель
Customer
Actor_2
Покупатель
Customer
Actor_3
Специалист по заправке
Refueller
Actor_4
Специалист по заправке
Refueller
Actor_5
Инкассатор
Collector
Actor_6
Инкассатор
Collector
Создадим взаимосвязи между объектами. Взаимосвязи могут идти в двух направлениях:
От исполнителя к прецеденту (Связь Primary actor)
От прецедента к исполнителю (Связь Secondary actor)
Создайте взаимосвязи от инициирующих исполнителей к прецедентам и от прецедентов к принимающим исполнителям с помощью инструмента Assosiation . Для этого подведите указатель к исполнителю, нажмите левую кнопку мыши и не отпуская подведите к прецеденту. Соедините объекты как показано на диаграмме:
Рис.10. Модель прецедентов
Чтобы повторно использовать шаги одного прецедента в другом, применяется включение. В нашем примере тоже можно использовать включение. Рассмотрим use-case Заправка автомата и
Сбор денег. Они оба начинаются с разблокирования и открытия автомата и заканчиваются закрытием и блокировкой. Прецедент
Проникновение внутрь включает первые два шага, а Выход наружу
- два остальных. Прецеденты Заправка автомата и Сбор денег включают в себя прецеденты Проникновение внутрь и Выход наружу.
Графически включение обозначается в виде соединительной пунктирной линии со стрелкой, указывающей на тот класс, от которого зависит другой (в PowerDesigner используется инструмент Dependency). В свойствах данного объекта необходимо в поле Stereotype указать слово <<включает>>. Модель прецедентов с включением должна выглядеть следующим образом:
Рис.11. Модель прецедентов
Можно расширить исходный (базовый) прецедент за счет добавления новых шагов. Данный тип взаимоотношений называется
расширением. Расширение может происходить только на заданных точках последовательности шагов базового прецедента. Такие места называются точками расширения.
Стереотип – позволяет создавать новые элементы UML на базе существующих. Имя стереотипа представляется в двух парах угловых скобок. Само имя стереотипа называется ключевым словом.
Концепция стереотипа полезна при использовании автоматизированных средств моделирования. Такие средства
позволяют создать «словарь» элементов, используемых в модели, - классов, прецедентов, компонентов и т.д. Словарь позволяет работать только с существующими элементами UML. А также со стереотипами, созданными на базе этих элементов. Словарь помогает управлять моделью и обеспечивает повторное использование элементов.
В UML предусмотрен расширенный набор готовых стереотипов.
Подобно включению, расширение отображается линией зависимости (пунктир со стрелкой) со стереотипом <<расширяет>>
(инструмент Dependency). Расширим прецедент "Заправка автомата": в отличие от равномерного пополнения запасов всех сортов сиропа, этот прецедент позволяет пополнять автомат с учетом спроса. Диаграмма выглядит следующим образом:
Рис.12. Модель прецедентов
Практические задания
Создайте 2 модели прецедентов, которые описывали бы работу библиотеки, причем в первой из них поиск книг осуществляется без помощи компьютера, а второй – с помощью компьютера.
В модель с использованием ПК добавьте БД книг, в которой библиотекарь сможет искать нужную книгу, смотреть, где она лежит. Помимо БД книг, добавьте БД студентов, где будет храниться информация о каждом студенте и о книгах, которые он взял и должен отдать. Новая книга, добавляется к списку уже имеющихся у студента книг не вручную, а с помощью считывания штрих кода с книги.
В UML предусмотрен расширенный набор готовых стереотипов.
Подобно включению, расширение отображается линией зависимости (пунктир со стрелкой) со стереотипом <<расширяет>>
(инструмент Dependency). Расширим прецедент "Заправка автомата": в отличие от равномерного пополнения запасов всех сортов сиропа, этот прецедент позволяет пополнять автомат с учетом спроса. Диаграмма выглядит следующим образом:
Рис.12. Модель прецедентов
Практические задания
Создайте 2 модели прецедентов, которые описывали бы работу библиотеки, причем в первой из них поиск книг осуществляется без помощи компьютера, а второй – с помощью компьютера.
В модель с использованием ПК добавьте БД книг, в которой библиотекарь сможет искать нужную книгу, смотреть, где она лежит. Помимо БД книг, добавьте БД студентов, где будет храниться информация о каждом студенте и о книгах, которые он взял и должен отдать. Новая книга, добавляется к списку уже имеющихся у студента книг не вручную, а с помощью считывания штрих кода с книги.