Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Описание предметной области информационной системы оптовой базы).pdf
Добавлен: 24.04.2023
Просмотров: 190
Скачиваний: 1
СОДЕРЖАНИЕ
1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОПТОВАЯ БАЗА
2. ПОСТРОЕНИЕ ДИАГРАММЫ МОДЕЛИ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОПТОВОЙ БАЗЫ
2.1 Составление списка действующих лиц
2.2 Составление перечня вариантов использования
3. ДИАГРАММА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОПТОВОЙ БАЗЫ
3.1 Построение диаграммы вариантов использования
3.2 Описание вариантов использования
4. АРХИТЕКТУРНЫЙ АНАЛИЗ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОПТОВОЙ БАЗЫ
4.1 Диаграммы последовательности
5. ДОКУМЕНТИРОВАНИЕ ПРОЕКТА ИНФОРМАЦИОННОЙ СИСТЕМЫ ОТПОВОЙ БАЗЫ
Граничный класс 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);