Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Описание предметной области информационной системы оптовой базы).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.04.2023

Просмотров: 196

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Граничный класс RequestForm - это электронная форма заявки на продукт.

Класс Boundary запрашивает приложение для продукта.

Класс управления ControllerRecordRequest-контроллер записей персональных данных о покупателе в электронной базе данных.

Ниже приведены списки классов для этих вариантов использования.

Список классов для прецедента " создание отчета по заявкам на товары»:

Граничный класс EAReportForm-электронная форма для формирования отчета: введение данных о продукте.

Manager ControllerEAReport-события контроллера.

Class-entity InternalExamResults-таблица с результатами приложений.

Далее нужно создать список классов в ModelMaker. Он представлен на рисунке 5.

Рисунок 5 – Перечень классов модели информационной системы оптовой базы

4.1 Диаграммы последовательности

Диаграмма последовательности показывает объект в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни объекта. Это фрагмент жизненного цикла объекта. Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов, оно помечается как минимум именем сообщения; Вы можете показать собственной делегации.

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

Схема последовательности действий " заполните форму заявки на товар»

На этой диаграмме последовательности используются следующие классы:

TRequestForm-электронная форма заявки на товар, граничный класс (граница).

TRequest-приложение для товаров, граничный класс (Boundary).

TControllerRecordRequest-контроллер записей персональных данных о покупателе в электронной базе данных, класс управления (Control).

Актер-покупатель.

После анализа описания варианта использования можно добавить следующие сообщения на эту схему последовательностей:

От действующего лица " покупатель "к граничному классу" TRequestForm " передается сообщение: 1. Форма запроса "заявка".

От граничного класса " TRequestForm "к актеру" Buyer " передается сообщение: 2. Подача формы "заявление".

От актера "покупатель" отправляет сообщение самоделегирование: 3. Ввод персональных данных.

От актера " покупатель "к классу управления" TControllerRecordRequest " передается сообщение: 4. Сохранять изменения.


Менеджеру класса "TControllerRecordRequest" отправляется сообщение на самоделегирование: 5. Подать заявление.

Диспетчеру класса "TControllerRecordRequest" в граничный класс TRequest отправляется сообщение: 6.Отправить запрос.

От действующего лица " покупатель "к граничному классу" TRequestForm " передается сообщение: 7.Закрытие формы заявки».

Созданная диаграмма последовательности для данного варианта использования представлена далее на рисунке 6.

Рисунок 6 – Диаграмма последовательности для варианта использования «Заполнить форму заявки на товар»

Таким же образом создаются схемы последовательностей для случаев использования "ввод данных о назначенном поставщике" и "формирование отчета о допуске к экзамену ГИБДД".

Схема последовательности действий для "введите данные о назначенном поставщике»

На этой диаграмме последовательности используются следующие классы:

TDataLearnerForm-электронная форма для ввода данных Заказчика, класс границы (Boundary).

TListCarInstructor-таблица записей сущности класса товаров (Entity).

Тлеарнер соответствует актеру "заказчик", класс-сущность.

TInstructor-соответствует действующему лицу "поставщик", класс-сущность.

Актер-администратор.

После анализа описания варианта использования можно добавить следующие сообщения на эту схему последовательностей:

От администратора актера к граничному классу "TDataLearnerForm" передается сообщение: 1. Форма запроса "данные клиента".

От актера " администратор "к классу управления" TControllerRecordLearner " передается сообщение: 2. Запрос данных.

Диспетчер класса "TControllerRecordLearner" класс-сущность "TListCarInstructor" передал сообщение: 3. Запрос информации о продукте.

Менеджеру класса "TControllerRecordLearner" отправляется сообщение на самоделегирование: 4. Формирование запроса.

От актера "администратор" отправляет сообщение самоделегирование: 5. Определите продукт.

От администратора актера к граничному классу "TDataLearnerForm" передается сообщение: 6. Ввод данных.

От актера " администратор "в класс управления" TControllerRecordLearner " отправляется сообщение: 7. Сохраните изменения в системе.

Диспетчер класса "TControllerRecordLearner" класс-сущность" TLearner " передал сообщение: 8. Отправьте информацию покупателю.

Диспетчер класса "TControllerRecordLearner" класс-сущность" TInstructor " передал сообщение: 9. Сообщите поставщику.

Созданная диаграмма последовательности для данного варианта использования представлена далее на рисунке 7.


Рисунок 7 – Диаграмма последовательности для варианта использования «Внести данные о назначенном товаре»

4.2 Диаграмма классов

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

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

Диаграмма классов включает набор классов моделей и описание каждого класса.

Обязательные атрибуты и методы классов определяются на основе анализа диаграмм последовательности. Чтобы включить их в класс, используйте функцию add Property.

На основе диаграмм последовательности "для ввода данных о назначенном продукте" можно добавить в класс "TListCarInstructor" следующие свойства:

- "Полное имя".

– Автомобиль.

- "QuantityLearner".

Далее необходимо указать видимость свойства.

Общественность (В Целом). Это значение предполагает, что атрибут будет виден всем остальным классам. Любой класс может просмотреть или изменить значение атрибута.

Частная (закрытая). Соответствующий атрибут не виден другим классам.

Защищенный (protected). Этот атрибут доступен только классу и его потомкам.

В этом случае все атрибуты являются общедоступными.

Далее необходимо определить операцию. Для атрибута "FullName"в группе чтения значение атрибута задается методом. Система ModelMaker автоматически генерирует имя: GetFullName. В группе Write Access также необходимо выбрать метод. Система создает имя метода SetFullName. В качестве параметра указывается любое имя. В данном случае, значение. Аналогично, аксессоры создаются для других атрибутов этого класса.

Необходимо подготовить программную реализацию методов (GetFullName, SetFullName). На странице реализация необходимо прописать следующий код для строк:

Для getfullname: Result:=FFullName.

Для setfullname: FFullName:=значение.

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

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


Для включения в класс операции реализации следует использовать функцию Add Metods. Таким образом, для этого класса можно выделить следующие операции реализации:

AddRecord-добавление новой записи в класс.

DeleteRecord-удаление записи из класса.

Программная реализация некоторых операций реализации представлена в окончательном коде модуля.

Атрибуты и методы устанавливаются аналогично другим классам.

Анализ диаграмм последовательностей позволяет выделить атрибуты для следующих классов.

Класс «InternalExamResults»:

– «NameLearner».

– «PracticeResult».

– «TheoryResult».

Класс «TInstructor»:

– «FullName».

– «DOB».

– «PassportData».

– «Address».

– «Education».

– «DrivingExperience».

Для электронных форм можно выделить две операции:

– «OpenForm» (открыть форму).

– «CloseForm» (закрыть форму).

Операции класса ExamAdmissionReport:

– «CreateReport» (Создать отчет).

– «DestroyReport» (Удалить отчет).

– «PrintReport» (Отправить отчет на печать).

Созданная диаграмма классов представлена на рисунке 9.

Рисунок 9 – Диаграмма классов информационной системы оптовой базы

4.3 Модуль проекта

Следующим этапом проектирования информационной системы оптовой базы данных является создание нового модуля, в котором будут представлены созданные классы моделей. Чтобы создать новый модуль, перейдите на панель "единицы измерения" и используйте функцию "Добавить" (Add module). Необходимо указать расположение исходного файла (относительное имя файла единицы), указать подходящее имя файла и путь, а также добавить классы для включения в модуль. После завершения диалога появится сгенерированный шаблон будущего модуля.

Для генерации кода модуля необходимо выполнить команду "разблокировать", затем" генерация", затем запустить Delphi и создать модуль"найти в Delphi".

Далее представлен модуль проекта информационной системы оптовой базы.

Листинг файла modul.pas

unit modul;

interface

uses

SysUtils, Windows, Messages, Classes, Graphics, Controls,

Forms, Dialogs;

type

TRequestForm = class (TObject)

public

procedure CloseForm;

procedure OpenForm;

end;

TRequest = class (TObject)

public

procedure CreateRequest;

procedure SendRequest;

end;

TQueryListCI = class (TObject)

end;

TListCarInstructor = class (TObject)

private

FCar: string;

FFullName: string;

FQuantityLearner: Integer;

public

procedure AddRecord;

procedure DeleteRecord;

function GetCar: string;

function GetFullName: string;

function GetQuantityLearner: Integer;

procedure SetCar(Value: string);


procedure SetFullName(Value: string);

procedure SetQuantityLearner(Value: Integer);

property Car: string read GetCar write SetCar;

property FullName: string read GetFullName write SetFullName;

property QuantityLearner: Integer read GetQuantityLearner write

SetQuantityLearner;

end;

TLearner = class (TObject)

end;

TInternalExamResults = class (TObject)

private

FNameLearner: string;

FPracticeResult: string;

public

procedure AddRecord;

procedure DeleteRecord;

function GetNameLearner: string;

function GetPracticeResult: string;

function GetTheoryResult: string;

procedure SetNameLearner(const Value: string);

procedure SetPracticeResult(Value: string);

procedure SetTheoryResult(Value: string);

property NameLearner: string read GetNameLearner write SetNameLearner;

property PracticeResult: string read GetPracticeResult write

SetPracticeResult;

property TheoryResult: string read GetTheoryResult write SetTheoryResult;

end;

TInstructor = class (TObject)

private

FAddress: string;

FDOB: string;

FDrivingExperience: string;

FEducation: string;

FFullName: string;

FPassportData: TPassportData;

public

function GetAddress: string;

function GetDOB: string;

function GetDrivingExperience: string;

function GetEducation: string;

function GetFullName: string;

function GetPassportData: TPassportData;

procedure SetAddress(Value: string);

procedure SetDOB(Value: string);

procedure SetDrivingExperience(Value: string);

procedure SetEducation(Value: string);

procedure SetFullName(Value: string);

procedure SetPassportData(Value: TPassportData);

property Address: string read GetAddress write SetAddress;

property DOB: string read GetDOB write SetDOB;

property DrivingExperience: string read GetDrivingExperience write

SetDrivingExperience;

property Education: string read GetEducation write SetEducation;

property FullName: string read GetFullName write SetFullName;

property PassportData: TPassportData read GetPassportData write

SetPassportData;

end;

информационный оптовый рascal

TExamAdmissionReport = class (TObject)

public

procedure CreateReport;

procedure DestroyReport;

procedure PrintReport;

end;

TEAReportForm = class (TObject)

public

procedure CloseForm;

procedure OpenForm;

end;

TDataLearnerForm = class (TObject)

public

procedure CloseForm;

procedure OpenForm;

end;

TControllerRecordRequest = class (TObject)

end;

TControllerRecordLearner = class (TObject)

end;

TControllerEAReport = class (TObject)

end;

procedure Register;

implementation

procedure Register;

begin

end;

{

********************************* TRequestForm *********************************

}

procedure TRequestForm.CloseForm;

begin

end;

procedure TRequestForm.OpenForm;

begin

end;

{

*********************************** TRequest ***********************************

}

procedure TRequest.CreateRequest;

begin

end;

procedure TRequest.SendRequest;

begin

end;

{

****************************** TListCarInstructor ******************************

}

procedure TListCarInstructor.AddRecord;

begin

end;

procedure TListCarInstructor.DeleteRecord;

begin

end;

function TListCarInstructor.GetCar: string;

begin

Result:=FCar

end;

function TListCarInstructor.GetFullName: string;

begin

Result:=FFullName

end;

function TListCarInstructor.GetQuantityLearner: Integer;

begin

Result:=FQuantityLearner

end;

procedure TListCarInstructor.SetCar(Value: string);

begin

FCar:=value

end;

procedure TListCarInstructor.SetFullName(Value: string);

begin

FFullName:=value

end;

procedure TListCarInstructor.SetQuantityLearner(Value: Integer);