Информационные системы
Шрифт:
Рис. 3.10. Графическое изображение отношения ассоциации.
Пример на рисунке означает, что клиент делает покупки. При этом любой покупатель может купить любой товар или не купить никакой, и любой товар может быть продан любому покупателю или не быть купленным никем.
Отношение ассоциации может связывать большее количество классов (N-арная ассоциация). На диаграмме классов такая ассоциация изображается ромбом (рис. 3.11).
Рис. 3.11. N-арная ассоциация.
Приведенная ассоциация указывает, что покупатель
Частными случаями отношений ассоциации являются исключающая ассоциация, агрегация и композиция:
– исключающая ассоциация (xor-association) указывает на возможность связи определенного класса только с одним из нескольких классов (рис. 3.12);
– отношение агрегации означает включение нескольких классов в другой класс (графически отношение агрегации показано на рис. 3.13 и означает, что в состав класса Сервиз в качестве самостоятельных единиц могут входить тарелки и другие столовые приборы);
Примечание.
Не все языки программирования поддерживают такие конструкции.
Рис. 3.12. Графическое изображение исключающей ассоциации.
Рис. 3.13. Графическое изображение отношения агрегации.
– отношение композиции показывает, что компонент состоит из нескольких частей, которые в отличие от отношения агрегации не могут использоваться отдельно – графическое изображение отношения композиции (рис. 3.14) отражает его сходство по сути с отношением агрегации (так, составными частями класса Газета являются редакционные статьи, фотоиллюстрации, реклама, которые не могут существовать отдельно от самой газеты, если под газетой понимать лист бумаги). Отношение композиции может иметь кратность.
Рис. 3.14. Графическое изображение отношения композиции.
• Отношение обобщения (generalization relationship) показывает, что компонент (пользователь или прецедент) является частным случаем другого компонента. Графически это отношение обозначается непрерывной стрелкой от частного к общему (рис. 3.15). Отношениями обобщения иллюстрируется наследование классов.
Рис. 3.15. Графическое изображение отношения обобщения.
В приведенном примере класс Рыбные консервы наследует свойства и методы более общего класса Товар. Язык UML является средством документирования и иллюстрирования удачных идей и решений в области проектирования информационных систем. Так, диаграмма, представленная на рис. 3.16, выражает идею множественного наследования, реализованную в некоторых языках программирования.
Рис. 3.16. Множественное наследование.
Классы Рыбные консервы и Тушенка наследуют свойства и методы более общих классов Товар и Консервы, в то же время они наследуют соответственно свойства и методы классов Рыба и Мясо (последние принято называть «примесными классами»). Такое решение может значительно упростить процесс разработки информационной системы, сделать ее более устойчивой
Примечание.
Множественное наследование классов реализовано далеко не во всех языках программирования. В языке С++ наследование поддерживается, в языке Object Pascal – нет. Отказ от поддержания множественного наследования обусловлен возможностью возникновения ситуации, когда два или несколько классов, имея единого предка, по-разному реализуют одноименный метод, поэтому при множественном наследовании возникнет проблема выбора той или иной реализации метода (рис. 3.17), которую придется разрешать «вручную» (как это делается в С++).
Рис. 3.17. Проблема множественного наследования классов.
• Отношение обобщения может содержать поясняющий его идентификатор:
– {complete} – на диаграмме показаны все классы-потомки;
– {incomplete} – на диаграмме указаны не все классы-потомки;
– {disjoint} – множественное наследование не допускается;
– {overlapping} – множественное наследование допускается.
Помимо классов на диаграммах классов могут присутствовать интерфейсы, объекты (экземпляры классов) и параметризированные классы (метаклассы, шаблоны).
Интерфейс на диаграмме классов показывается прямоугольником с двумя секциями (рис. 3.18, а). В первой записывается имя интерфейса, ключевое слово «interface» и служебная информация. Вторая секция предназначена для записи методов интерфейса.
Рис. 3.18. Графическое изображение интерфейса и объекта на диаграмме классов.
Под объектом в языке UML понимается отдельный экземпляр, или пример, класса, структура и поведение которого полностью определяется порождающим этот объект классом. Объекты показываются прямоугольниками, как и классы, при этом имя объекта подчеркивается и содержит указание на класс объекта (рис. 3.18, б).
Параметризированный класс (метакласс, шаблон) представляет собой семейство классов, каждый член которого может отличаться от других каким-либо параметром, указываемым в пунктирной рамке в правом верхнем углу изображения класса (рис. 3.19, а).
Рис. 3.19. Графическое изображение метакласса.
В примере на рис. 3.19, б метакласс может служить основой для создания классов Счет в рублях, Счет в долларах США, Счет в евро или Мультивалютный счет.
Диаграмма состояний.
В процессе функционирования информационной системы свойства объектов системы будут принимать различные значения, а объекты системы – различные состояния. Состояния объектов, переходы объектов из одного состояния в другое, сообщения, которыми обмениваются объекты, составляют динамическую составляющую информационной системы.
Для моделирования динамики информационной системы служат диаграммы состояний, деятельности, последовательности и кооперации, каждая из которых показывает будущую систему в своем ракурсе.