[ДОМАШНЕЕ ЗАДАНИЕ 1.03] Практика моделирования — диаграмма классов
Это домашнее задание к занятию, на котором вы начали знакомиться с основами моделирования.
Задание
Для того чтобы потренироваться в моделировании будет необходимо найти интересную лично для вас задачу. При этом очень желательно, чтобы предметная область позволяла выделить хотя бы 3-4 класса и 2-3 связи между ними. Нет большого смысла рисовать диаграмму, если у вас есть только один класс :)
Вы можете:
- Продолжить работу над задачей, ТЗ (техническое задание) для которой вы писали на прошлом занятии.
- Выбрать любую подходящую и понравившуюся задачу из рассмотренных другими студентами в домашней работе к предыдущему занятию.
- Взять задачу из предложенных инструктором.
Если вы хотите как следует попрактиковаться, то рекомендую выбрать не одну, а 2-3 разных задачи, причем желательно, чтобы хотя бы одна из них была из области, с которой вы раньше не сталкивались.
Для выбранной задачи сделайте следующее:
- Найдите группы объектов, обладающих одними и теми же свойствами, то есть определитесь с тем, какие вам необходимы классы для описания предметной области.
- Для каждого класса выпишите все свойства, необходимые для решения задачи.
- Посмотрите, нет ли у вас объектов, которые относятся сразу к нескольким классам. Если есть, то нельзя ли упростить модель, используя наследование?
- Разберитесь какие ассоциации существуют между классами. Что они обозначают? Какова их кратность?
- Возьмите листок бумаги и карандаш и нарисуйте диаграмму классов для вашей модели. Отобразите на ней классы, их свойства и связи между ними.
Если не нашли задачу
1.
Представьте, что вы фермер и выращиваете зерновые культуры (пшеницу, ячмень, гречиху). Вы арендуете земельные паи у местных жителей и платите фиксированную сумму в год за гектар или процент от стоимости урожая (по договоренности, с каждым по-разному). Для каждой культуры вам известны: закупочные цены, урожайность с гектара и затраты на обработку земли. Примеры задач: расчет рентабельности обработки каждого пая, обеспечение севооборота, выплата арендной платы владельцам паев (ради интереса пусть будет путем перевода на банковскую карту).
2.
Вы работаете в школе завучем. Вам необходимо составлять расписание уроков, учитывая запросы учителей (никто не хочет 1 и 5 урок, всем подавай подряд) и доступность и специализацию классов (физику не стоит вести в спортзале).
3.
Вы решили написать свою программу для управления роботом-пылесосом. Необходимо обеспечить уборку каждой комнаты в квартире по заданному графику. Например, на кухне желательно убираться дважды в день, в гостиной ежедневно, а в комнате для гостей - по требованию. Учтите, что для работы роботу необходимо знать не только геометрию комнат и как передвигаться между ними, но и расположение предметов в помещениях, а также место, где находится его зарядное устройство.
Сдача работы
Результаты вашей работы добавьте в комментарий к этому посту или, как вариант, красиво оформите и выложите в своем блоге, а в коммент тогда достаточно вставить ссылку на ваш пост.
Для облегчения процесса знакомства с работами друга-друга и последующего голосования под этим постом желательно воздержаться от других комментариев, кроме решений домашних работ и вопросов, связанных с их выполнением. Все вопросы по материалу занятия, пожалуйста, задавайте тут.
Итоги по выбору лучшей домашней работы будут подводиться в понедельник, 18 сентября, после 10 часов утра по МСК.
Готовы? Поехали!
Желаю успеха,
@wealthycat (Валерий), инструктор курса @sc-programming