Системный Анализ. Предметная область. Модели на UML

Tekst
Przeczytaj fragment
Oznacz jako przeczytane
Czcionka:Mniejsze АаWiększe Aa

Шаг №4. Для справочника определяем картотеки, связанные с ним (для каждого справочника)

Результаты выявления связей оформим в виде таблицы 1.2.

Таблица 1.2. Связи справочника


Для каждой картотеки создаем соответствующий класс в репозитории выбранного для моделирования CASE-инструмента. Всего следует создать 11 классов: 7 классов для событий и 4 класса для справочников. Соответствующие диаграммы классов изображены на рисунках 1.1 и 1.2.


Рис. 1.1. Диаграмма классов UML для картотек событий. Показаны атрибуты классов


рис. 1.2. диаграмма классов uml для справочников картотек. показаны атрибуты классов

Шаг №5. Отображаем (визуально) картотеки, связанные с ней на диаграмме классов UML

Создаем новую диаграмму классов5 и помещаем в ее центр класса «Заказ гостя». Согласно списку связей указываем связанные с ним классы-картотеки. После расстановки связей между классами, которые на UML называются ассоциациями, для каждого конца ассоциации расставляем «множественность».

Множественность определяется для экземпляров, т. е. в нашем случае для карточек, и указывает, сколько карточек связано с данной карточкой:

Данный «Заказ» связан:

• с одним экземпляром «Кафе» (значок «1» – ровно один);

• с одним экземпляром класса «Сотрудник» (значок «1» – ровно один) (т. е. с официантом, проводящим обслуживание);

• со многими экземплярами «Блюд» (значок «*» – ноль или много);

• с ноль или одной «Оплатой заказа» (значок «0..1»);

• с одним «Меню» (значок «1» – ровно один).


Теперь рассмотрим другую сторону (роль) ассоциаций:

• экземпляр «Кафе» связан со многими «Заказами» (значок «0..*» – ноль или много);

• экземпляр «Сотрудника» связан со многими «Заказами» (значок «0..*»);

• экземпляр «Блюда» связан со многими «Заказами» (значок «0..*»);

• «Оплата заказа» связана ровно с одним «Заказом» (значок «1» – ровно один);

• экземпляр «Меню» связан со многими «Заказами» (значок «0..*»).


Теперь указываем «поля карточек» в картотеках как атрибуты классов, существенные для учета согласно целям моделирования.

Атрибуты «Заказа клиента»: «дата-время начала обслуживания» и «дата-время завершения обслуживания» (гости ушли, освободив столик) позволяют учитывать время, когда столик («номер столика» указан в атрибуте) был занят на время данного обслуживания. Также необходимо учитывать общую «стоимость», вычисляемую по «Меню» и количеству заказанных блюд.

• Атрибуты «Сотрудника» – фамилия, имя, отчество, должность, оклад (опционально).

• Атрибуты «Кафе» – название, адрес, число столиков.

• Атрибуты «Оплаты заказа» – дата-время оплаты (стоимость не указываем, т. к. уже есть в самом «Заказе»);

• Атрибуты «Блюда» – название, тип блюда, время приготовления.


Рис. 1.3. Диаграмма классов UML для картотеки «Заказ» гостя в кафе. Показаны атрибуты классов


Для оставшихся событий «Покупка продуктов», «Списание бракованных продуктов», «Списание бракованных блюд», «Инвентаризация» и «Меню» соответствующие диаграммы классов UML приведены ниже – на рисунках 1.4—1.8.


Рис. 1.4. Диаграмма классов UML для картотеки «Закупка продуктов» в кафе. Показаны атрибуты классов участников


Рис. 1.5. Диаграмма классов UML для картотеки «Списание бракованных продуктов» в кафе


Рис. 1.6. Диаграмма классов UML для картотеки «Списание бракованных блюд» в кафе


Рис. 1.7. Диаграмма классов UML для картотеки «Инвентаризация» в кафе


Рис. 1.8. Диаграмма классов UML для картотеки «Меню»


Теперь, продолжая шаг 5, связываем справочники друг с другом, последовательно создавая диаграммы классов для картотек «Пункт питания», «Сотрудник», «Блюдо» и «Продукты».


Рис. 1.9. Диаграмма классов UML для справочников «Кафе» и «Сотрудник»


Рис. 1.10. Диаграмма классов UML для справочников «Блюдо» и «Продукты»

Шаг №6. Применяем паттерны на диаграммах-«ромашках»


Паттерн «Объект-список»

Ассоциации с множественностью «Много ко многим» могут иметь собственные свойства. Например, для связи «Заказ» – «Блюдо» (рис. 1.3) таким свойством является число заказанных экземпляров блюда. Например, если заказано два мороженых, то двойка – это не атрибут «Заказа» и не атрибут «Блюда» (рецепта), это атрибут ассоциации «много ко многим».

Согласно паттерну «Объект список» удаляем из диаграммы ассоциацию между «Заказом» и «Блюдом» и вместо нее вводим новый класс «Строка списка». Эту строку следует ввести для каждого блюда, вошедшего в «Заказ». Результат применения паттерна «Объект-список» показан на рис. 1.3.



Рис. 1.11. Диаграмма Классов «Заказ» преобразовывается по паттерну «Объект – список», который применен к ассоциации «Заказ» – «Блюдо».

«Строка заказа» связана с «Заказом» композицией (закрашенный ромбик) – это значит, что при удалении «Заказа» все его «Строки заказа» также будут удалены.


Применим паттерн «Объект список» к ассоциациям «Много ко многим» для оставшихся событий «Закупка продуктов», «Списание бракованных продуктов», «Списание бракованных блюд» и «Инвентаризация», «Меню», а также к справочнику «Блюдо» – соответствующие диаграммы классов приведены ниже, на рис. 1.12—1.16.


Рис. 1.12. Диаграмма классов «Закупка продуктов» преобразуется по паттерну «Объект – список» – сравните с рис. 1.4


Рис. 1.13. диаграмма классов «списание бракованных продуктов» преобразуется по паттерну «объект – список» – сравните с рис. 1.5


Рис. 1.14. Диаграмма классов «Списание бракованных блюд» преобразуется по паттерну «Объект – список» – сравните с рис. 1.6


Рис. 1.15. Диаграмма классов «Инвентаризация» преобразуется по паттерну «Объект – список» – сравните с рис. 1.7


Рис. 1.16. Диаграмма классов «Меню» преобразуется по паттерну «Объект – список» – сравните с рис. 1.8


Рис. 1.16. Диаграмма классов «Блюдо» преобразуется по паттерну «Объект – список» – сравните с рис. 1.10

5Диаграмма классов UML cоздается в выбранном для моделирования CASE-инструменте.
To koniec darmowego fragmentu. Czy chcesz czytać dalej?