Академический Документы
Профессиональный Документы
Культура Документы
Казань
2007
УДК 004.43
ББК 32.973 - 018.1
И 87
Печатается по постановлению
Редакционно-издательского совета
факультета ВМК
Казанского государственного университета
Рецензенты:
Доктор физико-математических наук, профессор кафедры
Теоретической кибернетики КГУ, чл.-корр. АН РТ Ф.М. Аблаев
Кандидат технических наук, доцент кафедры Компьютерных систем
КГТУ им. А.Н. Туполева (КАИ) С.В. Шалагин
УДК 004.43
ББК 32.973 - 018.1
Введение . . . . . . . . . . . 5
Часть 1. Методические основы технологий создания
программных систем . . . . . . . 9
1. Модель программной системы . . . . . 9
2. Объектно-ориентированная разработка. . . . 10
3. Объектно-ориентированная методология . . . 11
4. Три модели . . . . . . . . . 14
5. Концептуальная модель унифицированного языка
моделирования UML . . . . . . . 17
6. Диаграммы языка UML . . . . . . 28
7. Правила языка UML . . . . . . . 31
Заключение . . . . . . . . . . 135
Литература . . . . . . . . . . 137
«Иногда мы обнаруживаем неприятные
истины. И когда это происходит,
попадаем в затруднительное положение,
поскольку утаить их – научная
нечестность, сказать же правду – значит
вызвать огонь на себя. Если эти истины
достаточно неприемлемы, то ваши
слушатели психологически неспособны
принять их, и вы будете ославлены как
абсолютно лишенный здравого смысла,
опасно революционный, глупый,
коварный или какой-то еще там человек.
(Не говоря уже о том, что, настаивая на
таких истинах, вы обеспечите себе
непопулярность во многих кругах и
вообще не обойдетесь без персонального
риска. Вспомните Галилео Галилея...)»
2. Объектно-ориентированная разработка
1. Модель программной системы 11
3. Объектно-ориентированная методология
4. Три модели
Классы
Класс (class) – абстрактное описание множества однородных
объектов, имеющих одинаковые характеристики, такие как,
атрибуты, операции и отношения с объектами других классов.
Класс является одной из основных конструкций языка UML.
Причинами этого являются следующие:
45
46
47
48
50
51
54
55
55
56
Операции класса
Операция (operation) – это функция или процедура, которая
может быть применена к объектам класса, т.е. сервис,
предоставляемый каждым экземпляром или объектом класса по
требованию своих клиентов, в качестве которых могут выступать
другие объекты, в том числе и экземпляры данного класса.
Операциями класса Company (Компания) могут быть hire (нанять),
fire (уволить) и payDividend (выплатитьДивиденды). Операциями
класса Window (Окно) могут быть open (открыть), close (закрыть),
hide (скрыть) и redisplay (перерисовать). Все объекты одного класса
имеют общий список операций.
Каждая операция в качестве неявного аргумента принимает свой
целевой объект. Поведение операции зависит от класса целевого
объекта. Объект всегда знает свой собственный класс, а потому он
всегда знает и правильную реализацию операции.
Одна и та же операция может быть применена к разным классам.
Такая операция называется полиморфной: в разных классах она
может принимать разные формы. Методом (method) называется
реализация операции в конкретном классе. Например, класс File
(Файл) может иметь операцию print (печать). Печать ASCII-файлов,
двоичных файлов и цифровых изображений может осуществляться
разными методами. Все эти методы с логической точки зрения
выполняют одно и то же действие: печать файла. Поэтому они и
являются реализациями одной и той же операции print. При этом
каждый метод может быть реализован своим собственным кодом.
У операции могут быть и другие аргументы, кроме целевого
объекта. Эти аргументы могут быть как значениями, так и другими
объектами. Выбор метода зависит только от класса целевого объекта,
но не от классов аргументов, которые являются объектами, сколько
57
58
58
59
60
61
61
62
68
69
69
70
72
73
73
74
75
76
Отношение ассоциации
76
77
77
78
78
79
79
80
80
81
81
82
82
83
83
84
Отношение обобщения
86
87
87
88
88
89
89
90
90
91
Отношение агрегации
Агрегация (aggregation) – специальная форма ассоциации,
которая служит для представления отношения типа «часть-целое»
между агрегатом (целое) и его составной частью.
91
92
92
93
93
94
94
95
Отношение композиции
Композиция (composition) – разновидность отношения
агрегации, при которой составные части целого имеют такое же
время жизни, что и само целое. Эти части уничтожаются вместе с
уничтожением целого.
Отношение композиции – частный случай отношения
агрегации. Это отношение служит для спецификации более сильной
формы отношения «часть-целое», при которой составляющие части
тесно взаимосвязаны с целым. Особенности этой взаимосвязи
заключаются в том, что части не могут выступать в отрыве от
целого, т.е. с уничтожением целого уничтожаются и все его
составные части, и, что часть может принадлежать только одному
целому.
Композит (composite) – класс, который связан отношением
композиции с одним или большим числом классов.
Графически отношение композиции изображается сплошной
линией (рис. 8.2.20), один из концов которой представляет собой
закрашенный внутри ромб. Этот ромб указывает на тот класс,
который представляет собой класс-композит. Остальные классы
являются его «частями».
95
96
96
97
Зависимости
Зависимость – это отношение между двумя элементами, при
котором изменение одного элемента «supplier» (поставщика) может
затронуть другой элемент «client», «source» (клиент, источник) или
предоставить необходимую ему информацию.
Зависимость изображается в виде пунктирной стрелки, которая
связывает два класса. Тот класс, который находится у хвоста
стрелки (клиент), зависит от элемента, который находится у ее
наконечника (поставщик).
97
98
100
101
101
102
Классы-ассоциации
Класс-ассоциация (association classes) – это ассоциация,
которая в то же время является и классом. У класса-ассоциации
присутствуют как свойства класса, так и свойства ассоциации. Он
связывает два или несколько классов и вместе с тем имеет атрибуты
и операции. Класс-ассоциация используется в том случае, когда у
каждой связи должны быть свои собственные значения атрибутов,
операции или ссылки на объекты.
Класс-ассоциация изображается с помощью символа класса
(прямоугольника), который соединяется пунктирной линией с
ассоциацией (рис. 8.2.33).
103
104
104
105
(Склад);
106
107
110
111
данным EJB.
111
112
Диаграмма объектов
Диаграмма объектов показывает набор объектов и отношений
между ними в конкретный момент времени функционирования
системы. Рис. 8.3.7. представляет пример диаграммы объектов.
112
113
контексте
Связывающий составной элемент
структурного классификатора,
описывающий появление экземпляра
Role binding (или множества экземпляров) в
(связывающая ___________ контексте, определяемом структурой
роль) классификатора. Представление
индивидуума в контексте,
определяемом структурным
классификатором.
115
116
10. Пакеты
116
117
117
118
118
119
121
122
122
123
123
124
124
125
125
126
126
127
127
128
128
129
130
131
Стереотипы компонентов
Следующие встроенные стереотипы (Component Stereotypes)
могут оказаться полезными при определении компонентов:
Стереотип «entity» определяет постоянно хранимый
информационный компонент, представляющий некоторое понятие в
бизнес сфере.
131
132
133
134
Развертывание (Deployment)
Узлы представляют собой размещение, топологию
программных артефактов – другими словами, это
месторасположение артефактов в период выполнения. Артефакт,
который существует в определенном узле, называют размешенным
артефактом.
Детали развертывания могут быть заданы в спецификациях
развертывания, которые определяют набор свойств, например,
указано место развертывания на узле и параметры выполнения. На
рис. 12.4 приведен пример спецификации развертывания.
Диаграммы развертывания
Диаграмма развертывания (топологии) (Deployment
Diagrams) – это диаграмма, на которой изображается конфигурация
работающих узлов и артефактов, развернутых на них. На рис. 12.5.
приведен пример использования пользовательских стереотипов.
135
136
136
137
137
138
138
139
139
Заключение
В настоящее время полностью специфицирована и
документирована версия 2.0 языка UML и продолжается
дальнейшая работа по его развитию. Имеются ссылки на версию
языка UML 2.1.
В настоящее время разработкой программных
инструментальных систем с реализацией языка UML 2.0
занимаются более 300 фирм производителей программного
обеспечения. Среди них можно назвать IBM Rational Software Corp.,
Gentleware AG, Pacestar Software, Visual Paradigm, Sparx Systems,
Metamill Software и другие. Перспективность и выгодность
использования языка UML при разработке программных систем уже
доказана. Изучение визуальных средств моделирования
необходимо. В общем случае средства моделирования позволяют
понимать методы, подходы, методологии решения задач,
необязательно связанных с разработкой программных систем.
В этом пособии описаны основные аспекты элементов языка
UML версии 2.0.
Для подробного изучения описания языка UML лучше всего
использовать спецификацию Unified Modeling Language:
Superstructure version 2.1 и Unified Modeling Language: Infrastructure
version 2.1. В них содержится более детальное описание элементов
языка UML.
Источниками информации по языку UML в Интернете
являются сайты компании IBM партнер Rational www.rational.com,
www-306.ibm.com/software/rational, www.ibm.com, www.uml.org со
стороны которой осуществляется общая координация работы над
очередными версиями языка UML. Эта компания продолжает
разработку CASE-средства Rational Rose, в котором реализуются
текущие дополнения языка UML для различных платформ.
Уже сейчас язык UML становится тем связующим языком, на
котором могут общаться между собой руководители
информационных служб, менеджеры проектов, системные
Заключение 136