Построение диаграммы классов (Class Diagram)



 

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

 

 

Рисунок 15 - Диаграмма классов (Class Diagram)

 

5.3 Построение диаграммы состояний (Statechart Diagram)

 

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


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

 


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

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

 

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

 

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

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

 

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

 

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

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

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;

};

#endif /* REGULATOR_H_INCLUDED_B6AD09A2 */

Regulator.cpp

#include "C:/КОД/Regulator.h"

//##ModelId=495226D301D4

Boolean Regulator::Change state T2()

{

}

Sound device.h

#ifndef SOUNDDEVICE_H_INCLUDED_B6AD4A0B

#define SOUNDDEVICE_H_INCLUDED_B6AD4A0B

//##ModelId=49521FEF0271

class Sound device

{

public:

//##ModelId=495223040242

Boolean Switch on Sound Device();

//##ModelId=495223150261

Boolean Switch off Sound Device();

//##ModelId=4952233101E4

Boolean State of Sound Device;};

#endif /* SOUNDDEVICE_H_INCLUDED_B6AD4A0B */

Sound device.cpp

#include "C:/КОД/Sound device.h"

//##ModelId=495223040242

Boolean Sound device::Switch on Sound Device()

{

}

//##ModelId=495223150261

Boolean Sound device::Switch off Sound Device()

}

Thermometer.h

#ifndef THERMOMETER_H_INCLUDED_B6AD64D1

#define THERMOMETER_H_INCLUDED_B6AD64D1

//##ModelId=4952200303B9

class Thermometer

{

public:

//##ModelId=4952239301B5

Float Measure T1();

//##ModelId=495223BC0186

Float Factor T1;

//##ModelId=49527E4C037A

Boolean State of Thermometer;};

#endif /* THERMOMETER_H_INCLUDED_B6AD64D1 */

Thermometer.cpp

#include "C:/КОД/Thermometer.h"

//##ModelId=4952239301B5

Float Thermometer::Measure T1()

{

}

Timer.h

#ifndef TIMER_H_INCLUDED_B6AD34B3

#define TIMER_H_INCLUDED_B6AD34B3

//##ModelId=49521FE1031C

class Timer

{

public:

//##ModelId=495221F501E4

Boolean Switch on Timer();

//##ModelId=4952229602CE

Boolean Switch off Timer();

//##ModelId=495222C00109

Boolean State of Timer;};

#endif /* TIMER_H_INCLUDED_B6AD34B3 */

Timer.cpp

#include "C:/КОД/Timer.h"

//##ModelId=495221F501E4

Boolean Timer::Switch on Timer()

{

}

//##ModelId=4952229602CE

Boolean Timer::Switch off Timer()

{

 


Заключение

 

В рамках курсового проекта было проведено проектирование системы по методологии UML с использованием программы Rational Rose и была построена модель программного обеспечения для холодильника, описание которого было изложено в пункте “Постановка задачи”, с использованием диаграмм и с генерацией конечного кода.

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

Структурный подход дает основу для создания диаграмм объектно-ориентированного подхода в среде Rational Rose.

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

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

Также в завершении проектирования модели был сгенерирован код программного обеспечения модели холодильника.

В дальнейшем может быть разработана база данных для хранения журнала событий холодильника.

 


Список использованных источников

 

1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-еизд.: Пер. с англ. – М.: Издательство Бином, СПб.: Невский диалект, 1999. – 332с.

2. Калянов Г.Н. CASE. Структурный системный анализ (автоматизация и применение). М., "Лори", 1996. -202с.

3. Методология структурного анализа и проектирования. Марка Д.А., МакГоуэн К. М., "МетаТехнология", 1993. – 356с.

4. Новоженов Ю.В. Объектно-ориентированные технологии разработки сложных программных систем. М., 1996. – 245с.

5. Приемы объектно-ориентированного проектирования. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.: Пер. с англ. – М.: ДМК, 2000. – 354с.

6. Трофимов С. А. CASE-технологии: практическая работа в Rational Rose – М.: БИНОМ, 2000. – 405с.

7. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения.: Пер. с англ. – СПб: Питер, 2002. – 445с.

8. UML в кратком изложении. Применение стандартного языка объектного моделирования. Фаулер М., Скотт К.: Пер. сангл.– М.: Мир, 1999. – 273с.

9. UML и Rational Rose . Боггс У., БоггсМ.: Пер. сангл. – М.: Лори, 2000. – 266с.

 

Размещено на Allbest.ru


Дата добавления: 2018-10-26; просмотров: 266; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!