Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 17
Текст из файла (страница 17)
Кроме того, прослеживание позволяет проверить модель классов и устранить 74 Глава 3 ° Моделирование классов скрытые ошибки и недостатки, которые затем можно будет исправить. В состав 1]МЕ входит специальный язык, который может использоваться для прослеживания моделей: язык объектных ограничений — ОС1.. Различные конструкции модели классов позволяют точно описать сложную систему. Это демонстрирует иаш пример с системой управления окнами рабочей станции.
Как только у вас будет модель, пусть даже упрощенная, вы уже сможете проверять иа ией требования к приложению, критиковать и улучшать ее. Таблица 3.1. Ключевые понятия главы квалифицированная ассоциация ассоциация потомок метод объект перекрытие операция атрибут обобщение сигнатура суперкласс подкласс квалификатор значение конкретизация последовательность диаграмма классов наследование класс индивидуальность кратность класс ассоциации направление модель классов мультимножество значение по умолчанию нмя набора обобщений упорядочивание диаграмма объектов полюс ассоциации составляющая навигация связь полиморфизм предок Библиографические заметки Описанный в этой книге подход к моделированию классов опирается иа систему обозначений ОМТ, предложенную в работе [1лош1з-87]. Сейчас вместо иее используется УМЕ [ВоосЬ-99ЦВцшЬаойЬ-05][УМЦ. Модель классов УМЕ соответствует системе обозначений ОМТ, описанной в [1лош1з-87].
Книга [В!аЬа-98] описывает систему обозначений 1]Медля моделирования классов и уделяет особое внимание конструкциям, необходимым для работы с базами данных. Система обозначений моделей классов является одним из множества подходов, выросших из модели сущностей и отношений (епг1су-ге!айопзЬ1р — Ек) [СЬеп-76].
Эту модель пытались улучшить все последователи. Методика ЕК была успешно применена к моделированию баз данных и в результате иа ее расширения возник большой спрос. Кроме того, моделирование ЕК относится только к базам данных, а ие к программированию. Этих расширений было создано слишком много, чтобы мы могли обсуждать их в машей книге. Достойным внимания аспектом системы обозначений ОМТ и последовавшей за ней системой 1]М1 является выделение роли ассоциаций. Ассоциации, как и наследование, важны для концептуального моделирования и реализации. Идея ассоциаций впервые прозвучала в [КцшЪаойЬ-87]. Термин «отношение» в книге [КцшЬацйЬ-87] совпадает по смыслу с термином ассоциация, используемым в этой книге.
Ссылки 75 В системах обозначений, разработанных для моделирования данных, таких как ЕВ и 11)ЕГ1Х, бинарная ассоциация может порождать не более одной связи для каждой пары объектов. 1) М11 следует этому соглашению и также ограничивает бинарную ассоциацию одной связью для одной пары объектов. ()М]2 является исключением: при помоши ключевых слов (Ьай] и сзедиелсе] можно обозначить ассоциацию, которая допускает создание нескольких связей между одной парой объектов. Концепция индивидуальности объекта и ее важность для языков программирования и систем баз данных были впервые рассмотрены в [КЬозЬайап-86].
В качестве справочника по языку ОС[., входяшему в состав с)М1, можно указать [%'аппег-99]. В этой главе мы используем ОС1. для прослеживания моделей классов. В книге [КаузЫе-00) объектно-ориентированные концепции сравниваются с философией. Автор подчеркивает важность кратких имен и ясности мышления. В качестве дополнительной литературы по ()М1. можно указать работы [СЬопо!ез-03], [Готч!ег-00] и [1.аппап-02].
Мы благодарим Майкла Хонолза за пример на рис. 3.10 и 3.11, иллюстрируюший, что каждая ассоциация может порождать лишь одну связь между двумя объектами (за исключением случаев мультимножества и последовательности). Ссылки [В!аЬа-98) М!сЬае! В1аЬа апс! ЪЧ!111ав Ргевег!аш. ОЬ]есс-Опепсес! Мог!е1!пй апс! 1)ез!8п (ог ОасаЪазе Арр!кабопз. 1)ррег 5асЫ!е В1чег, Х]: Ргепске На!1, 1998. [ВоосЬ-99] Сгаг!у ВоосЬ, )авез ВивЬаи8Ь, апг[ 1чаг ]асоЬзоп. ТЬе ()п!1!ес! Мог)е1!пй ).апйиайе 1!зег СиЫе.
Возсоп; АгЫ!зоп-%ез!еу, 1999. [СЬеп-76] Р.Р.5. СЬеп. ТЬе Епс1су-йе!ас!опзЫр воде! — союагг[ а ип!1!ес! чье и о1 дага. АСМ Тгапзассюпз оп 1)асаЬазе 5узсегпз 1, 1 (МагсЬ 1976), 9-36. [СЬопо!ез-03] МкЬае! ]еззе СЬопо1ез апс! ]авез А. 5сЬагг!с. !)М1.2 (ог 1)ивв!ез. Хеи Уаттс Ъ'11еу, 2003. [Рочч)ег-00] МагС!п Гою1ег. СМ1. ПзС111ед, 5есопд Ег[!С!оп. Возгоп: АдйзопЪЧез!еу, 2000. [КЬозЬайап-86] 5.Х.
КЬозЬайап апс) С.Р. Соре1апг!. ОЪ]есс Ыепйсу. ООР51А'86 аз АСМ 51СР1.АХ 21, 11 (ХочегпЬег 1986), 406-416. [1.агвап-02) Сга!8 1.аппап. Арр!у!пй 1!М]. апс1 Рассегпз: Ап 1псгос1иссюп со ОЬ]есс-Ог!епсес] Апа!уяз апг) Вез!8п апд сЬе 1)п!1!ед Ргосеяь 1)ррег 5асЫ!е В!чег, Х]: Ргепбсе На!1, 2002. [1.оов!з-87] Магу Е5.
1.оопцз, АзЬМп Ч. 5Ьа1ц апс) ]авез Е. ВшпЬаийЬ. Ап оЬ]есс вос!е1!пй сесЬп!Чие сог сопсерсиа! с!ез!8п, Еигореап Соп(егепсе оп ОЬ]ессОпепсес1 Ргойгавв!пй, Рапз, Ргапсе, ]иле 15-17, 1987, риы!зЬес[ аз 1.ессиге ХоСез в Соврисег 5с!епсе, 276, 5рппйег-Чег!ай, 192-202. [Вауз!сне-00] Веге)с Вауз!сне апс1 Сегагс1 СаврЬе!1. Ап Аг!згоге1!ап ипоегзгапи!пй о! оЬ]есс-ог!евсей ргойгавв!пй. ООР51.А'00 аз АСМ 5!СР).АХ 35, 10 (ОссоЬег 2000), 337-353. [ВивЬаийЬ-87] ]авез Е.
ВивЬаийЬ. Ве!ас!опз аз зевапск сопзсгиссз ш ап оЬ]ессопепсег[! апйиайе. О ОР51 А'87 аз АСМ 5!С Р[.АХ 22, 12 (1)есевЬег 1987), 466-481. 7б Глава 3 е Моделирование классов ]КшпЪапКЬ-05] ]ашез КшпЪапКЬ, 1таг ]асоЪзоп, Стаду ВоосЬ. ТЬе Бп!11ег] Мог1е!!пя 1.апйпайе Ке(егепсе Маппа1, Зесопс! Ес!й1оп. Возгоп; Аббйзоп-Жез!еу, 2005. [ПМЕ] тчтчтг.пш1.огй ]Юагшег-99],]оз Жагшег апс1 Аппейе К1ерре. ТЬе ОЪ]ест Сопзггашс 1апйоайе. Возтоп: А<И!зов-'1йгез!еу, 1999. Упражнения 3.1. (3) Превратите диаграмму объектов с рис. У3.1 в диаграмму классов.
паев="Ргапсе" паве- Вра~п" паям="Ве!яюгп Рис. У3.1. Диаграмма объектов 3.2. (5) Превратите диаграмму объектов с рис. У3.2 в диаграмму классов. Объясните указанные вами значения кратности. Каждая точка характеризуется двумя координатами: х, у. Какое минимальное количество точек позволяет построить многоугольник? Имеет ли значение, может ли точка принадлежать сразу двум многоугольникам или нет? Ответ должен учитывать факт упорядоченности точек. Рис. У3.2.
Диаграмма объектов для многоугольника, являющегося квадратом 3.3. (5) По построенной вами диаграмме классов из упражнения 3.2 подготовьте диаграмму объектов для двух треугольников с одной обшей стороной. Учитывайте одно из следующих условий: 1) Точка принадлежит ровно одному многоугольнику. 2) Точка принадлежит одному или нескольким многоугольникам. ЗА. (5) Превратите диаграмму объектов с рис. УЗ.З в диаграмму классов.
Каким образом ваша диаграмма отражает факт упорядоченности точек. Предположите, что точка может принадлежать не более чем одному многоугольнику. 3.5. (2) Подготовьте письменное описание диаграмм классов из упражне- ний 3.2 и 3.4. упражнения 77 3.6. (6) Подготовьте диаграмму классов по диаграмме объектов с рис. У3.4.
Рис. УЗ.З. Диаграмма объектов для многоугольника, являющегося квадратом Ма1е Рис УЗ.4. Диаграмма объектов, на которой изображена часть вашего генеалогического древа 3.7. (5) Подготовьте диаграмму классов по диаграмме объектов с рис. У3.5. В данном документе имеется 4 страницы. На первой странице отображается красная точка и желтый квадрат.
На второй странице нарисована линия и эллипс. На последних двух страницах изображены дуга, окружность и прямоугольник. При построении диаграммы следует использовать по крайней мере одно обобщение. 3.8. (4) На рис. У3.6 изображена неполная диаграмма классов системы подачи воздуха. Кратность не указана. Укажите кратность. Объясните, каким образом значения кратности могут зависеть от вашего восприятия мира.
3.9. (3) Укажите недостающие имена ассоциаций на рис. У3.6. 3.10. (3) Укажите имена полюсов ассоциаций на рис. У3.6. Имена должны иметь смысл и отличаться от имен классов. Вы должны добавить по меньшей ме- ре шесть имен. 78 Глава 3 ° Моделирование классов Рис. УЗ.Б. Диаграмма обьектов для документа с геометрическими фигурами Рис. УЗ.6. Неполная диаграмма классов системы подачи воздуха 3.11. (2) Добавьте на диаграмму классов рис.
У3.6 следующие операции: Ьеаг (нагреть), л(ге (нанять), ) (ге (уволить), гегие1 (заправить), гезетое (зарезервировать), с!еап (очистить), ое-1се (убрать лед), га(ге оо'(взлететь), 1аЫ (приземлиться), гера(г (чинить), сапсе1 (отменять), ое1ау (откладывать). Операция может быть добавлена в несколько классов. 3.12.
(6) Подготовьте диаграмму объектов для вашей воображаемой поездки в Лондон на прошлых выходных. На этой диаграмме должен присутствовать по крайней мере один экземпляр каждого класса. К счастью, вам удалось взять билет на прямой рейс. С вами был друг, но он решил остаться и до сих пор упражнения У9 живет в Лондоне.
Пилотом на обоих рейсах был капитан Джонсон. У вас были разные места, но вы заметили, что самолет был тот же самый (у него была вмятина в хвостовой части). Неизвестные значения укажите знаком «? э. 3.13. Подготовьте диаграмму классов для каждой группы классов. Добавьте на каждую диаграмму не менее 10 отношений (ассоциаций и обобщений). При необходимости используйте имена ассоциаций и полюсов.
Используйте также квалифицированные ассоциации и указывайте кратность. Показывать атрибуты и операции не нужно. При подготовке диаграмм вы можете добавлять дополнительные классы. Не забудьте прокомментировать диаграммы. 1) (6) школа, детская площадка, директор, школьный совет, класс, книга, студент, учитель, кафетерий, комната отдыха, компьютер, парта, стул, линейка, дверь, качели 2) (4) автомобиль, двигатель, колесо, тормоз, тормозной огонь, дверь, аккумулятор, глушитель, выводящая труба глушителя 3) (4) замок, ров, подъемный мост, башня, призрак, лестница, подземелье, этаж, коридор, комната, окно, камень, лорд, леди, кухарка 4) (8) выражение, константа, переменная, функция, список аргументов, оператор отношения, член, множитель, арифметический оператор, оператор, компьютерная программа 5) (6) файловая система, файл, А8СП-файл, двоичный файл, файл-каталог, диск, привод, дорожка, сектор 6) (4) газовая печь, вентилятор, двигатель вентилятора, комнатный терморегулятор, терморегулятор печи, увлажнитель, датчик влажности, регулятор подачи газа, регулятор вентилятора, клапан для теплого воздуха 7) (7) шахматная фигура, горизонталь, вертикаль, поле, доска, ход, дерево ходов 8) (4) сточная труба, холодильник, морозильник, стол, лампа, выключатель, окно, дымовая сигнализация, охранная сигнализация,шкаф, хлеб, сыр, лед, дверь, кухня 3.14.
(4) Добавьте по крайней мере 10 атрибутов и по крайней мере 5 методов на каждую из диаграмм классов, созданных в процессе выполнения предыдущего упражнения. 3.15. (6) На рис. У3.7 изображена часть диаграммы классов компьютерной программы, предназначенной для игры в несколько карточных игр. Колода (Меся), карты на руках (Ьагк!), прикуп (г(гпш р!!е) и снос (г(Ьсап! р!!е)— множества карт. Исходное количество карт на руках зависит от типа игры.