Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 20:05, реферат
UML прекрасно зарекомендовал себя на множестве успешных программных проектов. Средства автоматической кодогенерации позволяют переводить модели на языке UML в исходный код объектно-ориентированных языков программирования, что еще более ускоряет процесс разработки. Диаграммы дают возможность представить систему (как деловую, так и программную) в таком виде, чтобы ее можно было легко перевести в программный код. Они повышают сопровождаемость проекта и облегчают разработку документации к программной системе. Кроме того, UML специально создавался для оптимизации процесса разработки программных систем, что позволяет увеличить эффективность реализации программных систем в несколько раз и заметно улучшить качество конечного продукта.
Министерство образования Российской федерации.
Московский Государственный Горный Университет
Реферат по дисциплине:
«Технология разработки программного обеспечения»
На тему:
«Основные объекты языка UML»
Выполнила:
ст. гр. АСП-М-1-12
Диева А.В.
Проверил:
Доц. Смагина И.А.
Москва 2013г.
Основные элементы языка UML
1. Общие сведения
В течение 1994-96 годов создатели трех наиболее распространенных методологий - Г. Буч (BOOCH), Дж. Рамбо (OMT) и А. Якобсон (OOSE) объединили свои усилия под эгидой Rational Software Corporation на создание единого языка моделирования, который объединил бы все существенные и успешные разработки в данной области и стал бы стандартом языка объектного моделирования. Эта работа, в которой наряду с Rational участвовали представители множества компаний, таких, как Microsoft, IBM, Hewlett-Packard, Oracle, DEC, Unisys, IntelliCorp, Platinum Technology и нескольких сотен других завершилась созданием в январе 1997 года версии 1.0 Унифицированного Языка Моделирования - Unified Modeling Language (UML), которая после бурного обсуждения в течение 1997 года превратилась в сентябре в версию 1.1 и была передана в OMG для принятия UML в качестве отраслевого стандарта расширяемого языка объектного моделирования. OMG - некоммерческая международная организация, в которую входят более 600 ведущих мировых компаний и отвечающая за принятие стандартов в области информационных технологий.
UML прекрасно зарекомендовал себя на множестве успешных программных проектов. Средства автоматической кодогенерации позволяют переводить модели на языке UML в исходный код объектно-ориентированных языков программирования, что еще более ускоряет процесс разработки. Диаграммы дают возможность представить систему (как деловую, так и программную) в таком виде, чтобы ее можно было легко перевести в программный код. Они повышают сопровождаемость проекта и облегчают разработку документации к программной системе. Кроме того, UML специально создавался для оптимизации процесса разработки программных систем, что позволяет увеличить эффективность реализации программных систем в несколько раз и заметно улучшить качество конечного продукта.
Практически все мировые производители CASE-средств используют поддержку UML в своих продуктах. Сегодня существуют множество CASE-средств, автоматизирующих процесс анализа и проектирования в UML (Rational Rose, Paradigm Plus, Select Enterprise, Microsoft Visual Modeler for Visual Basic и др.), поддерживающих множество языков программирования, таких, как C++, Java, Delphi, Power Builder, Visual Basic, Centura, Forte, Ada, Smalltalk, а также позволяющих осуществлять генерацию базы данных для большинства из существующих SQL-серверов. Модели, разработанные в UML, позволяют значительно упростить процесс кодирования и направить усилия программистов непосредственно на реализацию системы.
2. Представления UML
В языке UML нет четких границ
между различными концепциями и
конструкциями, но для удобства выделяют
несколько представлений. Предс
В табл. 1. приведены представления модели, используемые в языке UML. К ней нужно относиться не как к набору строгих правил, а как к общим указаниям по использованию языка, поскольку четких границ между представлениями нет.
Таблица 1.
Представления модели и диаграммы в языке UML
Основная область |
Представления |
Диаграммы |
Основные концепции |
|
Структурная |
Статическое представление |
Диаграмма классов |
Класс, ассоциация, обобщение, зависимость, реализация, интерфейс |
|
|
Представление использования |
Диаграмма использования |
Вариант использования, актант,
ассоциация, расширение, включение
и обобщение вариантов |
|
|
Представление программной реализации |
Диаграмма компонентов |
Компонент, интерфейс, зависимость, реализация |
|
|
Представление развертывания |
Диаграмма развертывания |
Узел, компонент, зависимость, расположение |
|
Динамическ ая |
Представление в виде конечного автомата |
Диаграмма состояний |
Состояние, событие, переход, действие |
|
|
Представление деятельности |
Диаграмма деятельности |
Состояние, деятельность, завершение перехода, развилка, слияние |
|
|
Представление взаимодействия |
Диаграмма последовательности |
Взаимодействие, объект, сообщение, активизация |
|
|
Диаграмма кооперации |
Кооперация, взаимодействие, роль в кооперации, сообщение |
||
Управление моделью |
Представление управления моделью |
Диаграмма классов |
Пакет, подсистема, модель |
|
Расширения языка |
Все |
Все |
Ограничение, стереотип, именованные значения |
|
Структурная классификация описывает системные сущности и их отношения между собой. В число классификаторов, имеющихся в моделях UML, входят классы, варианты использования, компоненты и узлы. Классификаторы являются базой, на которой строится динамическое поведение системы. К представлениям классификации относятся статическое представление, представление вариантов использования и представление программной реализации.
Динамическое поведение описывает поведение системы во времени. Поведение можно определить как ряд изменений в мгновенных снимках системы, полученных со статической точки зрения. Представления моделей динамического поведения включают в себя представление конечных автоматов, представление деятельности и представление взаимодействия.
Представление управления моделью - это описание разбиения модели на иерархические блоки. Групповой организационный блок называется пакетом. Отдельные пакеты включают модели и подсистемы. Представление управления моделью организует все остальные представления моделей и позволяет осуществлять процесс разработки и управления конфигурацией.
Кроме того, есть несколько
конструкций, которые обеспечивают
пусть ограниченную, но полезную функцию расширения
возможностей языка UML. Эти конструкции
можно применять к элементам любых представлений
модели. В число таких конструкций входят ограничения (
На рис 1. представлены основные компоненты языка UML.
3. Связи и отношения в языке UML
Кроме внутреннего устройства
или структуры классов на соответствующей
диаграмме языка UML указываются различные отношени
Базовыми отношениями
(нотациями) или связями в языке UML
Отношение ассоциации (association relationship);
Отношение обобщения (generalization relationship);
Отношение реализации (realization relationship);
Отношение зависимости (dependency relationship).
Каждое из этих отношений имеет собственное графическое представление на диаграмме, которое отражает взаимосвязи между объектами соответствующих классов. В таблице 1 представлены виды отношений, используемых в языке UML.
3.1 Отношение ассоциации
Отношение ассоциации является одним из фундаментальных понятий в языке UML, и, в той или иной степени, используется при построении всех графических моделей систем в форме канонических диаграмм.
Ассоциация (association) - это описание набора однородных связей между объектами двух типов. Она обозначает семантическое соединение классов. основная задача ассоциации состоит в обеспечении взаимодействия объектов, принадлежащих разным классам.
отношение ассоциации обозначается
непрерывной линией. Общий вид
обозначения отношения
Непосредственно над линией указывается имя ассоциации - строка текста, представляющая собой уникальное имя среди имен ассоциаций и классов, содержащихся в пакете-контейнере. Для наглядности можно показать направление ассоциации с помощью закрашенного треугольника.
Рис 1. Основные компоненты языка UML
Таблица 2
Базовое отношение (нотация) |
Вид |
Разновидность |
Ключевое слово или символ |
|
Ассоциация (association) |
Ассоциация |
|||
Обобщение (generalization) |
Обобщение |
|||
Реализация (realization) |
Абстракция |
Реализация |
| |
Зависимость (Dependency) |
Общее обозначение |
|||
Абстракция |
Выводить |
«derive» |
||
Уточнять |
«refine» |
|||
Трассировать |
«trace» |
|||
|
Связывание |
«bind» (параметрсписок) |
||
|
Расширение |
«extend» (точка расширениясписок) |
||
|
Поток |
Превращаться |
Порядковый номер: «become» |
|
|
Копировать |
Порядковый номер: «copy» |
||
Включение |
«include» |
|||
Метаотношение |
Являться экземпляром |
«instanceOf» |
||
|
Множество всех типов |
«powertype» |
||
Разрешение |
Быть доступным |
«access» |
||
Быть дружественным |
«friend» |
|||
|
Импортировать |
«import» |
||
Использование |
Вызывать |
«call» |
||
Создать экземпляр |
«instantiate» |
|||
Параметр |
«parameter» |
|||
Отправить |
«send» |
|||
У краев прямоугольника, обозначающего класс, находится полюс ассоциации (association end), представляющий собой структурную часть ассоциации, которая определяет, какой объект в ней участвует. Полюса ассоциации имеют четкое местоположение и в принципе не взаимозаменяемы. Полюс содержит описание того, каким образом класс принимает участие в ассоциации. Для этого, между концом маршрута (линией) и классом размещается один или несколько указателей. В случае если указателей несколько, то они располагаются поочередно, как показано на рис. 2. - стрелка навигации, ромб агрегации или композиции, квалификатор и т. п. Дополнительно, над/под полюсом ассоциации может размещаться дополнительная информация - имя роли, кратность (множественность, мощность) и т. д.
Например, рассмотрим отношение ассоциации между игроком и спортивным клубом, показанное на рис 3.
Этот пример иллюстрирует наиболее простой случай отношения ассоциации - бинарную ассоциацию. Она связывает в точности два класса и, как исключение, может связывать класс с самим собой. Для бинарной ассоциации на диаграмме может быть указан порядок следования классов с использованием треугольника в форме стрелки рядом с именем данной ассоциации. Направление этой стрелки указывает на порядок классов, один из которых является первым (со стороны треугольника), а другой -- вторым (со стороны вершины треугольника). В данном случае это обозначает ассоциацию "Игрок Играет в Клубе". Сочетание "Играет в" является именем ассоциации, а направление ассоциации указывает, что первым классом является класс "Игрок". Отсутствие стрелки направления ассоциации рядом с именем ассоциации означает, что порядок следования классов в рассматриваемом отношении не определен. класс "Клуб" дополнительно снабжен комментарием (или аннотационной сущностью), свидетельствующим, что это - футбольный (спортивный) клуб, а не клуб "по интересам". Комментарий соединяется штриховой линией с элементом диаграммы, к которому он относится (в данном случае - к классу).
Роль ассоциации. Каждая ассоциация, как и любая связь, обладает направлением или в терминах UML - ролью (association role). Ролей может быть две, чтобы иметь возможность подчеркнуть возможные различия во "взаимоотношениях" между классами, например у "Начальника" могут быть сосредоточены все права, а у "Подчиненного" - только обязанности. В приведенном выше примере, у класса "Игрок" будет роль "Наемный работник", а у класса "Клуб" - "Наниматель", так как клуб нанимает игрока. кстати, этот факт, можно отобразить в виде второй ассоциации, имеющей обратное направление по отношению к первой, как показано на рис. 4
кратность (множественность, мощность) ассоциации. показывает количество конкретных объектов, которые могут быть связаны с данным партнером ассоциации. В общем случае, множественность показывает нижнюю и верхнюю границы количества объектов, которые могут участвовать в ассоциации. Кратность отдельного класса обозначается в виде интервала целых чисел, аналогично кратности атрибутов и операций классов, и обычно имеет следующий формат.