- •О.Н. Ванеев, д.Е. Турчин
- •Лабораторный практикум
- •Кемерово 2013
- •Описание лабораторного практикума
- •1.2.2. Множества и операции над ними
- •1.2.3. Декартово произведение множеств. Соответствия и отношения на множествах
- •1.2.4. Основные понятия теории графов
- •1.2.5. Анализ модели системы
- •1. Определение цели системы.
- •2. Выделение подсистем.
- •3. Выделение внешних систем.
- •4. Выделение входов, ресурсов и затрат.
- •5. Выделение выходов, результатов и прибыли.
- •1. Определение цели системы.
- •2. Выделение подсистем.
- •3. Выделение внешних систем.
- •4. Выделение входов, ресурсов и затрат.
- •5. Выделение выходов, результатов и прибыли.
- •1.3. Порядок выполнения работы
- •2.3. Порядок выполнения работы
- •3.3. Порядок выполнения работы
- •4.3. Порядок выполнения работы
- •5.2.2. Метод ранжирования вариантов
- •2.2.3. Метод парных сравнений
- •5.3. Порядок выполнения работы
- •Основные положения объектной модели.
- •6.2.2. Общая характеристика объектов и классов. Отношения между объектами и классами Общая характеристика объектов.
- •Общая характеристика классов.
- •6.2.2. Понятие о языке uml. Диаграммы классов Понятие о языке uml.
- •Диаграммы классов uml.
- •6.2.3. Реализация класса и его элементов на языке программирования c# Состав класса. Описание класса.
- •Поля и константы. Методы.
- •Свойства.
- •6.3. Порядок выполнения работы
- •6.4. Контрольные вопросы
- •Диаграммы последовательностей.
- •7.2.2. Отношения между классами. Моделирование наследования Отношение между классами. Ассоциация, агрегация и зависимость.
- •7.2.3. Реализация отношений между классами на языке c#
- •7.3. Порядок выполнения работы
- •8.4. Контрольные вопросы
- •Рекомендуемая литература
- •Приложение п.1. Значения статистических критериев
Диаграммы классов uml.
Основным средством для представления структуры систем в языке UML являются диаграммы классов (class diagram), узлами которой являются классы, а дугами – отношения между классами.
Имя класса на диаграммах классов указывается всегда, атрибуты и операции – выборочно. На начальных этапах разработки класс может обозначаться простым прямоугольником, называемым классификатором, с указанием только имени класса (рис. 6.Х, а). В дальнейшем диаграммы классов дополняются атрибутами (рис. 6.Х, б) и операциями (рис. 6.Х, в).
Рис. 6.Х. Представление класса на диаграмме классов
Имя класса должно быть уникальным в пределах пакета. Оно указывается в первой верхней секции классификатора, записывается по центру секции имени и должно начинаться с заглавной буквы.
Во второй секции классификатора записываются атрибуты класса. Общий синтаксис представления атрибута в языке UML имеет следующий вид:
[МодВидим] Имя [: Тип] [Кратн] [= НачЗн] [{Свойство}] |
В языке UML определены четыре модификатора видимости, приведенные в табл. 6.Х.
Таблица 6.Х
Модификаторы видимости в языке UML
Название |
Обозначение |
Описание |
Открытая (public) |
+ |
Доступен для всех элементов |
Защищенная (protected) |
# |
Доступен только для элементов класса и подклассов |
Закрытая (private) |
– |
Доступен только для элементов класса |
Пакетная (package) |
~ |
Доступен только для элементов пакета |
Если видимость не указана, то считают, что атрибут (операция) объявлен с открытым модификатором видимости.
Предусмотрено задание области действия атрибута (операции). Если атрибут (операция) подчеркивается, то его областью действия является класс, в противном случае – областью действия является экземпляр.
Кратность (множественность) атрибута показывает количество конкретных атрибутов данного типа, входящих в состав класса.
Если кратность атрибута не указана, то по умолчанию принимается ее значение равное 1.
Свойство является строкой, которая указывает на особое свойство атрибута. Атрибутам можно присвоить свойство уникальности с помощью свойства {unique}. Например, если атрибут представляет собой ключ хэш-таблицы или первичный ключ в реляционной базе данных.
Описание операции в языке UML имеет следующий вид:
[Мод_видим] Имя([Список_парам]) [: Тип] [{Свойство}] |
Имя операции является единственным обязательным элементом и должно быть уникальным в пределах данного класса.
Для именования операций рекомендуется использовать глаголы, соответствующие ожидаемому поведению объектов данного класса.
Модификатор видимости операции может принимать такие же значения, как и для атрибутов класса.
Тип возвращаемого значения является зависимой от языка реализации спецификацией типа. Операция может не возвращать никакого значения.
Свойство служит для определения особых свойств данной операции. Например, если операция не может изменять состояние объекта, то она обозначается как {isQuery} (запрос).
Список параметров является перечнем разделенных запятой формальных параметров, каждый из которых может быть представлен в следующем виде:
[Вид_парам] Имя_парам [: Тип_парам] [= Знач_по_умолч] |
Вид параметра – это одно из ключевых слов:
• in – входной параметр не может модифицироваться (по умолчанию);
• out – выходной параметр может модифицироваться для передачи информации в вызывающий объект;
• inout – входной параметр может модифицироваться.
❒ Пример 6.1. Разработка описания класса «Автомобиль».
Разработаем объектно-ориентированное описание класса «Автомобиль» с помощью средств языка UML. Полученное описание будет использоваться при разработке системы управления грузоперевозками автотранспортной компании.
Примем, что важно знать текущее положение автомобиля и координаты его места назаначения, скорость его движения, запас топлива и вес перевозимого груза. Выделенные параметры отмечены на рис. 6.Х.
Необходимо предусмотреть возможность определения координат автомобиля, скорости его движения и запаса топлива. Кроме того, требуется задать возможность загрузки и разгрузки автомобиля, а также заправки топливом.
Для упрощения последующей реализации класса будем считать, что автомобиль движется к месту назначения по прямой.
Рис. 6.Х. Основные атрибуты объекта «Автомобиль»
Атрибуты:
• Название автомобиля (например, модель и номер).
• Текущее положение автомобиля, км:
- tekXa – по оси X;
- tekYa – по оси Y.
• Положение заданного места назначения, км:
- zadXm – по оси X;
- zadYm – по оси Y.
• Количество топлива в баке автомобиля, л:
- maxTa – максимальное (объем бака);
- tekTa – текущее.
• Скорость автомобиля, км/час:
- maxVa – максимальная;
- tekVa – текущая.
• Вес груза, перевозимого автомобилем, кг:
- maxGa – максимальный (грузоподъемность);
- tekGa – текущий.
Операции:
• Определить текущие координаты автомобиля с помощью GPS-навигатора
- TekKorX – по оси X;
- TekKorY – по оси Y.
• Определить заданные координаты места назначения по информации из журнала заданий, км:
- ZadKorX – по оси X;
- ZadKorY – по оси Y.
• Измерить текущую скорость ().
• Определить уровень топлива в баке ().
• Измерить вес груза (может производиться только при нулевой скорости автомобиля)
• Увеличить скорость на заданную величину (увеличивается на заданную величину при ненулевом значении уровня топлива)
• Уменьшить скорость на заданную величину
• Заправить (не может производиться при ненулевой скорости)
• Загрузить (не может производиться при ненулевой скорости)
• Разрузить (не может производиться при ненулевой скорости)
• Ехать в заданное место
изменить координаты
rx = ZadKorX – TekKorX
ry = ZadKorY – TekKorY
rp = Sqr(rx * rx + ry *ry)
TekKorX = TekKorX + TekSkor * dt * rx / rp
TekKorY = TekKorY + TekSkor * dt * ry / rp
изменить количество топлива
TekTopl = TekTopl – (0.2 + TekSkor * dt + TekGruz / 1000)
скорость (если начальная скорость нулевая)
. ❒
Рис. 6.Х. Представление класса «Автомобили» (Avto) на диаграмме классов
