Файл: Объектноориентированное моделирование предметной области средствами Microsoft Visio.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 198

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Объектно-ориентированное моделирование предметной области средствами Microsoft Visio.


Формулировка задания.

1. Изучите теоретический материал, представленный ниже.

2. Создайте в пакете «Игра в баскетбол» все классы, описывающие данную предметную область.

3. Создайте в пакете «Игра в хоккей» все классы, описывающие данную предметную область.

4. Выполните задание по варианту.

5. Сохраните свою работу.
Теоретический материал.

Унифицированный язык моделирования UML. Диаграммы классов

Унифицированный язык моделирования UML – язык графического описания для объектного моделирования в области разработки программного обеспечения. UML – открытый стандарт, используемый при создании абстрактной UML-модели системы.

Диаграмма классов (Class diagram) – статическая структурная диаграмма, описывающая структуру системы, демонстрирующая классы системы, их атрибуты, методы и зависимости между классами.

Существуют разные точки зрения на построение диаграмм классов в зависимости от целей их применения:

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

  • точка зрения спецификации, при которой диаграммы классов используются для проектирования информационной системы;

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

Наследование и обобщение

Отношение обобщения (generalization) связывает классификаторы-предки (суперклассы) с их более специализированными потомками (подклассами). С помощью обобщения можно упростить описание классификатора, «собирая» его из отдельных частей, каждая из которых добавляет к классификатору черты, унаследованные от предков. Полное описание классификатора строится с помощью механизма наследования, который основан на обобщении. Обобщение и наследование позволяют указывать, какие общие черты имеет группа классификаторов, не повторяя их в каждом конкретном описании.


При объектно-ориентированном подходе такая связь называется наследованием. В UML-моделировании принят термин обобщение. Дочерний класс наследует атрибуты и операции родительского класса, который являются более общим по отношению к дочернему классу.

Иерархия наследования не ограничивается двумя уровнями: дочерний класс может выступать в роли родительского класса для другого дочернего класса.

Класс может не иметь родителя. В этом случае он называется базовым или корневым классом.

Класс также может не иметь дочернего класса, и тогда он называется листовым классом.

Если класс имеет только одного родителя, то говорят об одиночном наследовании, а если несколько – о множественном.

На диаграммах классов такой вид отношений можно визуально отобразить в виде стрелок, идущих от классов-потомков к классам-предкам (на трафарете Visio эти стрелки называются Generalization) (рис. 13):



Рис. 13 – Отношения генерализации между подклассами и суперклассами.
Вербальное описание предметной области. Эмпирический метод анализа текста для идентификации классов

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

«Цель игры – забросить мяч в корзину и получить больше очков, чем противник. Каждая команда состоит из пяти игроков: двух защитников, двух нападающих и центрового. В процессе игры баскетболист стремится перенести мяч к корзине соперника с целью забросить мяч. Мяч ведет и передает игрок. Команда должна забросить мяч до истечения времени атаки команды. Это – 24 секунды в профессиональных играх, 30 секунд – в международных и 35 секунд – в любительских. После получения мяча в течение этого времени нужно сделать бросок.

За каждое попадание в корзину команда получает два очка, если только бросок не происходил из-за пределов трехочковой линии. В последнем случае добавляется три очка. Свободный бросок оценивается в одно очко. Свободный бросок, является наказанием для команды, нарушившей правила. Если игрок неправильно сыграл против соперника,

игра останавливается, и противник получает право на бросок с линии свободного броска, а игроку начисляется штрафной балл (foul). Когда игрок набирает пять штрафных баллов, то он удаляется с площадки.

Роли игроков.

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

Размеры площадки и продолжительность игры.

Для международных игр длина площадки составляет 28 метров, а ширина – 15. В профессиональном баскетболе матч проходит в течение сорока восьми минут, разделенных на четыре двенадцатиминутных тайма. В любительских и международных играх матч длится 40 минут, разделенных на два тайма по 20 минут. Часы показывают оставшееся время».
Идентификация классов

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

Выявлены также глаголы: бросать, вести мяч, нарушать правила, передавать и отбирать мяч.

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

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

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


Рис. 14 – Концептуальная диаграмма классов для моделирования игры в баскетбол.

Ход выполнения задания 2.

    1. Создайте новую модель в Microsoft Visio, выбрав тип диаграммы UML Model Diagram.

    2. В проводнике модели задайте имя модели – «Задание 4», Пакет «Top Package» переименуйте в «Идентификация классов».

    3. В пакете «Идентификация классов» создайте пакет – «Игра в баскетбол».

    4. В пакете «Игра в баскетбол» создайте классы (рис 14).

    5. Во всех классах определите их основные свойства, а также сигнатуры операций, которые могут выполнять классы. Кроме того, необходимо в этом пакете создать диаграмму классов (Static Structure) и отобразить на ней все идентифицированные классы.

Результатом этого этапа выполнения практической работы является набор классов в пакете «Игра в баскетбол» с определенными свойствами и операциями, а также лист диаграммы классов.
Ход выполнения задания 3.

Описание игры в хоккей.

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

В хоккей играют на катке с максимальными размерами 30,5 метров в ширину и 70 метров в длину. Хоккейная площадка разделена на зоны линиями. Зона, принадлежащая команде («Своя зона») отделяется от зоны не принадлежащей команде («Свободная зона») красной линией. Площадка разделяется пополам синей линией. Таким образом, существуют две свободные зоны между красными линиями и центральной (синей) линией.

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

Вратарь – это последняя линия защиты, он задерживает шайбы после бросков противника. Каждый раз, когда он останавливает шайбу и не дает ей попасть в ворота, ему засчитывается один балл. Каждый гол приносит команде одно очко. Игра длится 60 минут, разделенных на три периода по 20 минут каждый.»

    1. В модели Microsoft Visio создайте новый пакет «Игра в хоккей», подчиненный главному пакету «Идентификация классов».

    2. Используйте исходные данные для создания классов предметной области «Игра в хоккей». Для этого в пакете создайте соответствующую диаграмму (Static Structure), отображающую идентифицированные классы. В результате должен получиться набор классов в пакете «Игра в хоккей» с определенными свойствами и сигнатурами операций, а также диаграмма классов.

    3. Проанализируйте классы из модели «Игра в баскетбол» и классы из модели «Игра в хоккей». Определите общие классы для обеих моделей, выявите абстракции.

    4. Переименуйте пакет «Идентификация классов» в «Спортивные игры».

    5. Переименуйте модель из «Задание 4» в «Идентификация классов»; переименуйте систему из «UML System 1» в «Задание 4».

    6. Создайте лист диаграммы Static Structure Diagram в пакете «Спортивные игры», вызвав контекстное меню щелчком правой кнопки мыши на папке «Спортивные игры» или с помощью команды New Static Structure Diagram. Задайте имя диаграмме «Спортивные игры».

    7. Сравнивая имена классов, перетащите мышью все общие классы из модели «Игра в баскетбол» в пакет «Спортивные игры» (рис 15). Все эти классы инкапсулируют в себе обобщенные понятия: Игра, Команда, Игрок, Площадка, ПравилоИгры и содержат их общие свойства. Такие классы не имеют конкретных экземпляров в реализации программы и называются абстрактными.




Рис. 15 – Структурная реорганизация модели в окне Model Explorer.

    1. На диаграмме классов «Игра в баскетбол» удалите с листа (не из модели!) классы, не относящиеся конкретно к игре в баскетбол и оставьте на ней только те, которые непосредственно характеризуют эту игру.

    2. Аналогичные действия проделайте с диаграммой классов «Игра в хоккей».

После всех изменений в пакетах «Игра в баскетбол» и «Игра в хоккей» должны находиться только те классы, которые относятся к соответствующей игре.

В результате должны быть созданы три пакета классов: «Спортивные игры», «Игра в баскетбол», «Игра в хоккей», в каждом из которых будет находиться статическая диаграмма классов, отображающих соответствующую предметную область. Примерное содержание пакетов «Игра в баскетбол» и «Игра в хоккей» (рис. 16).



Рис. 16 – Содержание пакетов модели после реорганизации структуры классов.
Изобразите на диаграмме «Спортивные игры» все производные классы и укажите их отношения с суперклассами в виде линий с треугольными стрелками, идущими от подкласса к суперклассу.

Результатом выполнения этого задания должно быть полное определение отношений обобщения (Generalization) между всеми классами модели (рис. 17). Все отношения между классами должны быть визуализированы на диаграммах «Спортивные игры», «Игра в баскетбол», «Игра в хоккей».

Результат выполнения задания



Рис. 17 – Результат выполнения задания

Ход выполнения задания 4.

Варианты работ:

  1. Организация и проведение соревнований.

  2. Учёт размещения продукции на складе.

  3. Учет организации перевозок автомобилей железнодорожными вагонами.

  4. Учёт продажи учебников различными торговыми точками.

  5. Учёт публикаций произведений автора.

  6. Учёт погрузочно-разгрузочных работ на участках в порту.

  7. Учёт перевозок пассажиров поездами.

  8. Учёт услуг за размещение рекламы различными рекламными агентствами.

  9. Учёт услуг ремонта технических средств.

  10. Учёт проведения сантехнических работ на участках (дома, трассы и т.д.).

  11. Производство печатных изданий в издательствах.

  12. Размещение различных видов компьютеров по аудиториям.

  13. Перевозка товаров различными видами транспортных средств.

  14. Размещение транспортных средств по местам стоянки.

  15. Учёт продажи билетными кассами пассажирских билетов.

  16. Услуги связи, предоставляемые оператором различным клиентам.

  17. Поставки комплектующих для сборки изделий.

  18. Выполнение технологических операций по ремонту транспортного средства.

  19. Изготовление игрушек мастерами.

  20. Регистрация продаж косметики различными продавцами.

  21. Учёт услуг при прохождении техосмотра автомобилями.

  22. Предоставление юридических услуг клиентам.

  23. Аренда помещений различными структурами.

  24. Учёт поквартирной оплаты коммунальных услуг в доме.

  25. Учёт операций по продаже недвижимости.

  26. Учёт выдачи туристических путёвок и оплаты общей стоимости предоставляемых по ним услуг.

  27. Учёт продаж товаров по магазинам.

  28. Инвентаризация (учёт наличия) товаров.

  29. Выплавка металла в доменной печи.

  30. Выполнение производственных нормативов бригадами.

  31. Регистрация службой социального обеспечения компенсационных выплат льготникам.

  32. Проведение реставрационных работ различных объектов.

  33. Выполнение работ по комплектации (сборке) технических средств.

  34. Учёт различных видов проката видеопродукции.

  35. Учёт лекарственных препаратов в аптеке.