Добавил:
github.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технология программирования / 3_UML_diagrammy_30_08_19_-_4_Chasa

.doc
Скачиваний:
5
Добавлен:
30.09.2023
Размер:
104.96 Кб
Скачать

Лабораторная работа №3

UML-диаграммы.

Язык UML представляет собой общецелевой язык визуального моделирования, который разработан для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения, бизнес-процессов и других систем. Язык UML является достаточно строгим и мощным средством моделирования, которое может быть эффективно использовано для построения концептуальных, логических и графических моделей сложных систем различного целевого назначения. Этот язык вобрал в себя наилучшие качества и опыт методов программной инженерии, которые с успехом использовались на протяжении последних лет при моделировании больших и сложных систем.

С точки зрения методологии объектно-ориентированного анализа и проектирования (ООАП) достаточно полная модель сложной системы представляет собой определенное число взаимосвязанных представлений (views), каждое из которых адекватно отражает аспект поведения или структуры системы. При этом наиболее общими представлениями сложной системы принято считать статическое и динамическое, которые в свою очередь могут подразделяться на другие более частные.

Принцип иерархического построения моделей сложных систем предписывает рассматривать процесс построения моделей на разных уровнях абстрагирования или детализации в рамках фиксированных представлений.

Уровень представления (layer)— способ организации и рассмотрения модели на одном уровне абстракции, который представляет горизонтальный срез архитектуры модели, в то время как разбиение представляет ее вертикальный срез.

При этом исходная или первоначальная модель сложной системы имеет наиболее общее представление и относится к концептуальному уровню. Такая модель, получившая название концептуальной, строится на начальном этапе проектирования и может не содержать многих деталей и аспектов моделируемой системы. Последующие модели конкретизируют концептуальную модель, дополняя ее представлениями логического и физического уровня.

Вся необходимая информация для построения UML-диаграмм представлена в лекциях и в раздаточном материале для студентов.

Лабораторное задание

  1. Вариант задания согласно номеру компьютера.

  2. Разработать UML-диаграмму вариантов использования в StarUML, добавив к заданию действующее лицо (Actor).

  3. Разработать UML-диаграмму классов в StarUML, добавив к заданию действующее лицо (Actor).

  4. Разработать UML-диаграмму состояний в StarUML, добавив к заданию действующее лицо (Actor).

Цель работы состоит в понимании того, что согласно ООАП объекты могут хранить друг друга и использовать интерфейс друг друга для собственных нужд, а также в отображении этих связей, используя UML.

Таблица 3.1. Варианты заданий

1, 13

Создать класс «Автомобиль», включающий данные-элементы: марка, объем топливного бака, тип привода, тип кузова, макс скорость, разгон до 100 км/ч, расход бензина на 100 км (учесть движение по городу, шоссе, проселочной дороге и др.)

Методы:

  • создание и инициализация (конструктор),

  • заправка а/м (количество бензина – в аргументе с учетом объема топливного бака и остатка бензина в баке),

  • поворот ключа зажигания

  • выдача ошибок любого типа (в современных а/м ошибки и предупреждения отображаются на экране в салоне, но поступают эти сообщения от множества различных устройств в автомобиле, например датчика в двигателе)

  • расход бензина (пройденный путь и вид пути – в аргументе),

  • выдача сообщения о том, сколько км можно проехать на оставшемся бензине,

  • деструктор.

Создать класс «Двигатель», включающий данные-элементы: тип двигателя, текущее состояние (запущен или нет).

Методы:

  • создание и инициализация (конструктор),

  • включение/выключение двигателя

  • выдача сообщений об ошибке запуска и работы

  • деструктор.

2, 14

Создать класс «Пиломатериал», включающий данные-элементы: тип материала, стоимость покупки, стоимость продажи, объем.

Методы:

  • создание и инициализация (конструктор),

  • выдача объема материала

  • выдача стоимости покупки и продажи материала

  • деструктор

Создать класс «Склад пиломатериалов», включающий данные-элементы: № склада, фамилия директора, максимальный объем хранимых пиломатериалов,

список пиломатериалов, покупная и отпускная цена за м3 каждого из видов пиломатериалов.

Методы:

  • создание и инициализация (конструктор),

  • поступление (покупка) материала на склад (пиломатериал в аргументе)

  • вывоз (продажа) материала (пиломатериал в аргументе)

  • выдача сообщения, сколько можно еще завезти пиломатериалов (с учетом свободного места, денег для покупки и типа материала),

  • выдача сообщения, сколько и каких пиломатериалов есть в наличии,

  • деструктор.

3, 15

Создать класс «SIM-карта», включающий данные-элементы: номер, количество денег на счете, пин-код, тариф. Методы:

  • создание и инициализация (конструктор),

  • пополнение счета (сумма – в аргументе),

  • оплата разговоров согласно тарифу (время – в аргументе),

  • выдача текущего баланса,

  • деструктор.

Создать класс «Мобильный телефон», включающий данные-элементы: фирма изготовитель, модель, список SIM-карт (вставленных в телефон, который может быть как «односимочным», так и «двухсимочным»).

Методы:

  • создание и инициализация (конструктор),

  • выдача текущего баланса (SIM-карта в аргументе)

  • пополнение баланса (SIM-карта в аргументе)

  • деструктор.

4, 16

Создать класс «Вагон поезда», включающий данные-элементы: номер вагона, класс вагона, максимальное и занятое количество мест. Функции-элементы:

  • создание и инициализация (конструктор),

  • количество пассажиров, вышедших на промежуточной станции (в аргументе),

  • количество билетов, проданных на промежуточной станции (в аргументе, учесть наличие свободных мест),

  • выдача сообщения о количестве свободных мест в вагоне,

  • деструктор.

Создать класс «Поезд», включающий данные-элементы: номер поезда, количество мест, список вагонов поезда. Функции-элементы:

  • создание и инициализация (конструктор(список вагонов и другие поля в аргументе)),

  • количество пассажиров, вышедших на промежуточной станции,

  • выдача сообщения о количестве свободных мест в поезде,

  • деструктор

5, 17

Создать класс «Платная автостоянка», включающий данные-элементы: название, место расположения, список мест.

Методы:

  • создание и инициализация (список мест в аргументе),

  • выдача количества свободных мест и их номеров

  • выдача номера самого посещаемого места на парковке

  • освободить место (место в аргументе)

  • занять место (место в аргументе)

  • деструктор.

Создать класс «Место на стоянке», включающий данные-элементы: номер, статус (занято или нет), стоимость места.

Методы:

  • создание и инициализация (конструктор),

  • количество стоящих на нем машин за текущий день,

  • занято ли место или нет

  • деструктор

6, 18

Создать класс «Турникет автобуса», включающий данные-элементы: номер турникета, тип, состояние (открыт или закрыт)

Методы:

  • создание и инициализация (конструктор),

  • приложить билет (билет в аргументе)

  • выдача сообщения о приложенном билете (билет в аргументе),

  • выдача сообщения "Турникет открыт"/"Турникет закрыт – указание причины",

  • деструктор.

Создать класс «Билет», включающий данные-элементы: номер билета, срок действия билета, тип билета (разовый, проездной, социальная карта, транспортная карта). Функции-элементы:

  • создание и инициализация (конструктор),

  • анализ "годен/просрочен/использован",

  • выдача сообщения о сроке действия и виде билета,

  • деструктор

7, 19

Создать класс «Банковская карта», включающий данные-элементы: номер, имя владельца, количество денег на счете, пин-код. Функции-элементы:

  • создание и инициализация (конструктор),

  • приход (сумма – в аргументе)

  • расход (сумма – в аргументе)

  • деструктор.

Пояснение: очевидно, что карта не может пополнить свой баланс самостоятельно, также как и чтобы снять с нее деньги используется внешнее устройство.

Создать класс «Банкомат», включающий данные-элементы: номер, вставленная в него текущая карта. Функции-элементы:

  • создание и инициализация (конструктор),

  • вставить карту (ссылка на карту в аргументе)

  • положить деньги (сумма в аргументе, проверить пароль! использует вставленную в него карту)

  • оплатить ЖКХ (сумма – в аргументе, обязательно анализ правильности ввода пин-кода и остатка, минусовой баланс запрещен, использует вставленную в него карту),

  • выдача сообщения об остатке средств на карте (обязательно анализ правильности ввода пин-кода),

  • деструктор

8, 20

Создать класс «Вагон поезда», включающий данные-элементы: номер вагона, класс вагона, максимальное и занятое количество мест. Функции-элементы:

  • создание и инициализация (конструктор),

  • количество пассажиров, вышедших на промежуточной станции (в аргументе),

  • количество билетов, проданных на промежуточной станции (в аргументе, учесть наличие свободных мест),

  • выдача сообщения о количестве свободных мест в вагоне,

  • деструктор.

Создать класс «Поезд», включающий данные-элементы: номер поезда, количество мест, список вагонов поезда. Функции-элементы:

  • создание и инициализация (конструктор (список вагонов и другие поля в аргументе)),

  • количество пассажиров, вышедших на промежуточной станции,

  • выдача сообщения о количестве свободных мест в поезде,

  • деструктор

  • выдача сообщения о количестве свободных мест каждого класса,

  • деструктор.

9, 21

Создать класс «Пончик», включающий данные-элементы: вес теста, вес начинки. Методы:

  • создание и инициализация (конструктор (вес теста и начинки в аргументе)),

  • деструктор

Создать класс «Пончиковый аппарат», включающий данные-элементы: заправка тестом (в граммах), начинкой (в граммах), вес теста на один пончик, вес начинки на один пончик. Функции-элементы:

  • создание и инициализация (конструктор),

  • приготовлено обычных пончиков (количество – в аргументе) (возвращает список пончиков),

  • приготовлено пончиков с начинкой (количество – в аргументе), (возвращает список пончиков),

  • выдача сообщения, сколько можно еще приготовить пончиков разного вида,

  • деструктор.

10, 22

Создать класс «Цифровой фотоаппарат», включающий данные-элементы: модель, объем встроенной памяти, объем внешней памяти (карта памяти), список идентификаторов фотографий. Методы:

  • создание и инициализация без карты памяти (конструктор),

  • установка карты памяти в фотоаппарат (объем – в аргументе),

  • размещение фотографий во встроенной памяти, пока она не закончилась (список из фотографий в аргументе), с переходом во внешнюю память,

  • выдача сообщения о том, сколько еще осталось памяти.

  • деструктор.

Создать класс класс «Фотография», включающий данные-элементы: идентификатор, количество требуемой памяти.

Методы:

  • создание и инициализация (конструктор),

  • выдача идентификатора

  • выдача количества требуемой памяти

  • деструктор.

11, 23

Создать класс «Трехступенчатая ракета-носитель», включающий данные-элементы: вид топлива, объем каждой из ступеней, список ступеней.

Методы:

  • создание и инициализация (конструктор (список ступеней в аргументе)),

  • выдать сообщение о скорости ракеты через определенное время (заданное в аргументе), считая, что скорость растет линейно,

  • выдача сообщения о том, сколько времени должно пройти к моменту выхода на заданную орбиту,

  • выдать сообщение о том, какая ступень работает в данный момент (время – в аргументе), если все ступени уже отключились, то выдать сообщение об орбитальном полете и времени такого полета,

  • деструктор.

Создать класс «Ступень ракеты-носителя», включающий данные-элементы: вид топлива, объем топлива, время работы. Методы:

  • создание и инициализация (конструктор),

  • деструктор.

12, 24

Создать класс «Кофе», включающий данные-элементы: вес кофе, объем молока. Методы:

  • создание и инициализация (конструктор (вес кофе и объем молока в аргументе) для кофе разных видов),

  • деструктор

Создать класс «Кофе - машина», включающий данные-элементы: заправка кофе (в граммах), молоком (мл), вес кофе на одну чашечку, объем молока на одну чашечку. Методы:

  • создание и инициализация (конструктор),

  • приготовить обычный кофе (количество – в аргументе) (возвращает список чашечек кофе),

  • приготовить латте (количество – в аргументе), (возвращает список чашечек кофе),

  • приготовить капуччино (количество – в аргументе), (возвращает список чашечек кофе),

  • выдача сообщения, сколько можно еще приготовить кофе разного вида,

  • деструктор.

6