Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 18
Текст из файла (страница 18)
Каждая карта характеризуется мастью (зпй) и старшинством (гап1с). Добавьте на диаграмму следующие операции: «(!яз(пу (открыть), зйиЯ7е (перегасовать), г(еа! (сдать)„!тГвд!ие (инициализировать), зогг (сортировать), ГорО(Р!!е (верх колоды), Ьоггот07РНе (низ колоды), тзегг (вставить), г(таю (брать) 80 Глава 3 ° Моделирование классов и ЙзсаггГ (сносить). Некоторые операции могут входить не в один класс, а в несколько. Для каждого класса, в котором есть операции, укажите их аргументы и поведение для экземпляра класса. Рис. У3.7.
Часть диаграммы классов программы для игры в карты 3.16. (5) На рис. У3.8 приведена часть диаграммы классов компьютерной системы верстки газет. Система предназначена для работы с газетными страницами, на которых могут располагаться, помимо всего прочего, колонки текста. Пользователь может изменять ширину и длину колонки, перемещать ее по странице или переносить с одной страницы на другую. В нашем примере одна колонка может располагаться только на одной странице. Рис. УЗ.З. Часть диаграммы классов системы компьютерной верстки Измените диаграмму классов таким образом, чтобы одна колонка могла размещаться одновременно на нескольких страницах. Если пользователь изменяет текст на одной странице, изменения должны автоматически проявляться и на других страницах.
Координаты х и у должны стать атрибутами ассоциации. 3.17. (6) На рис. У3.9 изображена диаграмма классов, которая может быть использована для разработки системы, упрошаюшей планирование расписания и подсчет очков для соревнований, в которых выступление спортсменов оценивается судьями (например, гимнастика, прыжки в воду и фигурное катание).
Соревнования проводятся по нескольким дисциплинам, и каждый спортсмен может выступать в нескольких из них. По каждой дисциплине судейство осуществляется несколькими судьями, которые субъективно оценивают выступления спортсменов по данной конкретной дисциплине. Судья оценивает выступление каждого спортсмена. В некоторых случаях судья может осуществлять судейство по нескольким дисциплинам, Упражнения 81 Спортсмены имеют несколько попыток. Попытка оценивается судейским комитетом по данной дисциплине.
Затем подсчитывается суммарный результат спортсмена по всем попыткам. Вам необходимо указать на диаграмме классов значения кратности. Рис. У3.9. Часть диаграммы классов системы учета очков 3.18. (3) Добавьте на рис. У3.9 следующие атрибуты: адрес, возраст, дата, коэффициент сложности, баллы, имя. Некоторые атрибуты могут быть добавлены в несколько классов. 3.19.
(3) Добавьте на рис. У3.9 ассоциацию, которая сделала бы возможным определение списка дисциплин, в которых планирует принимать участие конкретный спортсмен, до того, как он в них выступит. 3.20. (6) Создайте модель классов для описания неориентированных графов. Не- ориентированный граф состоит из множества вершин и множества дуг. Дуга соединяет между собой пару вершин. Модель должна описывать только структуру графа (соединения между вершинами) и не должна включать сведения о размещении вершин и дуг.
Пример неориентированного графа показан на рис. У3.10. ч2 Рис. УЗ.ХО. Неориеитироеаиный граф 3.21. (4) Нарисуйте диаграмму объектов для рис. У3.10. (Замечание для преподавателя: может быть, студентам придется дать наш ответ для упражнения 3.20.) 3.22. (5) Расширьте диаграмму классов, получившуюся в упражнении 3.20, добавив в нее сведения о расположении вершин графа и толшине и цвете дуг. Добавьте также названия вершин и дуг.
(Замечание для преподавателя: может быть, студентам придется дать наш ответ для упражнения 3.20.) 82 Глава 3 ° Моделирование классов ч2 Рис. У3.11. Ориентированный граф 3.24. (4) Нарисуйте диаграмму объектов для рис. У3.11. (Замечание для преподавателя: может быть, студентам придется дать наш ответ для упражнения 3.23.) 3.25. (7) Атрибуты некоторых классов на рис. У3.12 на самом деле представляют собой ссылки на другие классы. Их следовало бы заменить ассоциациями. Работодателями человека могут выступать до трех компаний.
У каждого человека есть свой идентификатор. Идентификатор также присваивается автомобилю. Автомобили могут принадлежать людям, компаниям и банкам. Идентификатор владельца ссылается на идентификатор человека, компании или банка, которому принадлежит машина. Для покупки машины можно взять ссуду. Упаковывать ссылки на объекты внутри других объектов — зто неправильный подход к конструированию модели. Создайте диаграмму классов без идентификаторов, в которой использовались бы ассоциации и обобщения. Постарайтесь указать на ней возможные значения кратности.
Возможно, вам придется добавить несколько своих собственных классов. Сопзрапу Вала пате сотрапуца папзе Ьап60 Рис. У3.12. Классы с атрибутами-ссылками 3.26. (4) Когда один и тот же объект должен идентифицироваться несколькими независимыми системами, это создает определенные проблемы. Предположим, что министерство автомобильной промышленности, страховая 3.23. (7) Создайте модель классов для описания ориентированных графов. Ориентированный граф отличается от неориентированного тем, что его дуги имеют направления.
На рис. У3.11 показан пример ориентированного графа. Упражнения 83 компания, банк и полиция хотят идентифицировать конкретный автомобиль. Обсудите достоинства и недостатки следующих методов идентификации: 1) идентификация по владельцу; 2) идентификация по атрибутам (производитель, модель, год); 3) идентификация по серийному номеру, который присваивается автомобилю производителем; 4) идентификация по внутренним номерам, используемым в каждой из независимых систем. 3.27.
(7) Разработайте модель классов, которая могла бы быть использована для устранения неполадок в 4-тактовом двигателе газонокосилки. Представьте эту модель на трех диаграммах, по одной для каждого из следующих трех абзацев. В четырехтактном двигателе движушей силой является сгорание смеси воздуха с бензином, находящейся под давлением поршня. Поршень прикреплен к коленчатому валу шатуном.
При врашении коленчатого вала поршень перемещается внутри цилиндра вверх и вниз. Когда поршень опускается, открывается впускной клапан и поршень затягивает рабочую смесь в цилиндр. В самой нижней точке хода поршня впускной клапан закрывается. Двигаясь вверх, поршень сжимает и нагревает смесь. Манжета прижимается к стенкам цилиндра, обеспечивая уплотнение, необходимое для сжатия смеси, и смазывая стенки цилиндра маслом.
В верхней точке свеча зажигания дает электрическую искру, которая детонирует смесь. Расширяющиеся газы создают движущую силу, толкая поршень вниз. В нижней точке открывается выпускной клапан. При следующем подъеме поршня выхлопные газы выталкиваются из цилиндра. Топливо смешивается с воздухом в карбюраторе. Пыль и грязь, которые могли бы вызвать преждевременный износ двигателя, задерживаются воздушным фильтром. Оптимальное соотношение топлива и воздуха регулируется винтами. Дроссельная заслонка управляет количеством смеси, подаваемым в цилиндр.
Дроссельная заслонка соединена с педалью газа в салоне машины, а также с регулятором хода, который представляет собой механическое устройство, стабилизируюшее скорость вращения двигателя при меняющейся механической нагрузке. Впускной и выхлопной клапаны удерживаются в закрытом состоянии пружинами, а в нужный момент открываются распределительным (кулачковым) валом, который соединен с коленчатым валом через систему шестерен. Электрическая искра создается магнитом, катушкой, конденсатором и нормально-закрытым реле, которое называется прерыватель.
Первичная обмотка низкого напряжения соединена с прерывателем. Вторичная обмотка с высоким напряжением соединена со свечой зажигания. Магнит устанавливается на маховике. Вращаясь около катушки, он наводит ток в замкнутой первичной обмотке. Прерыватель открывается в нужный момент под Глава 3 ° Моделирование классов действием кулачка, укрепленного на коленчатом вале.
Ток в первичной обмотке перестает течь,из-за чего во вторичной обмотке возникает высоковольтный импульс. 3.28. (6) Подготовьте диаграмму классов для задачи об обедающих философах Условие задачи таково: пять философов сидят за круглым столом, на котором лежат пять вилок. Каждый философ может дотянуться до двух вилок (по одной с каждой стороны).
Каждая вилка может быть взята одним из двух философов. Вилка может либо лежать на столе, либо находиться в руке у философа. Философ может есть только двумя вилками. 3.29. (7) Ханойские башни — задача, широко используемая для обучения про граммированию с использованием рекурсии. Задача состоит в том, чтобы перенести все диски с одного из трех стержней на другой, используя промежуточный третий стержень. Все диски разного размера. Со стержня можно снять верхний диск и надеть его на другой стержень при условии, что диск большего размера не будет лежать на диске меньшего размера. Алгоритм определения последовательности ходов зависит от структуры диаграммы классов, которая кладется в основу программы.