Системный Анализ. Предметная область. Модели на UML. Михаил Кумсков
Читать онлайн книгу.экземпляр «Меню» связан со многими «Заказами» (значок «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.
Рис.