Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
387934.rtf
Скачиваний:
29
Добавлен:
13.02.2016
Размер:
7.86 Mб
Скачать
  1. Согласно созданной диаграмме InputInformation объекты класса могут находиться в одном из четырех состояний: инициализации, приостановки, отмены и завершения. Также разработана диаграмма компонентов, разделяющая систему на 2 компонента: клиент и сервер.

  2. Из диаграммы компонентов видно, что разрабатываемая подсистема будет работать по технологии «клиент-сервер».

8. Создание диаграммы размещения

Этот вид диаграмм предназначен для анализа аппаратной части системы, то есть «железа», а не программ. В прямом переводе с английского Deployment означает «развертывание», но термин «топология» точнее отражает сущность этого типа диаграмм. Иногда диаграммы топологии называют диаграммами размещения.

Рисунок 8.1 – Диаграмма размещения

Добавление узлов к диаграмме размещения:

  1. Дважды щелкнув мышью на представлении размещения в браузере, открыть диаграмму размещения.

  2. Нажать кнопку Processor (Процессор) панели инструментов.

  3. Щелкнув мышью на диаграмме, поместить туда процессор.

  4. Ввести имя процессора «Сервер базы данных».

  5. Повторив шаги 2—4, добавить следующие процессоры: «сервер приложения», «клиентская рабочая станция №1», «клиентская рабочая станция №2».

  6. На панели инструментов нажать кнопку Device (Устройство).

  7. Щелкнув мышью на диаграмме, поместить туда устройство.

  8. Назвать его «Принтер».

Добавление связей:

    1. Нажать кнопку Connection (Связь) панели инструментов.

    2. Щелкнуть мышью на процессоре «Сервер базы данных».

    3. Провести линию связи к процессору «Сервер приложения».

    4. Повторив шаги 1 − 3, добавить следующие связи:

  • от процессора «Сервер приложения» к процессору «Клиентская рабочая станция №1»;

  • от процессора «Сервер приложения» к процессору «Клиентская рабочая станция №2»;

  • от процессора «Сервер приложения» к устройству «Принтер».

Добавление процессов:

  1. Щелкнуть правой кнопкой мыши на процессоре «Сервер приложения» в браузере.

  2. В открывшемся меню выберать пункт New → Process (Создать → Процесс).

  3. Ввести имя процесса − InformationServerExe.

  4. Повторить шаги 1 − 3, добить процессы:

  • процесс InformationClientExe на процессоре «Клиентская рабочая станция №1»;

  • процесс ATMClientExe на процессоре «Клиентская рабочая станция №2».

Показ процессов на диаграмме:

  1. Щелкнуть правой кнопкой мыши на процессоре «Сервер приложения».

  2. В открывшемся меню выбрать пункт Show Processes (Показать процессы).

Выводы

  1. Из диаграммы видно, что информационная подсистема деканат экзаменационная сессия построена на технологии «клиент-сервер». Это позволяет организовать одновременный доступ нескольких операторов ПК к базе данных.

  2. Клиентские программы будут работать в нескольких местах. Через локальную вычислительную сеть университета будет осуществляться сообщение этой части программы с главным сервером системы, с работающим программным обеспечением. В свою очередь, главный сервер посредством локальной сети будет сообщаться с сервером базы данных. С главным сервером соединен принтер. Главный сервер может находится в главном корпусе университета.

9. ГЕНЕРАЦИЯ ПРОГРАММНОГО КОДА C++

При генерации с помощью Rational Rose 2000 программного кода Visual C++ применяется программа-мастер. Для запуска этого мастера необходимо выбрать пункт меню Tools → Visual C++ → Update Code, после чего стартует инструментальное средство обновления программного кода Visual C++ Update Code и появляется экран приглашения. Для продолжения работы необходимо щелкнуть мышью на Next. Rose выведет на экран окно выбора Select Components and Classes (рисунок 9.1). Перед генерацией класса в Visual C++ ему необходимо назначить компонент. Если компонент еще не назначен, выбрать режим Create a VC++ Component and Assign New Classes to It (Ctrl+R) в окне мастера. В этом режиме можно создать нужное число компонентов перед генерацией программы. Затем выбрать компоненты и/или классы модели для генерации программного кода.

Чтобы изменить свойства генерации программного кода для компонентов и классов Visual C++, необходимо щелкнуть правой клавишей мыши на папке VC++ на этом экране. После этого можно установить любые свойства генерации, например контейнерный класс, свойства поддержки множественности связей, возможность автоматической генерации конструктора и деструктора, а также возможность автоматической генерации операций Get и Set или других функций-членов (member functions).

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

Рисунок 9.1 – Окно выбора компонентов и классов программы-мастера Update Code

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

Выводы

  1. На основании созданных моделей компонентов, представленных в проекте была произведена генерация программного кода на языке Visual C++.

  2. Листинги сгенерированного кода для учета студентов университета на языке С++ приведены в Приложении А. Общий размер сгенерированных файлов составляет 7,38 КБ.

ЗАКЛЮЧЕНИЕ

В процессе выполнения курсового проекта разработана объектно-ориентированная модель информационной подсистемы для учета студентов университета. Данный проект написан с помощью языка UML, и использованием программного продукта Rational Rose 2000.

Были разработаны следующие диаграммы:

  • диаграмма прецедентов;

  • диаграмма последовательности;

  • диаграмма сотрудничества;

  • диаграмма классов;

  • диаграмма состояния для классов;

  • диаграмма компонентов;

  • диаграмма размещения.

Основным действующим лицом является секретарь деканата. Он выполняет четыре действия: «просмотреть данные сессии», «добавить студента в БД», «составить ведомость», «внести результаты сессии».

Очень важной и сложно реализуемой задачей информационной подсистемы является ввод и обработка информации о студентах, так как от правильности выполнения этой задачи зависит успешность оперативного учета в целом. Для решения этой проблемы были созданы пять классов: два «управляющих», два «граничных»(Boundaries) и один «сущность».

Информационная подсистема учета студентов университета построена на технологии «клиент-сервер». Это дает возможность одновременного доступа нескольких операторов ПК к базе данных.

Клиентские программы будут работать в нескольких местах. Через локальную вычислительную сеть университета, будет осуществляться взаимосвязь этой части программы с главным сервером системы, с работающим программным обеспечением. В свою очередь, главный сервер при помощи локальной сети будет сообщаться с сервером базы данных. С главным сервером соединен принтер. Центральный сервер может находиться в главном корпусе университета.

Были сгенерированы 12 файлов кода на языке С++ общим размером 7,38 КБ.

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

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Буч Г., Рамбо Д., Джекобсон А. Язык UML для пользователя: Пер. с англ. – М.: ДМК, 2000.- 432 с., ил. (Серия «для программистов»).

  2. Боггс У., Боггс М.. UML и Rational Rose: Пер. с англ. – М.: Издательство «Лори», 2000.- 581 с., ил.

  3. Буч Г., Рамбо Д., Джекобсон А. UML: специальный справочник. – СПб.: Питер, 2002.- 432 с., ил.

  4. Ларман К. применение UML и шаблонов проектирования: Пер. с англ. – М.: Издательский дом «Вильямс», 2001. – 496 с., ил.

  5. ГОСТ 2.105-95 ЕСКД. Общие требования к текстовым документам

  6. ГОСТ 2.004-88 ЕСКД. Общие требования к выполнению конструкторских и технологических документов на печатающих и графических устройствах ввода ЭВМ

  7. ГОСТ 2.104-68 ЕСКД. Основные надписи

  8. ГОСТ 2.106-68 ЕСКД. Текстовые документы

  9. ГОСТ 2.109-73 ЕСКД. Основные требования к чертежам

  10. ГОСТ 2.301-68 ЕСКД. Форматы

ПРИЛОЖЕНИЕ А

Листинги кода приложения для учета студентов, сгенерированные Rational Rose на языке С++

A.1 Листинг файла DBMeneger.h

// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)

#pragma once

#endif

#ifndef _INC_DBMANAGER_453CF383009F_INCLUDED

#define _INC_DBMANAGER_453CF383009F_INCLUDED

class TransactionManager;

class InputInformation;

//Система управления базой данных

//##ModelId=453CF383009F

class DBManager

{

public:

//##ModelId=454DF91303DA

TransactionManager* theTransactionManager;

//##ModelId=454DF99B01F5

InputInformation* theInputInformation;

//##ModelId=453CF4550169

Boolean SaveInfo(Integer ZakazID);

};

#endif /* _INC_DBMANAGER_453CF383009F_INCLUDED */

}

A.2 Листинг файла DBMeneger.cpp

// Copyright (C) 1991 - 1999 Rational Software Corporation

#include "stdafx.h"

#include "TransactionManager.h"

#include "InputInformation.h"

#include "DBManager.h"

//##ModelId=453CF4550169

Boolean DBManager::SaveInfo(Integer ZakazID)

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

A.3 Листинг файла FormExems.cpp

// Copyright (C) 1991 - 1999 Rational Software Corporation

#include "stdafx.h"

#include "FormStudent.h"

#include "FormExems.h"

//##ModelId=453CE6830108

Boolean FormExems::Create()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

A.4 Листинг файла FormExems.h

// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)

#pragma once

#endif

#ifndef _INC_FORMEXEMS_453CE5400276_INCLUDED

#define _INC_FORMEXEMS_453CE5400276_INCLUDED

class FormStudent;

//Форма экзаменационной ведомости

//##ModelId=453CE5400276

class FormExems

{

public:

//##ModelId=454DF8FD00AD

FormStudent* theInputForm;

//##ModelId=453CE6830108

Boolean Create();

};

#endif /* _INC_FORMEXEMS_453CE5400276_INCLUDED */

A.5 Листинг файла FormStudent.cpp

// Copyright (C) 1991 - 1999 Rational Software Corporation

#include "stdafx.h"

#include "DBManager.h"

#include "FormStudent.h"

//##ModelId=453CF349025E

Boolean FormStudent::Form()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

//##ModelId=453CF3C70346

Boolean FormStudent::InsertData()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

//##ModelId=453CF4440006

Boolean FormStudent::SaveInfo()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

A.6 Листинг файла FormStudent.h

// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)

#pragma once

#endif

#ifndef _INC_FORMSTUDENT_453CF313010C_INCLUDED

#define _INC_FORMSTUDENT_453CF313010C_INCLUDED

class DBManager;

//Форма ввода информации о студенте

//##ModelId=453CF313010C

class FormStudent

{

public:

//##ModelId=454DF90C03DA

DBManager* theDBManager;

//##ModelId=453CF349025E

Boolean Form();

//##ModelId=453CF3C70346

Boolean InsertData();

//##ModelId=453CF4440006

Boolean SaveInfo();

};

#endif /* _INC_FORMSTUDENT_453CF313010C_INCLUDED */

A.7 Листинг файла InformationItem.cpp

// Copyright (C) 1991 - 1999 Rational Software Corporation

#include "stdafx.h"

#include "InformationItem.h"

//##ModelId=454DF234029A

Boolean InformationItem::Create()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

//##ModelId=454DF24203BD

Boolean InformationItem::SetInfo(Integer ID)

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

//##ModelId=454DF25101C0

String InformationItem::GetInfo()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

A.8 Листинг файла InputInformation.cpp

// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)

#pragma once

#endif

#ifndef _INC_INFORMATIONITEM_454DF0B10348_INCLUDED

#define _INC_INFORMATIONITEM_454DF0B10348_INCLUDED

//##ModelId=454DF0B10348

class InformationItem

{

public:

//##ModelId=454DF234029A

Boolean Create();

//##ModelId=454DF24203BD

Boolean SetInfo(Integer ID = 0);

//##ModelId=454DF25101C0

String GetInfo();

private:

//##ModelId=4DD93BE9033C

Integer InformationID;

};

#endif /* _INC_INFORMATIONITEM_454DF0B10348_INCLUDED */

A.9 Листинг файла InputInformation.h

// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)

#pragma once

#endif

#ifndef _INC_INPUTINFORMATION_453CF3E40275_INCLUDED

#define _INC_INPUTINFORMATION_453CF3E40275_INCLUDED

class InformationItem;

//Добавление данных о студенте

//##ModelId=453CF3E40275

class InputInformation

{

public:

//##ModelId=454DF92B028A

InformationItem* theZapisItem;

//##ModelId=453CF4630336

Boolean CreateEmptyRecord();

//##ModelId=453CF47D010D

Boolean StudentInfo();

//##ModelId=453CF48801B3

EnterInformation(Integer zapis_namber, String Student_Name, String Student_Sername, String Student_Lastname, Integer Group, String Fakultet, int Kurs, int marks, String subject, Data Data);

private:

//номер записи

//##ModelId=454DF14702F4

Integer zapis_namber;

//Фамилия студента

//##ModelId=454DF15F017C

String Student_Name;

//Отчество студента

//##ModelId=454DF19B01AA

String Student_Sername;

//Группа

//##ModelId=454DF1DB021A

String Student_Lastname;

//##ModelId=4DEB4A400242

Integer Group;

//Факультет

//##ModelId=454DF1F40252

String Fakultet;

//Курс

//##ModelId=454DF20A0236

int Kurs;

//##ModelId=4DD93AA2032C

int marks;

//##ModelId=4DE2566E0177

String subject;

//##ModelId=4DE25A000261

Data Data;

};

#endif /* _INC_INPUTINFORMATION_453CF3E40275_INCLUDED */

A.11 Листинг файла TransactionManager.cpp

// Copyright (C) 1991 - 1999 Rational Software Corporation

#include "stdafx.h"

#include "InputInformation.h"

#include "InformationItem.h"

#include "TransactionManager.h"

//##ModelId=453CF47300C2

Integer TransactionManager::SaveChange()

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

//##ModelId=453CF4990348

Boolean TransactionManager::SaveIntoDB(Integer Zapis_ID)

{

// TODO: Add your specialized code here.

// NOTE: Requires a correct return value to compile.

}

A.12 Листинг файла TransactionManager.h

// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)

#pragma once

#endif

#ifndef _INC_TRANSACTIONMANAGER_453CF3F901E9_INCLUDED

#define _INC_TRANSACTIONMANAGER_453CF3F901E9_INCLUDED

class InputInformation;

class InformationItem;

//Система управления транзакциями

//##ModelId=453CF3F901E9

class TransactionManager

{

public:

//##ModelId=454DF91B0219

InputInformation* theZapis;

//##ModelId=454DF923036F

InformationItem* theInformationItem;

//##ModelId=453CF47300C2

Integer SaveChange();

//##ModelId=453CF4990348

Boolean SaveIntoDB(Integer Zapis_ID);

};

#endif /* _INC_TRANSACTIONMANAGER_453CF3F901E9_INCLUDED */

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]