- •Алгоритмизация и программирование Проектирование программного обеспечения
- •1. Базовые принципы и понятия технологии разработки сложного по
- •Разработка модели
- •1.2. Методология объектно-ориентированного анализа и проектирования
- •1.3. Концепция разработки архитектур, управляемых моделями
- •2. Основы языка uml
- •Uml модель и ее элементы
- •Отношения
- •Диаграммы
- •1.5. Общие диаграммы
- •1. Диаграммы использования
- •Invoice
- •2. Диаграмма классов
- •4. Диаграмма деятельности
- •Сущность – Вариант использования (use case)
- •Варианты отношения зависимости: расширение и включение Отношение расширения
- •Диаграмма классов
- •1. Диаграмма классов – основная логическая модель проектируемой системы
- •Диаграмма классов
- •2. Класс
- •2.1. Имя класса
- •2.2. Атрибуты класса
- •Кратность
- •2.3.Операции класса
- •1.. * 1
- •I j
- •3.2. N-арная ассоциация
- •3.3. Ассоциация-класс
- •3.4. Квалификатор
- •3.5. Обобщение
- •3.6. Множество обобщений
- •3.7. Агрегация
- •3.8. Композиция
- •1 1 1 1
- •1 2 1 1
- •3.9. Зависимость
- •3.10. Реализация
- •4. Интерфейс
- •IДатчик
- •5. Шаблон
- •5. Диаграмма композитной структуры (composite structure diagram)
- •6. Дополнительные диаграммы структуры
- •7. Диаграмма последовательности (sequence diagram)
Кратность
Кратность (multiplicity) – это интервал изменения количества элементов модели от минимума до максимума.
Кратность в UML может относиться к:
атрибутам;
классам;
полюсам (концам) ассоциаций .
Синтаксис написания кратности:
Нижняя граница .. ВЕРХНЯЯ ГРАНИЦА
Пример приведен в таблице № 25
Таблица 25. Выражения кратности
Выражения кратности |
Множество может иметь |
0 .. * |
Произвольное количество элементов |
* |
Произвольное количество элементов |
1 .. * |
Один или более элементов |
0 ..1 |
Не более одного элемента |
1 .. 10 |
От одного до десяти элементов |
1.. 3, 5, 7 .. 10 |
Один, два, три, семь, восемь, девять или десять элементов |
5 .. 3 |
Некорректная запись. Нижняя граница больше верхней |
-1 .. 3 |
Некорректная запись. Отрицательные числа недопустимы |
______________________________________________________
Примеры записи атрибутов для класса Сотрудник:
+ имяСотрудника : String {readOnly}
~ датаРождения : Data {readOnly}
# / возрастСотрудника : Integer
+ номерТелефона : Integer [*] {unique}
заработнаяПлата : Currency = $500
2.3.Операции класса
Операция (operation) класса служит для представления отдельной характеристики поведения, которая является общей для всех объектов данного класса.
Общий формат записи операции класса следующий:
< операция>::=
[<видимость >]
<имя операции> ‘(‘ [< список параметров >] ‘)’
[
‘:’ [< тип возвращаемого результата > ]
‘{‘ <свойство операции > [‘,’ <свойство операции >]* ‘}’
]
[<видимость >] Видимость операции определяется аналогично видимости аргумента (см. табл.14).
<имя операции> Требования к оформлению имени операции:
имя операции параметр обязательный;
имя операции начинается со строчной буквы;
не рекомендуется иметь пробелы;
обязательно после имени должны идти круглые скобки.
<список параметров> (parameter list) – перечень разделенных запятыми формальных параметров операции и имеет общие формы записи:
<список параметров> :: = <параметр> [‘,’<параметр >]*
:<тип возвращаемого результата > (return type) – определяет тип значения возвращаемой данной операцией (двоеточие могу быть опущены, если операция не возвращает никакого значения )
<свойство операции> (operation property) служит для указания дополнительных свойств.
Список свойств приведен в таблице 25
Формат записи свойства операций
< свойство операции > :: = ‘redefines’ < имя операции? > | ‘query’ |
‘ordered’ | ‘unique’ | <ограничение >
Таблица 25. Назначение свойств операций
Свойства операций |
Назначение свойства операции |
redefines <имя операции> |
Переопределяет наследуемую операцию с именем <имя операции> |
query |
Не изменяет состояния моделируемой системы и, соответственно, не имеет побочного эффекта |
ordered |
Значения возвращаемого параметра являются упорядоченными. (Предполагается, что кратность данного возвращаемого параметра должна быть больше 1) |
unique |
Значения возвращаемого параметра не могут повторятся. (Предполагается, что кратность данного возвращаемого параметра должна быть больше 1) |
<ограничение > |
Выражение, которое определяет некоторое ограничение, применяемое к данной операции |
Операции, область действия которой распространяется на все экземпляры класса, показывается подчеркиванием строки соответствующей операции.
В качестве клиентов операций могут выступать экземпляры различных классов, а не только того класса, к которому принадлежит данная операция.
2.4. Параметры Операции Класса
Параметр (parameter) является спецификацией аргумента, который используется при выполнении операции.
Формат записи параметров:
<параметр>::= [<направление > ] <имя параметра> ’: ’ <выражение типа>
[‘[‘ <кратность > ’]‘] [ ‘=’ <значение по умолчанию> ]
[ ‘{‘<свойство параметра> [ ‘,’ < свойство параметра >]* ‘ } ’ ]
Не за что
Таблица … . Семантика Параметров Операции Класса
Параметр |
|
| |
<направление >::= |
‘in’ |
Указывает на то, что значения этого параметра передаются в операцию вызывающим объектом | |
|
‘out’ |
Указывает на то, что значения этого параметра передаются вызывающему объекту по окончании выполнения операции | |
|
‘inout’ |
Указывает на то, что значения этого параметра с начло передаются внутрь операции, а затем передаются наружу | |
|
‘return’ |
Работает подобно out | |
<имя параметра> (parameter name) |
|
Идентификатор формального параметра, при записи которого необходимо следовать правилам задания имен атрибутов | |
:<выражение типа> (type expression) |
|
Является спецификацией типа данных для возможных значений соответствующего формального параметра. Этот терм аналогичен рассмотренному выше терму <тип атрибута> для атрибутов классов | |
<кратность> (multiplicity) |
|
Характеризует общее количество конкретных параметров с данным именем, которые могут принадлежать тому или иному объекту данного класса. Кратность параметра записывается в форме строки текста в соответствии с правилами, рассмотренными ранее для атрибутов классов | |
=<значение по умолчанию> (default) |
|
Представляет собой некоторые выражение, которое специфицирует конкретное значение по умолчанию для данного формального параметра | |
<свойство параметра> (parameter property) |
|
Указывает дополнительные свойства значений данного формального параметра. В качестве значений свойств параметра могут быть использованы модификаторы атрибутов |
Предусловие (precondition) для операции определяет условия, которое должно быть истинным, когда эта операция вызывается.
Постусловие (postcondition) для операции определяет условие, которое должно быть истинным, когда вызов операции успешно завершился, в предположении, что все предусловия были удовлетворены.
Пример 1: запись операций для класса Сотрудник:
+ добавить( in номерТелефона : Integer [*] {unique})
Ключевой символ |
Назначение |
+ |
Указывает на “видимость” знак + указывает на то, что данный класс является общедоступным |
добавить |
Название класса |
( |
Открывающая скобка указывает на начало описания параметров операции класса |
in |
Указывает на то, что значения этого параметра передаются в операцию вызывающим объектом |
номерТелефона |
Имя входного параметра |
: Integer |
Указывает на то, что у входного параметр тип данных целочисленный |
[*] |
Многозначность |
{unique} |
Значения возвращаемого параметра не могут повторяться |
) |
Закрывающая скобка указывает на окончание описания параметров операции класса |
Пример 2:
–изменить (in заработнаяПлата : Currency)
Закрытая операция с единственным передаваемым параметром заработнаяПлата типа Currtnce
______________________________________________________
Пример 3:
+создать() : Boolean
Общедоступная операция по созданию отдельного класса Сотрудник, которая не содержит параметров. После вызова данной операции она должна возвратить логическое значение.
___________________________________________________________
3. Отношения между классами
Виды Отношений между Классами, используемые при построении диаграммы классов:
ассоциация
агрегация
композиция
обобщение
зависимость
реализация
3.1. Ассоциация
Ассоциация (association) – произвольное отношение или взаимосвязь между классами.
Бинарная ассоциация (binary association) обозначается сплошной линией со стрелкой или без нее (возможны дополнительные символы)
Дополнительные символы:
имя ассоциации;
символ навигации;
видимость;
полюс ассоциации.
Имя ассоциации Символ направления чтения
ассоциации
Имя полюса ассоциации Имя полюса ассоциации
+работник Работает +работодатель
Сотрудник Компания