132454354 Факультет Компьютерных Наук

это не пиратство -просто данный текст нигде не выложен - и едва ли используется в книге....

Воронежский Государственный Университет

Кафедра Программирования и Информационных Технологий

ОТЧЕТ ПО ПРАКТИКУМУ

по курсу «Информационные технологии»

Тема: «Система управления работой телевизора»

Исполнители:
студенты Ф.И.О.
Руководитель:
к. т. н., доц. Степанцов В. А.

Воронеж
2007

Оглавление
Постановка задачи 4
1. Анализ требований 5
Акторы 5
Варианты использования 5
Словарь проекта 6
2. Реализация вариантов использования 8
Включение телевизора (TurnOnTVset) 8
Очистка настроек каналов (ClearSettings) 8
Настройка параметров изображения (SetUpParameters) 9
Настройка громкости (SetUpVolume) 10
Отображение телевизионной картинки на экране (ShowPicture) 11
Переключение канала посредством пульта ДУ (SwitchChannelByRemoteControl) 11
Переключение канала посредством кнопок на корпусе телевизора (SwitchChannelByTVsetButtons) 12
Словарь проекта 12
3. Проектирование 14
Пакет Boundary (Граница) 14
Класс RemoteControl 14
Операции 14
Класс TVButtonsSet 14
Операции 14
Класс Screen 15
Операции 15
Класс Speaker 15
Операции 15
Класс TVSignalReceiver 15
Операции 15
Пакет Control (Управление) 16
Класс ScreenControl 16
Операции 16
Атрибуты 17
Класс TVSignalReceiverControl 17
Операции 17
Атрибуты 17
Класс SpeakerControl 17
Операции 18
Атрибуты 18
Класс AutomaticChannelsSetUp 18
Операции 18
Атрибуты 18
Класс ParametersControl 18
Операции 18
Атрибуты 19
Пакет Entity (Сущность) 19
Класс ChannelsMemoryManager 19
Операции 19
Класс ChannelMemory 19
Операции 19
Атрибуты 20
Класс SettingsMemory 20
Операции 20
Атрибуты 20
Диаграммы классов 21
Включить телевизор (TurnOnTVset) 21
Очистка настроек каналов (ClearSettings) 21
Настройка параметров изображения (SetUpParameters) 22
Настройка громкости (SetUpVolume) 22
Отображение телевизионной картинки на экране (ShowPicture) 23
Переключение канала (SwitchChannel) 23
4. Конструирование 24
Диаграммы компонентов 24
Зависимости пакетов 24
Главная диаграмма зависимости интерфейсов 25
Пакет сущность (Entity) 25
Пакет экран (Screen) 26
Пакет динамик (Speaker) 26
Пакет временные объекты (Temporary) 26
Пакет приемник телевизионного сигнала (TVSignalReceiver) 26
Пакет пользовательский интерфейс (UserInterface) 27
Диаграмма размещения 27
Схема данных 28
Заключение 29

Список рисунков
Рисунок 1 Диаграмма вариантов использования 5
Рисунок 2 Включение телевизора 8
Рисунок 3 Очистка настроек каналов 9
Рисунок 4 Настройка параметров изображения 10
Рисунок 5 Настройка громкости 11
Рисунок 6 Отображение телевизионной картинки на экране 11
Рисунок 7 Переключение канала посредством пульта ДУ 12
Рисунок 8 Включение телевизора 21
Рисунок 9 Очистка настроек каналов 21
Рисунок 10 Настройка параметров изображения 22
Рисунок 11 Настройка громкости 22
Рисунок 12 Отображение телевизионной картинки на экране 23
Рисунок 13 Переключение канала 23
Рисунок 14 Зависимости пакетов 24
Рисунок 15 Общая диаграмма зависимости интерфейсов 25
Рисунок 16 Пакет сущность 25
Рисунок 17 Пакет экран 26
Рисунок 18 Пакет динамик 26
Рисунок 19 Пакет временные объекты 26
Рисунок 20 Пакет приемник телевизионного сигнала 26
Рисунок 21 Пакет пользовательский интерфейс 27
Рисунок 22 Диаграмма размещения 27
Рисунок 23 Схема данных 28

Постановка задачи
Требуется разработать средствами Rational Rose модель встроенной системы управления работой телевизора.
В телевизоре имеются следующие устройства: приемник телевизионного сигнала, устройство отображения картинки, память каналов, память настроек, управляющие кнопки, пульт дистанционного управления (ДУ). Управление телевизором осуществляется при помощи кнопок на корпусе (их четыре: "ВКЛ / ВЫКЛ", " - ", " + ", кнопка начальной установки) и пульта ДУ. Кнопка "ВКЛ / ВЫКЛ" позволяет включать и выключать телевизор. После включения телевизора на экран отображается передача, идущая по каналу №1, при этом используются параметры изображения и значение громкости, сохраненные в памяти настроек.
Память каналов телевизора хранит до 60 каналов. Каналы нумеруются, начиная с нуля. Последовательное переключение каналов осуществляется при помощи кнопок "-" и "+". Нажатие на "+" переключает телевизор на канал с номером, на единицу большим (с 59-го канала телевизор переключается на 0-ой). Нажатие на "-" переключает телевизор на канал с номером, на единицу меньшим (с 0-го канала телевизор переключается на 59-ый). При нажатии на кнопку начальной установки очищается память каналов телевизора, после чего осуществляется поиск передач и сохранение их частот в памяти каналов. Поиск начинается с нижней границы рабочего диапазона телевизора. На экран телевизора выводится "синий экран". Рабочая частота постепенно увеличивается до тех пор, пока приемник не обнаружит телевизионный сигнал. Найденная передача выводится на экран в течение 10 секунд. Также отображается номер, под которым найденный канал будет сохранен в памяти (начиная с 1). Затем поиск продолжается до тех пор, пока не будет достигнута верхняя граница диапазона, или не заполнится вся память каналов. Телевизор принимает управляющие сигналы с пульта ДУ. На пульте ДУ расположены следующие кнопки:
• кнопки с цифрами "0"..."9" для прямого переключения канала (по номеру);
• кнопки "П-" и "П+" для последовательного переключения каналов;
• кнопки "Г-" и "Г+" для изменения громкости;
• кнопки "МЕНЮ", " " для доступа к экранному меню.
Для прямого переключения на нужный канал его номер набирается с помощью кнопок с цифрами. После нажатия первой цифры в течение 5 секунд ожидается нажатие второй. Если вторая цифра не была нажата, то номер канала считается состоящим из одной цифры и осуществляется переключение на него. Кнопки "П-" и "П+" на пульте имеют те же функции, что и кнопки "-" и "+" на корпусе телевизора. Кнопки "Г-" и "Г+" позволяют увеличивать или уменьшать громкость. Каждое нажатие на "Г-" уменьшает громкость на одну единицу, пока она больше нуля, "Г+" увеличивает громкость на единицу, пока не достигнуто максимальное значение. Текущее значение громкости сохраняется в памяти настроек.
Кнопки "МЕНЮ", "" позволяют устанавливать значения настоек, хранящихся в памяти телевизора. При нажатии на кнопку "МЕНЮ" внизу экрана возникает надпись "ЯРКОСТЬ" и полоса, отображающая текущее значение яркости. Кнопками "" яркость можно уменьшить или увеличить. При работе с меню нажатия на все остальные кнопки игнорируются. После повторного нажатия на кнопку "МЕНЮ" значение яркости запоминается в памяти настроек, и осуществляется переход к настройке контрастности. Настройка контрастности и остальных параметров (четкости, цветовой гаммы) происходит аналогично. Нажатие на кнопку "МЕНЮ" по окончании настройки цветовой гаммы (последнего пункта меню) приводит к окончанию работы с меню. Выход из меню также осуществляется в том случае, если в течение 15 секунд не была нажата ни одна кнопка.

Анализ требований
В этой главе рассматриваются требования к системе “Телевизор”, описываемые в виде вариантов использования.
На рисунке 1 приводится диаграмма вариантов использования, ниже дается их краткое описание и описание действующих лиц (акторов).

Рисунок 1 Диаграмма вариантов использования

Акторы
Televiewer (Зритель) — тот, кто смотрит телевизор (TVset).
Time (Время) — общепринятое понятие времени. Этот актор каждую 1/25 часть секунды инициирует сценарий Показать картинку (Show Picture) с целью отобразить картинку на экране для телезрителя.

Варианты использования
TurnOn (ВКЛ) — включить телевизор (TVset). Выполняется нажатием кнопки ВКЛ/ВЫКЛ на корпусе телевизора. Предусловие: телевизор должен быть выключен. Постусловие: телевизор должен быть включен.
TurnOff (ВЫКЛ) — выключить телевизор (TVset). Выполняется нажатием кнопки ВКЛ/ВЫКЛ на корпусе телевизора. Предусловие: телевизор должен быть включен. Постусловие: телевизор должен быть выключен.
ShowPicture (Показать картинку) — показывает картинку на экране телевизора. Предусловие: телевизор должен быть включен.
SwitchChannel (Переключение канала). Производится как при помощи пульта ДУ, так и непосредственно кнопками на корпусе телевизора. Предусловие: телевизор должен быть включен.
SettingUpVolume (Настройка громкости) — Настройка громкости телевизора. Производится с пульта ДУ. Предусловие: телевизор должен быть включен.
SetUpTVsetParameters (Настройка параметров телевизора) — позволяет настраивать яркость, контрастность, четкость и цветовую гамму. Операция выполняется при помощи кнопки МЕНЮ пульта ДУ.
ClearSettings (Начальная установка) — сброс всех настроек каналов и их повторная автоматическая настройка. Выполняется нажатием соответствующей кнопки на корпусе телевизора. Предусловие: телевизор должен быть включен.
Словарь проекта
Здесь приводятся понятия, которые используются при описании функциональных требований.

Понятие Описание
Televiewer (Телезритель) Тот, кто смотрит телевизор (TVset), т.е. пользователь телевизора.
TVset (Телевизор) Прибор для просмотра телевизионных передач. Собственно, моделируемая система.
Remote Control (пульт дистанционного управления – пульт ДУ) Устройство для управления телевизором на расстоянии. Содержит ряд кнопок, при нажатии на которые команды передаются непосредственно телевизору.
Button ON/OFF (кнопка ВКЛ/ВЫКЛ) Кнопка на корпусе телевизора. Предназначена для включения и выключения телевизора.
Button + (кнопка +) Кнопка на корпусе телевизора. Предназначена для переключения каналов. При ее нажатии номер канала увеличивается на 1. Если номер канала равен 59, то после нажатия этой кнопки он станет равным 0.
Button - (кнопка -) Кнопка на корпусе телевизора. Предназначена для переключения каналов. При ее нажатии номер канала уменьшается на 1. Если номер канала равен 0, то после нажатия этой кнопки он станет равным 59.
Clear Settings button (кнопка начальной установки) Кнопка на корпусе телевизора. Предназначена для сброса текущих настроек каналов и осуществления автоматического поиска каналов “с нуля”.
Digit buttons 0..9 (кнопки для прямого переключения канала по номеру) Кнопки на пульте ДУ. Используются для прямого указания канала, на который требуется переключиться.
C+ button (кнопка П+) Кнопка на пульте ДУ. Предназначена для переключения каналов. При ее нажатии номер канала увеличивается на 1. Если номер канала равен 59, то после нажатия этой кнопки он станет равным 0.
C- button (кнопка П-) Кнопка на пульте ДУ. Предназначена для переключения каналов. При ее нажатии номер канала уменьшается на 1. Если номер канала равен 0, то после нажатия этой кнопки он станет равным 59.
V+ button (кнопка Г+) Кнопка на пульте ДУ. Предназначена для увеличения громкости.
V- button (кнопка Г-) Кнопка на пульте ДУ. Предназначена для уменьшения громкости.
MENU button (кнопка МЕНЮ) Кнопка на пульте ДУ. Предназначена для вызова меню по работе с настройками телевизора. Меню, вызываемое этой кнопкой, позволяет настроить яркость, контрастность, четкость и цветовую гамму (красную, синюю и зеленую составляющие).
> button (кнопка >) Кнопка на пульте ДУ. Предназначена для увеличения значения настраиваемого в данный момент параметра (яркости, контрастности, четкости или цветовой гаммы), выбранного при помощи кнопки МЕНЮ.
Channel (канал) Некоторое абстрактное понятие ассоциирующееся у пользователя с вполне определенным набором телевизионных передач, показываемых при выборе им (пользователем) некоторого вполне определенного состояния телевизора, которое обычно называется следующим образом: “Телевизор настроен на канал”.

Реализация вариантов использования
Эта глава содержит диаграммы взаимодействия между объектами, соответствующие потокам событий вариантов использования. Диаграммы кооперации здесь не представлены в силу того, что могут быть легко получены из диаграмм последовательности, а диаграмм последовательности вполне достаточно для описания функциональности рассматриваемой системы.
В силу того, что специфика задачи предполагает фактически отсутствие альтернативных потоков событий, на всех рассматриваемых ниже диаграммах приводятся основные потоки событий.

Включение телевизора (TurnOnTVset)
Включение телевизора предполагает посылку сообщения TurnOn основным компонентам системы, т.е. контролерам экрана, динамика и устройства принятия сигнала.
В качестве реакции на сообщение TurnOn контроллеры соответствующих устройств считывают необходимые им данные из памяти (память настроек изображения и памяти каналов).

Рисунок 2 Включение телевизора

Очистка настроек каналов (ClearSettings)
В случае нажатия пользователем кнопки начальной установки производится очистка памяти настроек каналов и осуществляется новая настройка каналов. Для выполнения этой операции создается временный объект (экземпляр класса AutomaticChannelsSetUp), который и руководит всей настройкой.
В первую очередь производится очистка памяти каналов. Затем начинается процесс поиска каналов. Устройству управления приемником сигнала периодически посылается сообщение с требованием увеличить частоту на некоторую дельта. Затем производится проверка, поступает ли на заданной частоте полезный сигнал. Если сигнал полезный, то канал показывается в течение 10 секунд и затем сохраняется в памяти настроек каналов.

Рисунок 3 Очистка настроек каналов

Настройка параметров изображения (SetUpParameters)
В случае нажатия пользователем кнопки МЕНЮ начинается процесс настройки параметров изображения. Для выполнения этой операции создается временный объект (экземпляр класса ParametersControl), который и руководит всей настройкой. Сразу после создания этот объект запрашивает текущие настройки из памяти.
Смена настраиваемого параметра осуществляется путем нажатия на кнопке МЕНЮ. При первом нажатии на эту кнопку активным становится параметр ЯРКОСТЬ. Настраиваемый параметр и его текущее значение высвечивается на экране. Теперь зритель может путем нажатия кнопок “>” или “

Рисунок 4 Настройка параметров изображения

Настройка громкости (SetUpVolume)
Настройка громкости осуществляется путем нажатия кнопок “Г+” и “Г-” на пульте ДУ. При этом распоряжение зрителя передается экземпляру объекта SpeakerControl, который устанавливает новое значение громкости в динамике и сохраняет данные о громкости в памяти настроек.

Рисунок 5 Настройка громкости

Отображение телевизионной картинки на экране (ShowPicture)
Через каждую 1/25 секунды срабатывает таймер и посылается сообщение приемнику телевизионного сигнала, чтобы он обновил картинку.

Рисунок 6 Отображение телевизионной картинки на экране

Переключение канала посредством пульта ДУ (SwitchChannelByRemoteControl)
С пульта ДУ можно переключать канал двумя способами: изменяя номер канала относительно текущего его значения (посредством кнопок “П+” и “П-”) или вводя его абсолютное значение посредством кнопок с цифрами. В любом случае команду на изменение канала получает устройство управления, которое запрашивает частоту, соответствующую каналу у менеджера памяти каналов. Получив частоту, он устанавливает ее в приемнике телевизионного сигнала.

Рисунок 7 Переключение канала посредством пульта ДУ

Переключение канала посредством кнопок на корпусе телевизора (SwitchChannelByTVsetButtons)
Полностью аналогично предыдущему разделу за исключением того, что можно задавать новый канал только относительно старого.

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

Понятие Описание
TVButtonsSet (кнопки управления телевизором на корпусе телевизора) Ряд кнопок на корпусе телевизора, для управления телевизором.
RemoteControl (пульт дистанционного управления – пульт ДУ) Устройство для управления телевизором на расстоянии. Содержит ряд кнопок, при нажатии на которые команды передаются непосредственно телевизору.
ScreenControl (управление устройством отображения картинки) Сущность, которая управляет логикой работы устройства отображения картинки
Screen (устройство отображения картинки) Устройство отображения видео информации.
TVSignalReceiverControl (управление приемником телевизионного сигнала) Сущность, которая управляет логикой работы приемника телевизионного сигнала
TVSignalReceiver (приемник телевизионного сигнала) Устройство, получающее телевизионный сигнал и преобразующее его в сигналы понятные устройству отображения картинки и динамику.
SpeakerControl (управление динамиком) Сущность, которая управляет логикой работы динамика.
Speaker (динамик) Устройство для вывода звуковой информации.
ChannelsMemory (память каналов) Устройство для хранения настроек каналов (элементом является пара (номер канала, частота)).
SettingsMemory (память настроек) Устройство для хранения настроек телевизора таких, как яркость, контрастность, четкость и цветовая гамма.
AutomaticChannelsSetUp (автоматическая настройка каналов) Объект, который управляет автоматической настройкой каналов. Возникает только при осуществлении настройки.
ParametersControl (управление настройкой параметров) Объект, который управляет процессом настройки параметров картинки. Возникает только при необходимости, то есть когда осуществляется настройка этих параметров.

Проектирование
Раздел содержит описание ответственности классов, а также их операции и атрибуты.
Замечание: если не сказано отдельно, то подразумевается, что на этапе выполнения каждый класс имеет ровно один экземпляр.
Пакет Boundary (Граница)
Раздел описывает пограничные классы системы, которые имеют взаимодействие с внешним миром (относительно системы).
Класс RemoteControl
Инкапсулирует функции управления телевизором при помощи пульта дистанционного управления. Преимущественно переадресует команды пользователя соответствующим объектам, отвечающим за управление за исключением того, что может самостоятельно обрабатывать сообщение DigitPressed, в результате чего готовый номер канала (возможно, состоящего из 2-х цифр) передается объекту TVSignalReceiverControl.
Операции
Имя Сигнатура Описание
MENU Pressed
MENUPressed ()
Нажата кнопка “МЕНЮ”
LTPressed
LTPressed ()
Нажата кнопка “ GTPressed
GTPressed ()
Нажата кнопка “>”
Plus Volume
PlusVolume ()
Нажата кнопка “Г+”
Minus Volume
MinusVolume ()
Нажата кнопка “Г-”
Plus Channel
PlusChannel ()
Нажата кнопка “П+”
Minus Channel
MinusChannel ()
Нажата кнопка “П-”
Digit Pressed
DigitPressed (Byte digit) Нажата кнопка с цифрой (0 – 9)

Класс TVButtonsSet
Инкапсулирует функции управления телевизором при помощи кнопок, расположенных на корпусе телевизора. Является пограничным классом, поэтому не выполняет никаких сложных действий, а только переправляет сообщения соответствующим объектам управления.
Операции
Имя Сигнатура Описание
TurnOn
TurnOn ()
Включить телевизор
PlusChannel
PlusChannel ()
Нажата кнопка “+”
MinusChannel
MinusChannel ()
Нажата кнопка “-”
ClearSettings
ClearSettings ()
Нажата кнопка начальной установки

Класс Screen
Инкапсулирует физическое устройство экран (обычно ЭЛТ). Фактически трансформирует команды, передаваемые устройством управления экраном (ScreenControl) в команды физического устройства.
Операции
Имя Сигнатура Описание
Show Brightness ShowBrightness () Показать на экране значение яркости
Show Contrast ShowContrast ()
Показать на экране значение контрастности
Show Clearness ShowClearness () Показать на экране значение четкости
ShowR
ShowR ()
Показать на экране значение составляющей красного цвета
ShowG
ShowG ()
Показать на экране значение составляющей зеленого цвета
ShowB
ShowB ()
Показать на экране значение составляющей синего цвета
UpdateScreen
UpdateScreen ()
Изменить картинку на экране в соответствии с новой информацией, полученной от приемника сигнала

Класс Speaker
Инкапсулирует физическое устройство динамик. Фактически трансформирует команды, передаваемые устройством управления динамиком (SpeakerControl) в команды физического устройства.
Операции
Имя Сигнатура Описание
ChangeVolume
ChangeVolume ()
Изменить громкость
UpdateSound
UpdateSound ()
Изменить звук, который воспроизводит динамик

Класс TVSignalReceiver
Инкапсулирует физическое устройство приемник телевизионного сигнала. Фактически трансформирует команды, передаваемые устройством управления приемника телевизионного сигнала (TVSignalReceiverControl) в команды физического устройства. Также в его функции входят функции таймера, т.е. этот класс является инициатором обновления картинки на экране и звукового сопровождения.
Операции
Имя Сигнатура Описание
UpdateFrequency
UpdateFrequency (Double freq) Изменить частоту приема
BeatTimePicture
BeatTimePicture ()
Новая картинка (прошла 1/25 секунды)
BeatTimeSound
BeatTimeSound ()
Новый звук
IncrementFrequency IncrementFrequency ()
Увеличить частоту на некоторую дельта (используется при автоматической настройке каналов)

Пакет Control (Управление)
Раздел описывает классы, которые осуществляют управление системой.
Класс ScreenControl
Класс осуществляет управление экраном (Screen). Он хранит значения параметров изображения таких, как яркость, контрастность, четкость и цветовая гамма. Также осуществляет их изменение по командам пользователя (при этом осуществляет проверку на допустимость значений этих параметров).
Операции
Имя Сигнатура Описание
TurnOn
TurnOn ()
Включить экран
ShowBrightness
ShowBrightness ()
Показать значение яркости на экране
ShowContrast
ShowContrast ()
Показать значение контрастности на экране
ShowClearness
ShowClearness ()
Показать значение четкости на экране
ShowR
ShowR ()
Показать значение красной составляющей цвета на экране
ShowG
ShowG ()
Показать значение зеленой составляющей цвета на экране
ShowB
ShowB ()
Показать значение синей составляющей цвета на экране
MinusBrightness
MinusBrightness ()
Уменьшить яркость
PlusBrightness
PlusBrightness ()
Увеличить яркость
MinusContrast
MinusContrast ()
Уменьшить контрастность
PlusContrast
PlusContrast ()
Увеличить контрастность
MinusClearness
MinusClearness ()
Уменьшить четкость
PlusClearness
PlusClearness ()
Увеличить четкость
MinusR
MinusR ()
Уменьшить красную составляющую цвета
PlusR
PlusR ()
Увеличить красную составляющую цвета
MinusG
MinusG ()
Уменьшить зеленую составляющую цвета
PlusG
PlusG ()
Увеличить зеленую составляющую цвета
MinusB
MinusB ()
Уменьшить синюю составляющую цвета
PlusB
PlusB ()
Увеличить зеленую составляющую цвета
UpdateScreen
UpdateScreen ()
Обновить экран
Атрибуты
Имя Тип Описание
brightness
Byte Яркость
contrast
Byte Контрастность
clearness
Byte Четкость
r
Byte Красная составляющая
g
Byte Зеленая составляющая
b
Byte Синяя составляющая

Класс TVSignalReceiverControl
Класс осуществляет управление приемником телевизионного сигнала (TVSignalReceiver). Он хранит значения номера текущего канала и частоты этого канала. Также осуществляет изменение номера канала по команде пользователя (при этом осуществляет проверку на выход за границы номера канала).
Операции
Имя Сигнатура Описание
TurnOn
TurnOn ()
Включить приемник сигнала
PlusChannel
PlusChannel ()
Переключиться на следующий по порядку канал
MinusChannel
MinusChannel ()
Переключиться на предыдущий по порядку канал
SetChannel
SetChannel (Byte channel)
Переключиться на явно заданный канал
UpdatePicture
UpdatePicture ()
Произошло изменение картинки
UpdateSound
UpdateSound ()
Произошло изменение звука
StartAutosearch
StartAutosearch ()
Начать автоматическую настройку каналов
IncrementFrequency
IncrementFrequency ()
Увеличить частоту
Атрибуты
Имя Тип Описание
channel
Byte Номер текущего канала
frequency
Double Текущая частота

Класс SpeakerControl
Класс осуществляет управление динамиком (Speaker). Он хранит значение громкости. Также осуществляет изменение громкости по команде пользователя (при этом осуществляет проверку на допустимость значения громкости).
Операции
Имя Сигнатура Описание
TurnOn
TurnOn ()
Включить динамик
PlusVolume
PlusVolume ()
Увеличить громкость
MinusVolume
MinusVolume ()
Уменьшить громкость
UpdateSound
UpdateSound ()
Обновить звук
Атрибуты
Имя Тип Описание
volume
Byte Текущее значение громкости
Класс AutomaticChannelsSetUp
Класс отвечает за автоматическую настройку каналов. В отличие от большинства других классов экземпляр этого класса создается только при необходимости выполнения настройки программ телевизора (в силу того, что при обычной работе он не нужен). Хранит значения текущего (настраиваемого) канала и значение его частоты.
Операции
Имя Сигнатура Описание
CheckForSignal CheckForSignal () Проверка есть ли на текущей частоте полезный сигнал (то есть можно ли считать это каналом)
Wait
Wait ()
Подождать 10 секунд перед продолжением поиска новых каналов
create
create ()
Создание самого объекта AutomaticChannelsSetUp
Атрибуты
Имя Тип Описание
channel
Byte Текущий канал
freq
Double Частота текущего канала
Класс ParametersControl
Класс отвечает за настройку параметров изображения. В отличие от большинства других классов экземпляр этого класса создается только при необходимости выполнения настройки параметров изображения (в силу того, что при обычной работе он не нужен). Хранит значения всех настраиваемых параметров: яркости, контрастности, четкости и цветовой гаммы.
Операции
Имя Сигнатура Описание
MENUPressed
MENUPressed ()
Нажата кнопка “МЕНЮ”
LTPressed
LTPressed ()
Нажата кнопка “ GTPressed
GTPressed ()
Нажата кнопка “>”
create
create ()
Собственно создание объекта
Атрибуты
Имя Тип Описание
brightness Byte Яркость
contrast
Byte Контрастность
clearness
Byte Четкость
r
Byte Красная составляющая цвета
g
Byte Зеленая составляющая цвета
b
Byte Синяя составляющая цвета
state
Byte Хранит текущее состояние настройки, то есть какой параметр сейчас настраивается
Пакет Entity (Сущность)
Раздел описывает классы, которые хранят данные в промежутках между работой программы управления устройством (телевизором).
Класс ChannelsMemoryManager
Управляет хранением настроек каналов. Имеет ссылку на список объектов класса ChannelMemory.
Операции
Имя Сигнатура Описание
GetFrequency
Double GetFrequency (Byte channel)
Запросить частоту по номеру канала
SetFrequency
SetFrequency (Byte channel, Double frequency)
Установить частоту frequency, соответствующую каналу channel
ClearMemory
ClearMemory ()
Очистить всю память (используется при автоматической настройке каналов)

Класс ChannelMemory
Хранит частоту для одного канала.
Операции
Имя Сигнатура Описание
GetFrequency
Double GetFrequency ()
Выдать частоту, которую хранит объект
SetFrequency
SetFrequency (Double frequency)
Установить частоту
GetChannel
Byte GetChannel ()
Возвратить номер канала, для которого данный объект хранит частоту
Атрибуты
Имя Тип Описание
frequency
Double Хранящаяся частота
channel
Byte Номер канала, для которого хранится частота

Класс SettingsMemory
Хранит настройки параметров изображения и настройки громкости.
Операции
Имя Сигнатура Описание
GetScreenSettings
GetScreenSettings ()
Получить настройки экрана
GetVolume
GetVolume ()
Получить значение громкости
SetVolume
SetVolume (Byte volume)
Установить новое значение громкости
SetBrightness
SetBrightness (Byte brightness)
Установить новое значение яркости
SetContrast
SetContrast (Byte contrast)
Установить новое значение контрастности
SetClearness
SetClearness (Byte clearness)
Установить новое значение четкости
SetR
SetR (Byte r)
Установить новое значение красной составляющей
SetG
SetG (Byte g)
Установить новое значение зеленой составляющей
SetB
SetB (Byte b)
Установить новое значение синей составляющей
Атрибуты
Имя Тип Описание
volume
Byte Значение громкости
brightness
Byte Значение яркости
contrast
Byte Значение контрастности
clearness
Byte Значение четкости
r
Byte Значение красной составляющей
g
Byte Значение зеленой составляющей
b
Byte Значение синей составляющей

Диаграммы классов
Раздел содержит диаграммы классов и в отдельных комментариях не нуждается.
Включить телевизор (TurnOnTVset)

Рисунок 8 Включение телевизора

Очистка настроек каналов (ClearSettings)

Рисунок 9 Очистка настроек каналов
Настройка параметров изображения (SetUpParameters)

Рисунок 10 Настройка параметров изображения

Настройка громкости (SetUpVolume)

Рисунок 11 Настройка громкости

Отображение телевизионной картинки на экране (ShowPicture)

Рисунок 12 Отображение телевизионной картинки на экране

Переключение канала (SwitchChannel)

Рисунок 13 Переключение канала

Конструирование
Глава содержит диаграммы компонентов для каждого пакета и для системы в целом. Также приводится диаграмма размещения и схема реляционной базы данных.

Диаграммы компонентов
Ниже приводятся диаграммы компонентов.

Зависимости пакетов
Компоненты из которых состоит система сгруппированы по следующим пакетам:
• UserInterface (пользовательский интерфейс). Реализует классы RemoteControl и TVButtonsSet;
• Speaker (динамик). Реализует классы Speaker и SpeakerControl;
• Temporary (временные объекты). Реализует классы AutomaticChannelsSetUp и ParametersControl;
• TVSignalReceiver (приемник телевизионного сигнала). Реализует классы TVSignalReceiver и TVSignalReceiverControl;
• Screen (экран). Реализует классы Screen и ScreenControl;
• Entity (сущность). Реализует классы SettingsMemory, ChannelsMemoryManager и ChannelMemory;
• TV_DB (база данных).
Зависимости между данными пакетами представлены на следующей диаграмме.

Рисунок 14 Зависимости пакетов

Главная диаграмма зависимости интерфейсов
На этой диаграмме показана физическая структура в целом в терминах спецификаций пакетов. Здесь не отображаются тела пакетов с целью не загромождать диаграмму.

Рисунок 15 Общая диаграмма зависимости интерфейсов

Пакет сущность (Entity)
Содержит спецификации и тела компонентов для пакета сущность.

Рисунок 16 Пакет сущность

Пакет экран (Screen)
Содержит спецификации и тела компонентов для пакета экран.

Рисунок 17 Пакет экран

Пакет динамик (Speaker)
Содержит спецификации и тела компонентов для пакета динамик.

Рисунок 18 Пакет динамик

Пакет временные объекты (Temporary)
Содержит спецификации и тела компонентов для пакета временные объекты.

Рисунок 19 Пакет временные объекты

Пакет приемник телевизионного сигнала (TVSignalReceiver)
Содержит спецификации и тела компонентов для пакета приемник телевизионного сигнала.

Рисунок 20 Пакет приемник телевизионного сигнала

Пакет пользовательский интерфейс (UserInterface)
Содержит спецификации и тела компонентов для пакета пользовательский интерфейс.

Рисунок 21 Пакет пользовательский интерфейс

Диаграмма размещения
Система состоит из двух процессоров: собственно программа управления телевизором (TVsetManagementProgram) и программа управления пультом ДУ (RemoteControl). В последнем процессоре практически никакой обработки данных не производится, а он занимается передачей команд телезрителя программе управления телевизором.
Программа управления телевизором имеет связь со следующими устройствами, которыми управляет или от которых получает информацию: экран (Screen), динамик (Speaker), приемник телевизионного сигнала (TVSignalReceiver) и антенна (Antenna).

Рисунок 22 Диаграмма размещения

Схема данных
Ниже приводятся две реляционные таблицы, используемые для хранения данных.

Рисунок 23 Схема данных

Заключение
В рамках данной работы проведен анализ и проектирование системы управления работой телевизора в соответствии с подходом к разработке программного обеспечения принятым компании Rational. В результате была построена объектная модель системы на UML с использованием продукта Rational Rose. Модель была успешно проверена средствами вышеупомянутой системы проектирования и была использована для генерации кода на C++, который содержал описания классов с заголовками методов и описания атрибутов. Также была создана схема реляционной базы данных, которая может использоваться для хранения различных настроек телевизора. По этой схеме был автоматически сгенерирован скрипт для СУБД Oracle 8, который использовался для создания реальной базы данных для Oracle 8i версии 8.1.7.