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

Автор работы: Пользователь скрыл имя, 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 Генерация кода
Заключение
Список использованных источников

Вложенные файлы: 1 файл

КУРСОВИК.doc

— 367.50 Кб (Скачать файл)
  1. Дверца холодильника (Door)
  2. Таймер (Timer)
  3. Звуковое устройство (Sound Device)
  4. Регулятор (Regulator)
  5. Термометр (Thermometer)
  6. Индикатор (Indicator)
  7. Мотор (Motor)

 

 

Рисунок 3 - Граничные классы

 

Классы сущности (Entity):

Журнал (Journal)

 

Рисунок 4 - Класс сущности Журнал (Journal)

 

Управляющие классы (Control):

Контроллер холодильника (Controller of refrigerator)

 

Рисунок 5 - Управляющие класс контроллер (Controller)

 

Добавление операций и атрибутов к классам

  1. Дверца холодильника (Door)

Операции:

Close Door() : Boolean – Операция закрытия дверцы холодильника.

Open Door() : Boolean – Операция открытия дверцы холодильника.

При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии дверцы (State of Door).

 

Рисунок 6 - Класс Door <<boundary>> с операциями и аргументами

 

  1. Таймер (Timer)

Операции:

Switch on Timer() : Boolean – Операция включения таймера.

Switch off Timer() : Boolean – Операция выключения таймера (Сброса значения на 0).

При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии таймера (State of Timer).

Атрибуты:

State of Timer : Boolean - Состояние таймера (Рабочее/Не рабочее).

 

Рисунок 7 - Класс Timer <<boundary>> с операциями и аргументами

 

  1. Звуковое устройство (Sound Device)

Операции:

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>> с операциями и аргументами

 

  1. Регулятор (Regulator)

Операции:

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>> с операциями и аргументами

 

  1. Индикатор (Indicator)

Операции:

Show T1() : Float – Вывести температуру на экран.

При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии регулятора (State of Indicator).

Аргументы:

Factor T1 : Float – Хранит значение переданной от термометра температуры.

State of Indicator : Boolean - Состояние устройства (Рабочее/Не рабочее)

 

Рисунок 11 - Класс Indicator <<boundary>> с операциями и аргументами

 

  1. Мотор (Motor)

Операции:

Start Motor() : Boolean – Операция запускает мотор при условии если T1>T2 (текущая температура с термометра превышает нижний порог заданный регулятором).

Stop Motor() : Boolean – Операция останавливает мотор если T1≤T2 (текущая температура с термометра ниже или равна нижнему порогу заданному регулятором). При выполнении операций они возвращают 1 - если операция выполнилась без ошибок, 0 – если произошла поломка. Значение сохраняется в состоянии регулятора (State of Motor).

Атрибуты:

State of Motor : Boolean - Состояние устройства (Рабочее/Не рабочее).

 

Рисунок 12 - Класс Motor <<boundary>> с операциями и аргументами

 

  1. Журнал (Journal)

Операции:

Save data() – Сохранить данные направленные в журнал.

Аргументы:

Data : String – В него сохраняются данные.

 

Рисунок 13 - Класс Journal <<entity>> с операциями и аргументами

 

  1. Контроллер холодильника (Controller of refrigerator)

Операции:

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 Построение диаграммы состояний  (Statechart Diagram)

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

 

Рисунок 16 - Диаграммы состояний (Statechart Diagram)

 

 

 

 

6. Реализация  системы

 

6.1 Диаграммы  компонентов (Component Diagram)

 

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

 

Рисунок 17 - Диаграммы компонентов (Component Diagram)

 

6.2 Диаграмма  размещения

 

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

 

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

 

Процесс генерации кода состоит из четырех основных шагов:

  1. Проверка корректности модели.
  2. Установка свойств генерации кода.
  3. Выбор класса, компонента или пакета.
  4. Генерация кода.

Выполним предложенные шаги:

  1. Проверим модель на содержание ошибок.( Tools > Check Model).
  2. Назначим компонентам классы(С помощью команды Assign) и выберем для всех компонент язык генерации ANSI C++.
  3. Выберем все компоненты, которым назначили классы.
  4. Выберем команду сгенерировать код на языке ANSI C++.

Получившийся код

Controller of the refrigerator.h

#ifndef CONTROLLEROFTHEREFRIGERATOR_H_INCLUDED_B6AD0DF2

#define CONTROLLEROFTHEREFRIGERATOR_H_INCLUDED_B6AD0DF2

//##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_INCLUDED_B6AD0DF2 */

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;

Информация о работе Модель программного обеспечения бытового прибора на примере холодильника