Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 59
Текст из файла (страница 59)
Рис. У12.8 выражает связность направленного графа. Каждая дуга направленного графа соединяет ровно две вершины в определенном порядке. Конкретную пару вершин может соединять несколько дуг. Атрибут Ег78е (Дуга) является уникальным для отношения. В каждом случае вы должны постараться как можно точнее передать суть и сравнить достоинства и недостатки исходной н конечной моделей.
Рис 12.5. Тернарная ассоциация 0остог, Рабепс н 0асеТяпе Рис. 12.6. Тернарная ассоциация 51цделс, Рго1еззог н 0лгхегясу Рис. 12.7. Тернарная ассоциация 5еаг, Регзоп н Сопсегт упражнения 255 ех епех Рис. 12.8. Тернарная ассоциация для направленного графа 12.15. (9) На рис. У12.9 приведены требования к системе управления документами. Исходный вариант модели приведен на рис. У12.10. Обратите внимание на недостатки модели. Оече1ор войчгаге 1ог гпапад1пд ргогеввюпа! гесогбв о! рарегв, Ьоойз, 1оцгпаГз, гю1ев, апб согпри!ег йгез.
тье вумегп гсов! ье аые !о гесогб аогьогв о1 риы1впеб чгогйз 1п гье арргорпа!е о!бег, па!ее оГ чгобг, ба!е о! роЫгсааоп, роЬйвпег, рцЬйзпег сйу, ап аЬз!гас!, аз ией ав а согпгпеп!. Тйе зойчгаге гсов! Ье аЫе !о дгоор риЫЫЬеб вгойог 1гйо чапоов са!одолев Ша! аге беапеб Ьу Гйе овег !о 1асййа!е веагсй1пд. Тпе овег вов! Ье аЫе !о авз1дп а риа!йу 1пб1са!ог о! !Ье регсючеб ча!ое о! еасй еобс Оп! у воп!е оГ Гйе рарегв 1п еасп !евое о! а )оцгпа! гпау Ье о1 1и!егез!. й иоою аио Ьа Ье1рйы !о Ье аЫе !о вес!юпв ог ечеп 1пбгибоа! радев о! а иобс Рис. У12.9.
Требования к системе управления документами Рис. У12.10. Иогодная модель системы управления документами о Подклассы отличаются друг от друга не слишком сильно. Набросок статьи — это документ или заметка? Каким образом мы должны работать с документом, который одновременно является файлом и лежит в папке? Каким образом следует представить сведения о слайдах для презентаций? о Мы хотим иметь возможность обрабатывать стандартные комментарии (применимые ко множеству документов и выбираемые из возможных вариантов) и пользовательские комментарии (применяемые к одному документу и вводимые пользователем вручную).
о Мы должны иметь возможность комментировать пронумерованную страницу без наличия разделов. 256 Глава 12 ° Анализ предметной области Усовершенствуйте модель, сделав ее более абстрактной. (Совет: вы должны сформулировать универсальные классы, обозначающие размешение, свойства документа и комментарии. Структуру документа можно адекватно представить иерархией.) Упражнения 12.16 — 12.19 связаны между собой. Выполняйте их последовательно. Ниже приведена предварительная спецификация программы-планировщика.
Программа-планировщик должна обеспечивать следуюшие функции: устраивать совешания, планировать встречи, планировать задачи, отслеживать выходные дни, праздники и отпуска. Планировщик работает в сети, доступ к которой имеет множество пользователей. Каждый пользователь может иметь свое расписание. Расписание содержит множество записей. Большинство записей принадлежат только одному расписанию, однако запись о совещании может одновременно присутствовать в нескольких расписаниях. Записи бывают четырех типов: совещания, встречи, задачи и праздники.
Совешания и встречи занимают не более одного дня и характеризуются временем начала и временем окончания. Задачи и выходные могут тянуться несколько дней и характеризуются датами начала и окончания. Любая запись может циклически повторяться. Информация о повторе включает частоту повторения, дату начала и дату окончания. 12.16. (3) Ниже приведен список потенциальных классов. Исключите из него лишние классы по причинам, описанным в этой главе. Обоснуйте свой выбор. Если причин несколько, указывайте самую главную.
Список классов: программа-планировщик, функция, совещание, встреча, задача, выходной, отпуск, планировщик, сеть, пользователь, расписание, запись, запись о совешании, день, время начала, время окончания, дата начала, дата окончания, информация о повторении. 12.17. (3) Подготовьте словарь данных для оставшихся после предыдущего упражнения классов. 12.18. (4) Ниже приведен список потенциальных ассоциаций и обобщений для программы-планировщика. Подготовьте список ассоциаций и обобщений, которые нужно исключить или переименовать по любой из причин, указанных в этой главе.
Объясните свой выбор. Если причин несколько, приводите основную. Потенциальные ассоциации и обобщения: о программа-планировщик поддерживает следующие функции; о планировщик работает в сети, доступ к которой имеет множество пользователей; о пользователь может иметь расписание; о расписание содержит множество записей; в записи принадлежат одному расписанию; о запись о совешании может присутствовать в нескольких расписаниях; упражнения 257 я совещания и встречи занимают не более одного дня и характеризуются временем начала и временем окончания: я задачи и выходные могут занимать несколько дней и характеризуются датами начала и окончания.
12.19. (5) Постройте модель классов программы-планировщика. Упражнения 12.20 — 12.23 связаны между собой. Выполняйте их последовательно, Ниже приведены требования к совещаниям, расширяющие модель программы-планировщика из предыдущих упражнений. Программа-планировщик способствует проведению совещаний. Когда пользователь (председатель) организует совещание, программа помещает запись о нем в расписание каждого из приглашенных сотрудников. При помощи планировщика председатель резервирует помещение для совещания, указывает участников и подбирает время, когда все они свободны. Председатель может указывать, является ли присутствие на совещании обязательным или желательным для каждого конкретного участника.
Система отслеживает статус принятия приглашения для каждого из участников (согласился ли он участвовать в совещании). Планировщик занимается уведомлением о совещании. В процессе организации совещания планировщик рассылает приглашения всем участникалк которые могут просматривать информацию о совещании. Каждый приглашенный может принять или отказаться, а также отменить принятие приглашения. Система обеспечивает уведомление участников в случае изменения даты или времени совещания, а также в случае его отмены.
12.20. (3) Ниже приведен список потенциальных классов. Подготовьте список классов, которые должны быть исключены из модели по причинам, указанным в этой главе. Объясните свой выбор. Если причин несколько, приводите основную. Потенциальные классы: программа-планировщик, совещание, пользователь, председатель, программа, запись о совещании, расписание, участник, планировщик, помещение, время, все, присутствие, статус, уведомление о совещании, приглашение, информация о совещании, приглашенный, уведомление. 12.21. (3) Подготовьте словарь данных для классов, оставшихся после выполнения предыдущего упражнения.
12.22. (4) Ниже приведен список потенциальных ассоциаций и обобщений. Подготовьте список ассоциаций и обобщений, которые нужно исключить или переименовать по любой из причин, указанных в этой главе. Объясните свой выбор. Если причин несколько, приводите основную. Потенциальные ассоциации и обобщения: ь программа-планировщик способствует проведению совещаний; я пользователь (председатель) организует совещание; я программа помещает запись о совещании в расписание каждого участника; ь с помощью планировщика председатель резервирует помещение, выбирает участников и подбирает время, когда все они свободны; 9 Зак 699 258 Глава 12 ° Анализ предметной области о председатель может указывать, является ли присутствие на совещании обязательным или желательным для каждого конкретного участника; о система отслеживает статус принятия приглашения для каждого из участников; ь планировщик занимается уведомлением о совещании; я планировгцик рассылает приглашения всем участникам, которые могут просматривать информацию о совещании; ь система обеспечивает уведомление участников в случае изменения даты или времени совещания, а также в случае его отмены.
12.23. (7) Сконструируйте модель классов для расширения программы-планировщика. Ваш ответ должен решать задачу из упражнения 12.19. В нашей модели, описанной в ответе к упражнению 12.19, невозможно было определить, какому пользователю принадлежит некоторая запись. (Совет: ассоциации между председателем и участником из расширенных требований следует согласовать с ассоциацией между классами ЕслеЫи1е и Ептгу из требований упражнений 12.16 — 12.19).
Анализ приложения В этой главе, завершающей рассказ об этапе анализа, рассмотрены вопросы, связанные с добавлением основных артефактов приложения в модель предметной области из предыдушей главы. Эти артефакты исследуются на этапе анализа, потому что они важны для приложения, видимы пользователям и должны быть одобрены ими.
Вообще говоря, классы приложения не обязаны присутствовать в предметной области, но их можно получить из вариантов использования. 13.1. Модель взаимодействия приложения Большинство моделей предметной области являются статическими. Операции в этих моделях не отражаются, потому что предметная область как целое обычно ничего не выполняет. Суть моделирования предметной области состоит в том, чтобы охватить внутренние концепции. Завершив разработку модели предметной области, мы переходим к рассмотрению взаимодействия. Моделирование взаимодействия следует начинать с определения внешней границы системы. Затем следует выделить варианты использования и детально проработать их в сценариях и на диаграммах последовательности.