Файл: Проектировании информационных систем и создание модели информационной системы оптовая база.pdf

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

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

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

Добавлен: 13.05.2023

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

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

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

На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни 0бъекта. Она представляет собой фрагмент жизненного цикла 0бъекта. Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов, оно помечается, как минимум, именем сообщения; можно показать самоделегирование. [10, с.67]

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

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

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

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

TRequest – заявка на товар, граничный класс (B0undary).

TC0ntr0llerRec0rdRequest – контролер записей персональных данных о покупателе в электронную базу, управляющий класс (C0ntr0l).

Действующее лицо – Покупатель.

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

От действующего лица «Покупатель» к граничному классу «TRequestF0rm» передается сообщение: 1. Запрос формы «Заявка».

От граничного класса «TRequestF0rm» к действующему лицу «Покупатель» передается с0бщение: 2. Предоставление формы «Заявка».

От действующего лица «Покупатель» посылается сообщение самоделегирования: 3. Ввод персональных данных.

От действующего лица «Покупатель» к управляющему классу «TC0ntr0llerRec0rdRequest» передается сообщение: 4. Сохранить изменения.

От управляющего класса «TC0ntr0llerRec0rdRequest» посылается сообщение самоделегирования: 5. Сформировать заявку.

От управляющего класса «TC0ntr0llerRec0rdRequest» к граничному классу TRequest посылается сообщение: 6. Отправить заявку.

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

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

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

Диаграммы последовательности для вариантов использования «Внести данные о назначенном поставщике» и «Сформировать отчет по допуску на экзамен ГИБДД» создаются аналогичным образом.

Диаграмма последовательности «Внести данные о назначенном поставщике»


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

TDataLearnerF0rm– электронная форма для ввода данных о покупателе, граничный класс (B0undary).

TListCarInstruct0r – таблица с записями о товарах, класс-сущность (Entity).

TLearner – соответствует действующему лицу «Покупатель», класс-сущность.

TInstruct0r – соответствует действующему лицу «Поставщик», класс-сущность.

Действующее лицо – Администратор.

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

От действующего лица «Администратор» к граничному классу «TDataLearnerF0rm» передается сообщение: 1. Запрос формы «Данные о покупателе».

От действующего лица «Администратор» к управляющему классу «TC0ntr0llerRec0rdLearner» передается сообщение: 2. Запрос данных.

От управляющего класса «TC0ntr0llerRec0rdLearner» к классу-сущности «TListCarInstruct0r» передается сообщение: 3. Запрос информации о товарах.

От управляющего класса «TC0ntr0llerRec0rdLearner» посылается сообщение сам0делегир0вания: 4. Формирование запроса.

От действующего лица «Администратор» посылается сообщение самоделегирования: 5. Определить товар.

От действующего лица «Администратор» к граничному классу «TDataLearnerF0rm» передается сообщение: 6. Ввод данных.

От действующего лица «Администратор» к управляющему классу «TC0ntr0llerRec0rdLearner» передается сообщение: 7. Сохранить изменения в системе.

От управляющего класса «TC0ntr0llerRec0rdLearner» к классу-сущности «TLearner» передается сообщение: 8. Отправить сведения покупателю.

От управляющего класса «TC0ntr0llerRec0rdLearner» к классу-сущности «TInstruct0r» передается сообщение: 9. Оповестить поставщика.

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

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

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

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

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

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


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

На основе диаграммы последовательности «Внести данные о назначенном товаре» можно добавить в класс «TListCarInstruct0r» следующие свойства:

– «FullName».

– «Car».

– «QuantityLearner».

Далее нужно указать видимость свойства (Visibility).

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

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

Pr0tected (защищенный). Такой атрибут доступен только самому классу и его потомкам.

В данном случае, все атрибуты общие (public).

Далее нужно 0пределить операции. Для атрибута «FullName» в группе чтения значения атрибута указывается Meth0d. Система M0delMaker автоматически генерирует название: GetFullName. В группе Write Access так же необходимо выбрать Meth0d. Система создаст название метода SetFullName. В качестве параметра указывается любое имя. В данном случае value. Аналогичным образом создаются методы доступа для других атрибутов данного класса. [10, с.547]

Следует подготовить программную реализацию методов (GetFullName, SetFullName). Для этого на странице Implementati0n нужно прописать следующий программный код по строкам:

Для метода GetFullName: Result:=FFullName.

Для метода SetFullName: FFullName:=value.

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

Если на диаграмме последовательности к классу подходит сообщение, то в данный класс следует добавить операцию реализации. [18, с.54] Для выявления всех операций реализации одного класса следует проанализировать все диаграммы последовательностей, в которых данный класс участвует.

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

AddRec0rd – добавляет новую запись в класс.

DeleteRec0rd – удаляет запись из класса.

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

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

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

Класс «InternalExamResults»:

– «NameLearner».

– «PracticeResult».

– «The0ryResult».

Класс «TInstruct0r»:

– «FullName».

– «D0B».


– «Passp0rtData».

– «Address».

– «Educati0n».

– «DrivingExperience».

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

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

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

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

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

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

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

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

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

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

Следующий этап пр0ектир0вания инф0рмаци0нн0й системы 0пт0в0й базы – генерация н0в0г0 м0дуля, в к0т0р0м будут представлены с0зданные классы м0дели. [6, с.99] Для с0здания н0в0г0 м0дуля нужн0 перейти на панель Units и в0сп0льз0ваться функцией Add (Д0бавить м0дуль). Не0бх0дим0 задать мест0п0л0жение исх0дн0г0 файла (Relative Unit file name), указать п0дх0дящие имя файла и путь, а также д0бавить классы, включаемые в м0дуль. П0сле 0к0нчания диал0га п0явится сгенерир0ванный шабл0н будущег0 м0дуля.

Для генерации кода модуля необходимо выполнить команду «Unl0ck», затем «Generati0n», далее запустить Delphi и создать модуль «L0cate In Delphi».

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

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

unit m0dul;

interface

uses

SysUtils, Wind0ws, Messages, Classes, Graphics, C0ntr0ls,

F0rms, Dial0gs;

type

TRequestF0rm = class (T0bject)

public

pr0cedure Cl0seF0rm;

pr0cedure 0penF0rm;

end;

TRequest = class (T0bject)

public

pr0cedure CreateRequest;

pr0cedure SendRequest;

end;

TQueryListCI = class (T0bject)

end;

TListCarInstruct0r = class (T0bject)

private

FCar: string;

FFullName: string;

FQuantityLearner: Integer;

public

pr0cedure AddRec0rd;

pr0cedure DeleteRec0rd;

functi0n GetCar: string;

functi0n GetFullName: string;

functi0n GetQuantityLearner: Integer;

pr0cedure SetCar(Value: string);

pr0cedure SetFullName(Value: string);

pr0cedure SetQuantityLearner(Value: Integer);

pr0perty Car: string read GetCar write SetCar;

pr0perty FullName: string read GetFullName write SetFullName;

pr0perty QuantityLearner: Integer read GetQuantityLearner write

SetQuantityLearner;

end;

TLearner = class (T0bject)

end;

TInternalExamResults = class (T0bject)

private

FNameLearner: string;

FPracticeResult: string;

public

pr0cedure AddRec0rd;

pr0cedure DeleteRec0rd;

functi0n GetNameLearner: string;

functi0n GetPracticeResult: string;

functi0n GetThe0ryResult: string;

pr0cedure SetNameLearner(c0nst Value: string);

pr0cedure SetPracticeResult(Value: string);

pr0cedure SetThe0ryResult(Value: string);

pr0perty NameLearner: string read GetNameLearner write SetNameLearner;

pr0perty PracticeResult: string read GetPracticeResult write

SetPracticeResult;

pr0perty The0ryResult: string read GetThe0ryResult write SetThe0ryResult;

end;

TInstruct0r = class (T0bject)

private

FAddress: string;

FD0B: string;

FDrivingExperience: string;

FEducati0n: string;


FFullName: string;

FPassp0rtData: TPassp0rtData;

public

functi0n GetAddress: string;

functi0n GetD0B: string;

functi0n GetDrivingExperience: string;

functi0n GetEducati0n: string;

functi0n GetFullName: string;

functi0n GetPassp0rtData: TPassp0rtData;

pr0cedure SetAddress(Value: string);

pr0cedure SetD0B(Value: string);

pr0cedure SetDrivingExperience(Value: string);

pr0cedure SetEducati0n(Value: string);

pr0cedure SetFullName(Value: string);

pr0cedure SetPassp0rtData(Value: TPassp0rtData);

pr0perty Address: string read GetAddress write SetAddress;

pr0perty D0B: string read GetD0B write SetD0B;

pr0perty DrivingExperience: string read GetDrivingExperience write

SetDrivingExperience;

pr0perty Educati0n: string read GetEducati0n write SetEducati0n;

pr0perty FullName: string read GetFullName write SetFullName;

pr0perty Passp0rtData: TPassp0rtData read GetPassp0rtData write

SetPassp0rtData;

end;

TExamAdmissi0nRep0rt = class (T0bject)

public

pr0cedure CreateRep0rt;

pr0cedure Destr0yRep0rt;

pr0cedure PrintRep0rt;

end;

TEARep0rtF0rm = class (T0bject)

public

pr0cedure Cl0seF0rm;

pr0cedure 0penF0rm;

end;

TDataLearnerF0rm = class (T0bject)

public

pr0cedure Cl0seF0rm;

pr0cedure 0penF0rm;

end;

TC0ntr0llerRec0rdRequest = class (T0bject)

end;

TC0ntr0llerRec0rdLearner = class (T0bject)

end;

TC0ntr0llerEARep0rt = class (T0bject)

end;

pr0cedure Register;

implementati0n

pr0cedure Register;

begin

end;

{*********************** TRequestF0rm ***********************}

pr0cedure TRequestF0rm.Cl0seF0rm;

begin

end;

pr0cedure TRequestF0rm. 0penF0rm;

begin

end;

{************************** TRequest *************************}

pr0cedure TRequest.CreateRequest;

begin

end;

pr0cedure TRequest.SendRequest;

begin

end;

{********************* TListCarInstruct0r **********************}

pr0cedure TListCarInstruct0r.AddRec0rd;

begin

end;

pr0cedure TListCarInstruct0r.DeleteRec0rd;

begin

end;

functi0n TListCarInstruct0r.GetCar: string;

begin

Result:=FCar

end;

functi0n TListCarInstruct0r.GetFullName: string;

begin

Result:=FFullName

end;

functi0n TListCarInstruct0r.GetQuantityLearner: Integer;

begin

Result:=FQuantityLearner

end;

pr0cedure TListCarInstruct0r.SetCar(Value: string);

begin

FCar:=value

end;

pr0cedure TListCarInstruct0r.SetFullName(Value: string);

begin

FFullName:=value

end;

pr0cedure TListCarInstruct0r.SetQuantityLearner(Value: Integer);

begin

FQuantityLearner:=value

end;

{******************* TInternalExamResults *********************}

pr0cedure TInternalExamResults.AddRec0rd;

begin

end;

pr0cedure TInternalExamResults.DeleteRec0rd;

begin

end;

functi0n TInternalExamResults.GetNameLearner: string;

begin

end;

functi0n TInternalExamResults.GetPracticeResult: string;

begin

end;

functi0n TInternalExamResults.GetThe0ryResult: string;

begin

end;

pr0cedure TInternalExamResults.SetNameLearner(c0nst Value: string);

begin

end;

pr0cedure TInternalExamResults.SetPracticeResult(Value: string);

begin

end;

pr0cedure TInternalExamResults.SetThe0ryResult(Value: string);

begin

end;

{*********************** TInstruct0r **************************}

functi0n TInstruct0r.GetAddress: string;

begin

end;

functi0n TInstruct0r.GetD0B: string;

begin

end;

functi0n TInstruct0r.GetDrivingExperience: string;

begin

end;

functi0n TInstruct0r.GetEducati0n: string;

begin

end;

functi0n TInstruct0r.GetFullName: string;

begin

end;

functi0n TInstruct0r.GetPassp0rtData: TPassp0rtData;

begin

end;

pr0cedure TInstruct0r.SetAddress(Value: string);

begin

end;

pr0cedure TInstruct0r.SetD0B(Value: string);

begin