Смекни!
smekni.com

Разработка модели программного обеспечения для телевизора в среде Rational Rose (стр. 2 из 3)

2. Система проверяет значение текущего канала и переключает его на следующий.

3. Если значение канала больше 59, то происходит переключение на канал №0

Нажатие кнопки «Предыдущий канал»

1. Пользователь нажимает кнопку «Предыдущий канал»

2. Система проверяет значение текущего канала и переключает его на предыдущий.

3. Если значение канала меньше 0, то происходит переключение на канал №59

Введенный номер канала выходит за пределы допустимых значений

Если введенный номер канала выходит за пределы допустимых значений, то переключение канала телевизора не происходит.

Вариант использования Изменение громкости

Описывает изменение громкости телевизора пользователем. Данный вариант использования начинает выполняться, когда пользователь желает изменить громкость. Изменение громкости осуществляется кнопками «Г+» и «Г-» для увеличения и уменьшения громкости соответственно.

Основной поток событий

1. Пользователь нажимает на кнопку «Г+».

2. Система проверяет текущее значение громкости.

3. Если значение громкости не превышает максимального значения, то происходит увеличение громкости.

Альтернативные потоки

Нажатие кнопки «Г-»

1. Пользователь нажимает на кнопку «Г-».

2. Система проверяет текущее значение громкости.

3. Если значение громкости больше минимального значения, то происходит уменьшение громкости

Вариант использования Изменение настроек

Описывает изменение настроек телевизора пользователем. Данный вариант использования начинает выполняться, когда пользователь хочет изменить настройки телевизора. Изменение настроек осуществляется кнопками “<” и ”>”. Предварительно нажимается кнопка «Меню» для вывода на экран меню настроек.

Основной поток событий

1. Пользователь нажимает кнопку «Меню».

2. Система проверяет текущее значение яркости и выводит его на экран.

3. Кнопками “<” и ”>” пользователь регулирует яркость.

4. Пользователь нажимает кнопку «Меню».

5. Система проверяет текущее значение контрастности и выводит его на экран.

6. Кнопками “<” и ”>” пользователь регулирует яркость.

7. Пользователь нажимает кнопку «Меню».

8. Система проверяет текущее значение четкости и выводит его на экран.

9. Кнопками “<” и ”>” пользователь регулирует четкость.

10. Пользователь нажимает кнопку «Меню».

11. Система проверяет текущее значение цветовой гаммы и выводит его на экран.

12. Кнопками “<” и ”>” пользователь регулирует цветовую гамму.

Альтернативные потоки

Значение параметра выходит за допустимые пределы

Если значение параметра выходит за допустимые пределы, то изменение данного параметра не производить.

Вариант использования Сканирование каналов

Описывает поиск передач и сохранение их частот в памяти каналов. Данный вариант использования начинает выполняться, когда пользователь хочет осуществить поиск телепередач. Поиск передач начинается после нажатия кнопки Начальной установки.

Основной поток событий

1. Пользователь нажимает кнопку Начальной установки

2. Начинается поиск телепередач, на экран выводится «синий экран»

3. Рабочая частота постепенно увеличивается до тех пор, пока не обнаружит телевизионный сигнал. Найденная передача выводится на экран в течение 10 секунд.

4. Поиск продолжается пока не заполнена вся память каналов.


ПРОЕКТИРОВАНИЕ СИСТЕМЫ

Иерархия классов системы

Рисунок 2 - Иерархия классов системы

Описание классов

Класс TVScreen

Реализует функции дисплея телевизора.

Включает в себя такие методы как:

1. OutputTVSignal(int) – вывод ТВ сигнала на монитор.

2. DisplayMenu() – вывод «Меню» на экран телевизора.

3. DisplayVolumeState(int) – вывод на экран текущего значения громкости.

Класс TVButtons

Реализует функции кнопок на корпусе телевизора.

Включает в себя такие методы как:

1. IntPowerOnOffButton() – обработать нажатие кнопки включения/выключения телевизора.

Класс TVReceiver

Реализует функции приемника телевизионного сигнала.

Включает в себя такие методы как:

1. ReceiveTVSignal(int) – принять телевизионный сигнал.

2. IntChannelScan() – поиск телевизионных каналов.

Класс ChannelMemory

Реализует функции памяти каналов телевизора.

Включает в себя такие методы как:

1. SaveChannels() – сохранить частоты каналов в память телевизора

2. ClearSettings() – очистить память каналов телевизора.

Класс TVController

Реализует главный управляющий блок телевизора.

Включает в себя такие методы как:

1. OpenChannel(int) – переключить на выбранный пользователем канал.

2. SetVolume(int) – установить значение громкости.

3. Menu() – послать сообщение на вывод «Меню».

4. PowerOnOff() – включить/выключить телевизор.

5. FirstSetup() – послать сообщение на поиск телепередач.

Класс TVConsole

Реализует функции пульта дистанционного управления.

Включает в себя такие методы как:

1. IntDigitalButton() – обработать нажатие цифровых кнопок (0..9).

2. IntMoreLessVolumeButton() – обработать нажатие кнопок увеличения/уменьшения громкости.

3. IntPrevNextChannelButton() – обработать нажатие кнопок следующий/предыдущий канал.

4. IntMenuButton() – обработать нажатие кнопки «Меню».

5. IntDefaultSettingsButton() – обработать нажатие кнопки Начальной установки.

Класс SettingsMemory

Реализует функции памяти настроек телевизора.

Включает в себя такие методы как:

1. SaveSettings() – сохранить настройки яркости / контрастности / четкости / цветовой гаммы в память телевизора.

2. LoadSettings() – загрузить параметры яркости / контрастности / четкости / цветовой гаммы из памяти телевизора.

3. ClearSettings() – восстановить значения яркости / контрастности / четкости / цветовой гаммы по умолчанию.

Диаграмма классов

Диаграмма классов описывает структуру системы, показывая её классы, их атрибуты и операторы, и также взаимосвязи этих классов.


Рисунок 3 - Диаграмма классов

Диаграмма кооперации

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


Рисунок 4 - Диаграмма кооперации

Диаграмма состояний

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

Рисунок 5 - Диаграмма состояний

РЕАЛИЗАЦИЯ СИСТЕМЫ

Диаграмма компонентов.

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

телевизор программный проектирование настройка

Рисунок6 - Диаграммакомпонентов


Генерациякода

ChannelMemory.cpp

#include "ChannelMemory.h"

//##ModelId=4930347402CE

bool ChannelMemory::SaveChannels()

{

}

//##ModelId=4947C0C900FA

ChannelMemory::ClearSettings()

{

}

ChannelMemory.h

#ifndef CHANNELMEMORY_H_INCLUDED_B6AEDCE5

#define CHANNELMEMORY_H_INCLUDED_B6AEDCE5

//##ModelId=4930341A0232

//##Documentation

//## Устанавливаетсявтелевизоре

class ChannelMemory

{

public:

//##ModelId=4930347402CE

//##Documentation

//## Сохраняетканал

bool SaveChannels();

//##ModelId=4947C0C900FA

ClearSettings();

};

#endif /* CHANNELMEMORY_H_INCLUDED_B6AEDCE5 */

SettingsMemory.cpp

#include "SettingsMemory.h"

//##ModelId=49441168035B

bool SettingsMemory::SaveSettings()

{

}

//##ModelId=4944118303A9

int SettingsMemory::LoadSettings()

{

}

//##ModelId=4947C0D40186

SettingsMemory::ClearSettings()

{

}

SettingsMemory.h

#ifndef SETTINGSMEMORY_H_INCLUDED_B6AEB25E

#define SETTINGSMEMORY_H_INCLUDED_B6AEB25E

//##ModelId=4944114C03C8

class SettingsMemory

{

public:

//##ModelId=49441168035B

bool SaveSettings();

//##ModelId=4944118303A9

int LoadSettings();

//##ModelId=4947C0D40186

ClearSettings();

};

#endif /* SETTINGSMEMORY_H_INCLUDED_B6AEB25E */

TVButtons.cpp

#include "TVButtons.h"

//##ModelId=494B86E901B5

TVButtons::PowerOnOffButton()

{

}

TVButtons.h

#ifndef TVBUTTONS_H_INCLUDED_B6AEBEB2

#define TVBUTTONS_H_INCLUDED_B6AEBEB2

//##ModelId=4947BF1F0261

class TVButtons

{

public:

//##ModelId=494B86E901B5

PowerOnOffButton();

};

#endif /* TVBUTTONS_H_INCLUDED_B6AEBEB2 */

TVConsole.cpp

#include "TVConsole.h"

//##ModelId=493031890167

int TVConsole::DigitalButton(int ButtonNumber)

{

}

//##ModelId=494B88DF0119

int TVConsole::MoreLessVilumeButton(int Volume)

{

}

//##ModelId=494B88F20148

int TVConsole::PrevNextChannelButton(int Channel)

{

}

//##ModelId=494B8918033C

int TVConsole::MenuButton()

{

}

//##ModelId=494B893D038A

int TVConsole::DefaultSettingsButton()

{

}

TVConsole.h

#ifndef TVCONSOLE_H_INCLUDED_B6AE884F

#define TVCONSOLE_H_INCLUDED_B6AE884F

//##ModelId=4930314B03C8

//##Documentation

//## Пульт управления

class TVConsole

{

public:

//##ModelId=493031890167

int DigitalButton(int ButtonNumber);

//##ModelId=494B88DF0119

int MoreLessVilumeButton(int Volume);

//##ModelId=494B88F20148

int PrevNextChannelButton(int Channel);

//##ModelId=494B8918033C

int MenuButton();

//##ModelId=494B893D038A

int DefaultSettingsButton();

};

#endif /* TVCONSOLE_H_INCLUDED_B6AE884F */

TVController.cpp

#include "TVController.h"

//##ModelId=4951639A03A9

bool TVController::OpenChannel(int ChannelNumber)

{

}

//##ModelId=4951639A03AB

bool TVController::SetVolume(Integer Volume)

{

}

//##ModelId=4951639A03AD

TVController::Menu()

{

}

//##ModelId=4951639A03B9

bool TVController::PowerOnOff()

{

}

//##ModelId=4951639A03BA

TVController::FirstSetup()

{

}

TVController.h

#ifndef TVCONTROLLER_H_INCLUDED_B6AE96AB