Конспект лекций, страница 6
Описание файла
PDF-файл из архива "Конспект лекций", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
Композиция – усиленная агрегация, когда часть не можетсуществовать без целого (пример: университет, факультет, кафедра). Композиция иагрегация транзитивны, в том смысле, что если B является частью A, и C является частьюB, то C также является частью A (но на диаграмме связи, возникающие за счеттранзитивности, явно не изображаются).WholeКомпозицияPartWholeАгрегацияPartСоединения, являющиеся экземплярамиизображаются с ромбами на полюсах.8композицийилиагрегацийтакжеАссоциации (включая агрегации и композиции) характеризуются: направлением,именем, ролевыми именами участников связи, мощностями.
Направление указывает ходсообщений. По умолчанию ассоциации двунаправлены, т. е. сообщения могут исходить излюбого конца ассоциации. Если введено ограничение по направлению, то добавляетсястрелка на конце связи. Ассоциации может быть дано имя, полюсам (концам) ассоциациимогут быть назначены роли. Например, у ассоциации между классом Компания и классомПерсона полюсу класса Компания может быть назначена роль Работодатель, а другомуполюсу – роль Служащий. Понятие ассоциации связано с понятием атрибута.При наличии ассоциации между классами их экземпляры соединены ссылками, то естьимеют атрибуты, значениями которых являются ссылки на экземпляры связанного класса(см.
рис.). Как правило соглашения моделирования предписывают изображать атрибутыпростых типов (числа, символы, строки, логические переменные, время, даты). Атрибутысложных типов изображаются как ассоциации.CompanyEmployeePersonEmployerCompanyPersonEmployee:PersonEmployer:CompanyМощность (multiplicity) показывает, как много объектов может участвоватьв соединениях – экземплярах ассоциации. Мощность – это количество объектов одногокласса (с той стороны связи, где приписана мощность), которые соединены с однимобъектом другого класса (на другом конце связи).
Для каждой ассоциации существуютдва указателя мощности – по одному на каждом конце связи. Для соединений мощностьне указывают, так как на любом конце соединения находится ровно один объект.Обозначения мощностей в UML:МощностьЗначение1Ровно один0..* или *Ноль или больше1..*Один или больше0..1Ноль или один2..4Заданный диапазон2, 4..6Несколько диапазоновЧастный случай ассоциации – класс ассоциации, при помощи которого атрибуты иоперации можно привязать непосредственно к соединению. Т. е. при наличии классаассоциации с каждым соединением связан его экземпляр (в примере для каждойсвязанной пары курс – студент есть экземпляр класса оценка):Следует заметить, что классы ассоциацийявляются артефактами моделирования,Матан:CourseВася:Student тоесть ими оперируют аналитики, архитекторы.
Языки программирования не имеютсредств, поддерживающих эти конструкции. В ходе реализации программистамCourse модели так, чтобы можно было создатьStudentприходится преобразовыватькод. При этом1теряются ограничения целостности. Так модель курсы-оценки-студентыНеуд:Grade будетпреобразована к следующему виду, допускающему в отличие от исходной модели болееодной оценки по одному курсу у одного студента:1Grade 910..200..4Обратите внимание как переместились мощности связей.В UML 2.0 к объектной модели добавлено понятие N-арной ассоциации (для каждойкомбинации объектов не более одной связи):На рисунке представлена тернарная ассоциация и класс-ассоциация, связывающаяпроект, программистов, занятых в проекте, и языки, на которых они программируютв проекте.
Некоторым аналогом тернарной ассоциации является реляционное отношениенад тремя доменами (таблица со столбцами проект, программист, язык). ЭкземплярамиN-арных ассоциаций являются N-арные соединения. Так, программистка Мэри в одномпроекте пишет на Коболе, а в другом на Си.
Заметим, что мощности на концах тернарнойассоциации не воспрещают Мэри писать в одном и том же проекте на разных языках (хотяна диаграмме объектов такое не показано). Единственное ограничение, наложенное вданном случае, – два разных тернарных соединения не могут связывать одну и ту жетройку объектов – например: Мэри, проект accountingSystem и Кобол.К N-арным ассоциациям могут быть присоединены классы ассоциаций. КлассыЛектор, Семестр и КурсЛекций связаны тернарной ассоциацией (означающей, чтонекоторый лектор читает курс лекций в определенном семестре). Класс ассоциацийЧитаемыйКурс может хранить дополнительные сведения о связи, например, количествослушателей и т.
п.10Лектор*Семестр*ЧитаемыйКурс*КурсЛекцийВ объектно-ориентированных языках N-арные ассоциации не поддерживаютсястандартными средствами. Их можно промоделировать с помощью обычных (бинарных)ассоциаций, но при этом снимается ограничение на единственность соединения,связывающего N-ку объектов:Лектор1*Семестр1*ЧитаемыйКурс*1КурсЛекций11ВовтороймоделитройкаобъектовлекторПетров,семестрСедьмойи курсЛекцийМатан могут быть соединены более чем единожды посредством разныхэкземпляров класса ЧитаемыйКурс.Ассоциации «1 ко многим» или «многие ко многим» имеют еще две характеристики:упорядоченность связываемых объектов; повторяемость (т.
е. образуют ли связываемыеобъекты множество или мультимножество). Различные сочетания этих характеристикобразуют четыре типа ассоциаций: множества {set}, упорядоченные множества {ordered},мультимножества {bar} и последовательности {sequence}:{set} Спичка{ordered}Коробок1ВершинаГрафа{bag}Экран*Окно1*{sequence}Ломанная***Точка*Спички в коробке образуют множество (неупорядоченное). Окна на экране –упорядоченное (по глубине) множество. В мультиграфе между парой вершин может бытьнесколько ребер. Вершины ломанной линии, если допускаются наложения, образуютпоследовательность, в которой одна и та же вершина может встречаться несколько раз.Ассоциациям могут быть приписаны квалификаторы.
Квалификатор – атрибут илинабор атрибутов ассоциации, значение которых позволяет выбрать для конкретногообъекта квалифицированного класса множество целевых объектов на противоположномконце соединения. Например, если в папке может находиться неболее одного файла сзаданным именем, то имя файла – квалификатор ассоциации папка -> файл. Квалификаторне обязательно состоит из одного атрибута (также как и потенциальный ключ записейв таблице). Например, жильцы из домовой книги проиндексированы адресами,состоящими из названия улицы, номера дома и номера квартиры.ПапкаДомоваяКнигаулица : Stringдом : Integerквартира : IntegerимяФайла : String110..11..*ФайлЖилецЗависимость – связь между двумя элементами модели, при которой измененияв спецификации одного элемента могут повлечь за собой изменения в другом элементе.Например, пакет, который импортирует классы другого пакета, является зависимым отнего.
Зависимость изображается как пунктирная стрелка с обычным наконечником.Зависимость между классами возникает в следующих случаях: в сигнатуре операции одного класса есть аргумент – объект другого класса; в методе одного класса есть локальный объект другого класса; результатом операции одного класса является экземпляр другого класса.12Обобщение – это связь «тип– подтип». Оно реализуетмеханизмнаследования(inheritance),поддерживаетполиморфизм. Наследование –это построение новых классов наосновесуществующихс возможностью добавления илипереопределениясвойств(атрибутов)иповедения(операций). Изображается какстрелкастреугольнымнаконечником, исходящая изнаследника и указывающая народителя.Общие атрибуты, операции и/или отношения отображаются на верхнем уровнеиерархии. В объектной модели наследование может быть множественным.
На связи могутнакладываться ограничения. Например, если необходимо, множественное наследование внекоторой иерархии классов может быть запрещено (над связью указывается ключевоеслово: {disjoint}).Реализация – связь между контрактом (интерфейсом, вариантом использования)и его исполнением (классом, подсистемой, компонентой и т. п.).
Изображаетсяпунктирной стрелкой с треугольным наконечником, исходящая из исполненияи указывающая на контракт.Литература к лекции 21. Буч Г. Объектно-ориентированный анализ и проектирование с примерамиприложений. 3-е изд. – М.: Вильямс, 2008. – Часть I.2. Вендров А.
М. Проектирование программного обеспечения экономическихинформационных систем. 2-е изд. – М.: Финансы и статистика, 2005. – Глава 2.3. Рамбо Дж., Блаха М. UML 2.0. Объектно-ориентированное моделированиеи разработка. 2-е изд. – СПб.: Питер, 2006. – Главы 2-3.4. Грэхем И. Объектно-ориентированные методы.
Принципы и практика. 3-е изд.:Пер. с англ. – М.: Вильямс, 2004. – Глава 1.13Лекция 3. Унифицированный язык моделирования (Unified ModellingLanguage)Унифицированный язык моделирования UML (Unified Modeling Language) – этоязык для определения, представления, проектирования и документирования программныхсистем, организационно-экономических систем, технических систем и других системразличной природы. UML содержит стандартный набор диаграмм и нотаций самыхразнообразных видов.UML является наследником методов объектно-ориентированного анализаи проектирования, появившихся в конце 1980-х и начале 1990-х годов.