Автор работы: Пользователь скрыл имя, 07 Февраля 2013 в 11:37, курсовая работа
При помощи терморегулятора устанавливается максимально допустимая температура в данной камере. Мотор предназначен для поддержания низкой температуры. Термометр постоянно измеряет температуру внутри камеры, а индикатор температуры, расположенный на дверце, постоянно высвечивает ее значение.
Введение
1. Анализ требований
2. Глоссарий
3. Создание модели вариантов использования
4. Анализ вариантов использования
5. Проектирование системы
5.1 Иерархия системы
5.2 Построение диаграммы классов (Class Diagram)
5.3 Построение диаграммы состояний (Statechart Diagram)
6. Реализация системы
6.1 Диаграммы компонентов (Component Diagram)
6.2 Диаграмма размещения
6.3 Генерация кода
Заключение
Список использованных источников
Рисунок 3 - Граничные классы
Классы сущности (Entity):
Журнал (Journal)
Рисунок 4 - Класс сущности Журнал (Journal)
Управляющие классы (Control):
Контроллер холодильника (Controller of refrigerator)
Рисунок 5 - Управляющие класс контроллер (Controller)
Добавление операций и атрибутов к классам
Операции:
Close Door() : Boolean – Операция закрытия дверцы холодильника.
Open Door() : Boolean – Операция открытия дверцы холодильника.
При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии дверцы (State of Door).
Рисунок 6 - Класс Door <<boundary>> с операциями и аргументами
Операции:
Switch on Timer() : Boolean – Операция включения таймера.
Switch off Timer() : Boolean – Операция выключения таймера (Сброса значения на 0).
При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии таймера (State of Timer).
Атрибуты:
State of Timer : Boolean - Состояние таймера (Рабочее/Не рабочее).
Рисунок 7 - Класс Timer <<boundary>> с операциями и аргументами
Операции:
Switch on Sound Device() : Boolean – Операция включения звукового сигнала при условии, что таймер отсчитал 30 секунд.
Switch off Sound Device() : Boolean – Операция выключения звукового сигнала.
При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии звукового устройства (State of Sound Device).
Атрибуты:
State of Sound Device : Boolean – Состояние звукового устройства (Рабочее/Не рабочее).
Рисунок 8 - Класс Sound Device <<boundary>> с операциями и аргументами
Операции:
Change factor T2() : Boolean – Операция изменения температуры T2 (Определение нижней границы температуры в холодильнике)
При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии регулятора (State of Regulator).
Аргументы:
Factor T2 : Float – Величина заданной температуры.
State of Regulator - Состояние устройства (Рабочее/Не рабочее).
Рисунок 9 - Класс Regulator <<boundary>> с операциями и аргументами
Термометр (Thermometer)
Операции:
Measure T1() : Float – Операция измерения температуры в холодильнике. Выполняется постоянно.
При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии регулятора (State of Thermometer).
Аргументы:
State of Thermometer : Boolean - Состояние устройства (Рабочее/Не рабочее).
Factor T1 : Float – Аргумент хранит текущую температуру в холодильнике.
Рисунок 10 - Класс Thermometer <<boundary>> с операциями и аргументами
Операции:
Show T1() : Float – Вывести температуру на экран.
При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии регулятора (State of Indicator).
Аргументы:
Factor T1 : Float – Хранит значение переданной от термометра температуры.
State of Indicator : Boolean - Состояние устройства (Рабочее/Не рабочее)
Рисунок 11 - Класс Indicator <<boundary>> с операциями и аргументами
Операции:
Start Motor() : Boolean – Операция запускает мотор при условии если T1>T2 (текущая температура с термометра превышает нижний порог заданный регулятором).
Stop Motor() : Boolean – Операция останавливает мотор если T1≤T2 (текущая температура с термометра ниже или равна нижнему порогу заданному регулятором). При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии регулятора (State of Motor).
Атрибуты:
State of Motor : Boolean - Состояние устройства (Рабочее/Не рабочее).
Рисунок 12 - Класс Motor <<boundary>> с операциями и аргументами
Операции:
Save data() – Сохранить данные направленные в журнал.
Аргументы:
Data : String – В него сохраняются данные.
Рисунок 13 - Класс Journal <<entity>> с операциями и аргументами
Операции:
Check States on breakage() : Boolean – Операция проверки на работоспособность устройств холодильника. Вся информация об ошибках записывается в журнал.
Check Time on Timer() : Boolean Проверить прошедшее время со включения таймера. Если время превышает 29 секунд, то передает команду на включение звукового сигнала.
Compare T1 & T2() – Сравнивает температуры, непрерывна. Если T1>T2 (текущая температура с термометра превышает нижний порог заданный регулятором) отдаёт команду на включение мотора.
Если T1≤T2 (текущая температура с термометра ниже или равна нижнему порогу заданному регулятором) передает команду мотору остановиться.
Рисунок 14 - Класс Controller of the refrigerator <<control>> с операциями и аргументами
5.2 Построение диаграммы классов (Class Diagram)
Диаграмма классов является основным логическим представлением модели и содержит детальную информацию о внутреннем устройстве объектно-ориентированной программной системы.
Рисунок 15 - Диаграмма классов (Class Diagram)
5.3 Построение диаграммы
Определение состояний для классов моделируется с помощью диаграмм состояний. Главное назначение диаграммы состояний - описать возможные последовательности состояний и переходов, которые в совокупности характеризуют поведение моделируемой системы в течение всего ее жизненного цикла. Диаграмма состояний представляет динамическое поведение сущностей, на основе спецификации их реакции на восприятие некоторых конкретных событий.
Рисунок 16 - Диаграммы состояний (Statechart Diagram)
6. Реализация системы
6.1 Диаграммы компонентов (Component Diagram)
Диаграмма компонентов служит частью физического представления модели, играет важную роль в процессе ООАП и является необходимой для генерации программного кода.
Рисунок 17 - Диаграммы компонентов (Component Diagram)
6.2 Диаграмма размещения
Диаграмма развертывания является второй составной частью физического представления модели и разрабатывается, как правило, для территориально распределенных систем. В данном проекте этот тип диаграммы не нужен, так как холодильник не имеет внешних связей с другими устройствами.
6.3 Генерация кода
Процесс генерации кода состоит из четырех основных шагов:
Выполним предложенные шаги:
Получившийся код
Controller of the refrigerator.h
#ifndef CONTROLLEROFTHEREFRIGERATOR_H_
#define CONTROLLEROFTHEREFRIGERATOR_H_
//##ModelId=49521FA001E4
class Controller of the Controller of the refrigerator
{
public:
//##ModelId=495227D60148
Boolean Check States on Check States on breakage();
//##ModelId=49522913008C
Boolean Check Time on Check Time on Timer();
//##ModelId=4952295E0251
T1 Compare T1 T2();
};
#endif /* CONTROLLEROFTHEREFRIGERATOR_H_
Controller of the refrigerator.cpp
#include "C:/Код/Controller of the refrigerator.h"
//##ModelId=495227D60148
Boolean Controller of the refrigerator::Check States on breakage()
{
}
//##ModelId=49522913008C
Boolean Controller of the refrigerator::Check Time on Timer()
{
}
//##ModelId=4952295E0251
Controller of the refrigerator::Compare T1 & T2()
{
}
Journal.h
#ifndef JOURNAL_H_INCLUDED_B6AD5CEA
#define JOURNAL_H_INCLUDED_B6AD5CEA
//##ModelId=4952203B037A
class Journal
{
public:
//##ModelId=495225C6036B
Save data();
//##ModelId=495225E7033C
String Data;
};
#endif /* JOURNAL_H_INCLUDED_B6AD5CEA */
Journal.cpp
#include "C:/КОД/Journal.h"
//##ModelId=495225C6036B
Journal::Save data()
{
}
Door.h
#ifndef DOOR_H_INCLUDED_B6AD5A65
#define DOOR_H_INCLUDED_B6AD5A65
//##ModelId=49521FD601D4
class Door
{
public:
//##ModelId=49522070029F
Boolean Open Door();
//##ModelId=4952207A0000
Boolean Close Door();
//##ModelId=4952210301F4
Boolean State of Door;
};
#endif /* DOOR_H_INCLUDED_B6AD5A65 */
Door.cpp
#include "C:/КОД/Door.h"
//##ModelId=49522070029F
Boolean Door::Open Door()
{
}
//##ModelId=4952207A0000
Boolean Door::Close Door()
{
}
Indicator.h
#ifndef INDICATOR_H_INCLUDED_B6AD631B
#define INDICATOR_H_INCLUDED_B6AD631B
//##ModelId=49522018032C
class Indicator
{
public:
//##ModelId=49522455007D
Float Show T1();
//##ModelId=495224950119
Float Factor T1;
//##ModelId=49527E1E02BF
Boolean State of Indicator;
};
#endif /* INDICATOR_H_INCLUDED_B6AD631B */
Indicator.cpp
#include "C:/КОД/Indicator.h"
//##ModelId=49522455007D
Float Indicator::Show T1()
{
}
Motor.h
#ifndef MOTOR_H_INCLUDED_B6AD6A11
#define MOTOR_H_INCLUDED_B6AD6A11
//##ModelId=49522059030D
class Motor
{
public:
//##ModelId=495225610280
Boolean Start Motor();
//##ModelId=495225920000
Boolean Stop Motor();
//##ModelId=495225A30186
Boolean State of Motor;
};
#endif /* MOTOR_H_INCLUDED_B6AD6A11 */
Motor.cpp
#include "C:/КОД/Motor.h"
//##ModelId=495225610280
Boolean Motor::Start Motor()
{
}
//##ModelId=495225920000
Boolean Motor::Stop Motor()
{
}
Regulator.h
#ifndef REGULATOR_H_INCLUDED_B6AD09A2
#define REGULATOR_H_INCLUDED_B6AD09A2
//##ModelId=4952202D03B9
class Regulator
{
public:
//##ModelId=495226D301D4
Boolean Change state T2();
//##ModelId=495224CE0119
Float FactorT2;
//##ModelId=49527E6F0177
Boolean State of Regulator;
Информация о работе Модель программного обеспечения бытового прибора на примере холодильника