Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 58
Текст из файла (страница 58)
6) (4) Найти все связи между двумя данными прямоугольниками. 7) (6) Имея группу выделенных объектов, найти связи, являющиеся пограничными. Если не все прямоугольники входят в состав выделения, пограничные связи будут соединять выделенные прямоугольники с невыделенными. Такие связи требуют особой обработки при операциях вырезания или перемещения. 12.7. (6) На рис. У12.3 показана новая версия диаграммы классов, где класс Соп лесг1ол (Соединение) явным образом описывает соединение связи и прямоугольника. Перепишите запросы из предыдущего упражнения по этой модели. Рис. У12.2. Неполная диаграмма классов редактора диаграмм Упражнения 251 Рис.
У12.3. Альтернативная диаграмма классов редактора диаграмм 12.8, (5) Для каких классов нужно строить диаграммы состояний? Опишите не- которые важные состояния и события. Упражнения 12.9 — 12.13 связаны между собой. Выполняйте их последовательно. В этих упражнениях рассматривается компьютеризованная система учета очков, которую вы вызвались разработать для местной школы синхронного плавания.
Командгя собираются для участия в соревнованиях, на которых дети выступают в двух видах состязаний: соло и групповых. Соло исполняется индивидуально и заключается в выполнении элементов синхронного плавания, таких как плавание на спине с вертикально поднятой ногой. В групповом выступлении участвует вся команда. Очки начисляются как за индивидуальные выступления, так и за групповые, но ваша система должна работать только с индивидуальными. На регистрации перед началом соревнований каждый участник должен указать свое имя, возраст, адрес и название команды, к которой он принадлежит. Для упрощения учета каждому участнику присваивается личный порядковый номер.
В процессе соревнований несколько человек выступают одновременно в разных секторах (углах бассейна). Их выступление оценивают судьи и секретари. Секретари быстро устают, поэтому онн часто сменяются. Несколько судей и секретарей приписываются к каждому сектору. В течение сезона каждый судья и секретарь может обслуживать несколько секторов.
Для обеспечения согласованности результатов каждое сольное выступление проводится в одном секторе с неизменным судейством. В процессе соревнований в одном секторе может быть проведено несколько сольных выступлений (упражнений). Соревнуюшиеся спортсмены делятся на группы. Каждая группа начинает выступление в своем секторе. Когда спортсмен заканчивает выступление в одном секторе, он переходит в следующий сектор для следуюшего выступления.
Когда все участники выполнят одно упражнение, сектор переключается на следующее предписанное ему упражнение. Каждый соревнующийся получает одну попытку в одном выступлении. Перед выступлением оглашается номер участника. Иногда порядок нарушается или секретари путаются в участниках, и выступления в секторе останавливаются до тех пор, пока проблема не устраняется. Каждый судья дает свою оценку выступлению, поднимая карточку с числом. Секретарь записывает показанные числа и суммирует их, отбрасывая минимальное и максимальное значения. Средняя оценка умножается на коэффициент сложности данного упражнения.
Индивидуальные и командные призы вручаются во время закрытия соревнований на основании набранных очков. Участники делятся на несколько возрастных 252 Глава 12 ° Анализ предметной области категорий, в каждой категории вручается отдельный набор призов. Индивидуальные призы вручаются на основании сольных выступлений, а командные — по сумме результатов в сольных и командных выступлениях. Система, которую вы должны разработать, будет использоваться для хранения всей информации, требуемой для планирования, регистрации и подсчета очков. В начале сезона всех участников внесут в систему, после чего будет подготовлен календарь соревнований. В частности, различные виды сольных выступлений будут распределены по соревнованиям.
Перед соревнованиями система будет использоваться для регистрации участников. Во время соревнований в нее будут заноситься очки и с ее помощью будут определяться победители. 12.9. (3) Ниже приведен список потенциальных классов для системы начисления очков. Напишите, какие из них следует исключить по каким-либо причинам, упомянутым ранее в этой главе. Обоснуйте свое мнение. Если причин для удаления несколько, укажите наиболее важную из них.
Список классов: адрес, возраст, возрастная категория, среднее количество очков, спина, карта, спортсмен, имя спортсмена, участник соревнований, вычисление среднего, заключение, соревнующийся, угол (бассейна), дата, коэффициент сложности, соревнование, сольное выступление, файл данных о членах команды, группа, индивидуум, индивидуальный приз, судья, лига, этап (эстафеты), список запланированных соревнований, соревнование, суммарный счет, номер, человек, бассейн, приз, регистрация, регистратор, судейские очки, групповые выетупления, счет, секретарь, сезон, сектор, команда, командный приз, название команды, попытка, пытаться, синхронное плавание.
12.10. (3) Подготовьте словарь данных для классов, оставшихся в модели после выполнения предыдущего упражнения. 12.11. (4) Ниже приведен список потенциальных ассоциаций и обобщений для системы подсчета очков. Выберите ассоциации и обобщения, которые следует исключить или переименовать по причинам, упомянутым в настоящей главе. Объясните свой выбор.
Если причин несколько, указывайте главную. Список ассоциаций и обобщений; сезон состоит из нескольких соревнований, участник регистрируется, участнику присваивается порядковый номер, номер объявляется, участники делятся на группы, соревнование состоит из нескольких упражнений, соревнование проводится в нескольких секторах, в каждом секторе выполняется несколько упражнений, каждому сектору приписываются несколько судей, упражнения бывают сольными и групповыми, зачитываются оценки, максимальная оценка отбрасывается, минимальная оценка отбрасывается, выступления проводятся, лига состоит из нескольких команд, команда состоит из нескольких спортсменов, попытка упражнения производится участником, попытка получает несколько оценок от судей, призы выдаются в соответствии с набранными очками.
12.12. На рис. У12А приведена неполная диаграмма классов для системы подсчета очков. Ассоциация между соревнованием и упражнением не является производной, потому что событие может быть отнесено к соревнованию до Упражнения 253 того, как ему будет назначен конкретный сектор. Покажите, каким образом можно с помоШью этой модели проследить следуюшие запросы.
Для выражения запросов используйте комбинацию ОС1. (глава 3) и псевдокода. 1) (2) Найти всех членов данной команды, 2) (6) Найти, какие упражнения проводились в данном сезоне несколько раз. 3) (6) Найти суммарное количество очков, полученных участником за дан- ное упражнение на данном соревновании. 4) (6) Найти среднее по команде и по всем упражнениям значение очков в данном сезоне.
5) (6) Найти среднее количество очков, набранных данным участником по всем упражнениям на данных соревнованиях. 6) (6) Найти среднее по команде количество очков по данному упражне- нию на данных соревнованиях. 7) (4) Найти множество всех участников каких-либо упражнений в дан- ном сезоне. 8) (7) Найти множество всех участников, которые участвовали во всех со- ревнованиях в данном сезоне. 9) (6) Найти всех судей, которые судили данное упражнение в данном сезоне. 10) (6) Найти судью, который присудил наименьшее количество очков в дан- ном соревновании.
11) (6) Найти судью, который присудил наименьшее количество очков за данное упражнение. 12) (7) Изменить диаграмму таким образом, чтобы можно было найти всех участников, зарегистрированных на какое-либо упражнение. Рис. У12.4. Неполная диаграмма классов системы подсчета очков 254 Глава 12 ° Анализ предметной области 12.13.
(5) Для каких классов требуются диаграммы состояний? Опишите некото- рые состояния и события. 12.14. (7) Отредактируйте диаграммы на рис. У12.5 — У12.8 таким образом, чтобы исключить тернарные ассоциации. В некоторых случаях вам придется превращать ассоциации в классы. На рис. У12.5 изображено отношение между классами ЕГостог (Доктор), Райепг (Пациент) и Т)агеТгте (ДатаИВремя), с которым можно столкнуться в системах, используемых клиниками, в состав персонала которых входит несколько врачей. Комбинация Т)агеТгте и Рапепг уникальна, как и ЮагеТгте и Юосгог.
На рис. У12.6 изображено отношение между классами угидепг (Студент), РгоТехгог (Профессор) и Ппгоетзйу (Университет), которое может использоваться для описания связей между студентами, слушающими лекции, и преподавателями, читающими лекции в разных университетах.
Отношение состоит в том, что студент слушает один илн несколько курсов у профессора в университете. Комбинация 5гпг7епг + Рго~еззог + (гпгоегзггу уникальна. На рисунок У12.7 изображено отношение, выражающее порядок нумерации кресел на концерте. Комбинация Сопсегг + аеас уникальна.