Проектирование системы

 

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

 

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

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

Класс TVScreen

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

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

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

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

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

Класс TVButtons

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

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

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

Класс TVReceiver

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

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

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

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

Класс ChannelMemory

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

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

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

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

Класс TVController

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

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

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

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

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

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

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

Класс TVConsole

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

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

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

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

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

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

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

Класс 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

#define TVCONTROLLER_H_INCLUDED_B6AE96AB

//##ModelId=4951638D02BF

class TVController

{

public:

//##ModelId=4951639A03A9

bool OpenChannel(int ChannelNumber);

//##ModelId=4951639A03AB

bool SetVolume(Integer Volume);

//##ModelId=4951639A03AD

Menu();

//##ModelId=4951639A03B9

bool PowerOnOff();

//##ModelId=4951639A03BA

FirstSetup();

};

#endif /* TVCONTROLLER_H_INCLUDED_B6AE96AB */

TVReceiver.cpp

#include "TVReceiver.h"

//##ModelId=493033FA00BB

bool TVReceiver::ReceiveTVSignal(int ChannelNumber)

{

}

//##ModelId=4947C118000F

int TVReceiver::ChannelScan()

{

}

TVReceiver.h

#ifndef TVRECEIVER_H_INCLUDED_B6AE952B

#define TVRECEIVER_H_INCLUDED_B6AE952B

//##ModelId=493033CE006D

class TVReceiver

{

public:

//##ModelId=493033FA00BB

//##Documentation

//## Принимает ТВ сигнал

bool ReceiveTVSignal(int ChannelNumber = 1);

//##ModelId=4947C118000F

int ChannelScan();

};

#endif /* TVRECEIVER_H_INCLUDED_B6AE952B */

TVScreen.cpp

#include "TVScreen.h"

//##ModelId=493031280261

bool TVScreen::OutputTVSignal(int ChannelNumber)

{

}

//##ModelId=49453D82007D

TVScreen::DisplayMenu()

{

}

//##ModelId=49453DF1033C

TVScreen::DisplayVolimeState()

{

}

TVScreen.h

#ifndef TVSCREEN_H_INCLUDED_B6AE8410

#define TVSCREEN_H_INCLUDED_B6AE8410

//##ModelId=493030A8004E

//##Documentation

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

class TVScreen

{

public:

//##ModelId=493031280261

bool OutputTVSignal(int ChannelNumber = 1);

//##ModelId=49453D82007D

DisplayMenu();

//##ModelId=49453DF1033C

DisplayVolimeState();

};

#endif /* TVSCREEN_H_INCLUDED_B6AE8410 */



ЗАКЛЮЧЕНИЕ

 

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

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

Возможно со временем язык UML станет тем "эсперанто", на котором смогут общаться математики, системные аналитики, физики, программисты, менеджеры, экономисты и специалисты других профессий, представляя свои профессиональные знания в унифицированном виде. Ведь, по существу, каждый из специалистов оперирует модельными представлениями в своей области знаний. И именно этот модельный аспект может быть специфицирован средствами языка UML.

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



СПИСОК ЛИТЕРАТУРЫ

1. Черемных С.В., Ручкин В.С., Семенов И.О. Структурный анализ систем. IDEF-технологии - М.: Финансы и статистика, 2001

2. Смирнова Г.Н.,Сорокин А.А., Тельнов Ю.Ф. Проектирование экономических информационных систем. Учебник - М.: «Финансы и статистика», 2002

3. Маклаков С.В. Создание информационных систем с AllFusion Modelling Suite - М.: Диалог-МИФИ, 2003

4. Буч Г. Объектно-ориентированное проектирование с примерами применения - М.: Конкорд, 1992

5. Нейбург Э. Д., Максимчук Р.А. Проектирование баз данных с помощью UML - М.: Издательский дом «Вильямс», 2002

6. Вендров А.М. Проектирование программного обеспечения экономических информационных систем - М: «Финансы и статистика», 2000

7. Колтунова Е. Требования к информационной системе и модели жизненного цикла Автоматизированные Системы Стадии создания. ГОСТ 34.601-90. Комплекс стандартов на автоматизированные системы - ИПК издательство стандартов. 1997

8. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ. - М.: ДМК, 2000

9. Козленко Л. Проектирование информационных систем.

10. Смирнова Г.Н., Сорокин А.А., Тельнов Ю.Ф. Проектирование экономических информационных систем - М.: Финансы и статистика, 2002

11. Кондратьев В.В., Краснова В.Б. Модульная программа для менеджеров. Реструктуризация управления компанией - М.: Инфра-М, 2000

12. Калянов Г.Н. Теория и практика реорганизации бизнес-процессов - М.: СИНТЕГ, 2000

13. Калянов Г.Н. Структурный системный анализ - М.: Лори, 1996

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: