Класс-сущность InternalExamResults - таблица с результатами заявок.
Далее нужно создать список классов в ModelMaker. Он представлен на рисунке 5.
Рисунок 5 - Перечень классов модели информационной системы оптовой базы
.1 Диаграммы последовательности
На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни объекта. Она представляет собой фрагмент жизненного цикла объекта. Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов, оно помечается, как минимум, именем сообщения; можно показать самоделегирование.
На основе диаграммы вариантов использования, проанализировав каждый вариант использования в отдельности, необходимо создать диаграммы последовательности вариантов использования.
Диаграмма последовательности «Заполнить форму заявки на товар»
В данной диаграмме последовательностей используются следующие классы:
TRequestForm - электронная форма заявки на товар, граничный класс (Boundary).
TRequest - заявка на товар, граничный класс (Boundary).
Действующее лицо - Покупатель.
Проанализировав описание варианта использования, можно добавить для данной диаграммы последовательности, следующие сообщения:
От действующего лица «Покупатель» к граничному классу «TRequestForm» передается сообщение: 1. Запрос формы «Заявка».
От граничного класса «TRequestForm» к действующему лицу «Покупатель» передается сообщение: 2. Предоставление формы «Заявка».
От действующего лица «Покупатель» посылается сообщение самоделегирования: 3. Ввод персональных данных.
От действующего лица «Покупатель» к управляющему классу «TControllerRecordRequest» передается сообщение: 4. Сохранить изменения.
От управляющего класса «TControllerRecordRequest» посылается сообщение самоделегирования: 5. Сформировать заявку.
От управляющего класса «TControllerRecordRequest» к граничному классу TRequest посылается сообщение: 6.Отправить заявку.
От действующего лица «Покупатель» к граничному классу «TRequestForm» передается сообщение: 7.Закрытие формы «Заявка»
Созданная диаграмма последовательности для данного варианта использования представлена далее на рисунке 6.
Рисунок 6 - Диаграмма последовательности для варианта использования «Заполнить форму заявки на товар»
Диаграммы последовательности для вариантов использования «Внести данные о назначенном поставщике» и «Сформировать отчет по допуску на экзамен ГИБДД» создаются аналогичным образом.
Диаграмма последовательности «Внести данные о назначенном поставщике»
В данной диаграмме последовательностей используются следующие классы:
TDataLearnerForm- электронная форма для ввода данных о покупателе, граничный класс (Boundary).
TListCarInstructor - таблица с записями о товарах, класс-сущность (Entity).
TLearner - соответствует действующему лицу «Покупатель», класс-сущность.
TInstructor - соответствует действующему лицу «Поставщик», класс-сущность.
Действующее лицо - Администратор.
Проанализировав описание варианта использования, можно добавить для данной диаграммы последовательности, следующие сообщения:
От действующего лица «Администратор» к граничному классу «TDataLearnerForm» передается сообщение: 1. Запрос формы «Данные о покупателе».
От действующего лица «Администратор» к управляющему классу «TControllerRecordLearner» передается сообщение: 2. Запрос данных.
От управляющего класса «TControllerRecordLearner» к классу-сущности «TListCarInstructor» передается сообщение: 3. Запрос информации о товарах.
От управляющего класса «TControllerRecordLearner» посылается сообщение самоделегирования: 4. Формирование запроса.
От действующего лица «Администратор» посылается сообщение самоделегирования: 5. Определить товар.
От действующего лица «Администратор» к граничному классу «TDataLearnerForm» передается сообщение: 6. Ввод данных.
От действующего лица «Администратор» к управляющему классу «TControllerRecordLearner» передается сообщение: 7. Сохранить изменения в системе.
От управляющего класса «TControllerRecordLearner» к классу-сущности «TLearner» передается сообщение: 8. Отправить сведения покупателю.
От управляющего класса «TControllerRecordLearner» к классу-сущности «TInstructor» передается сообщение: 9. Оповестить поставщика.
Созданная диаграмма последовательности для данного варианта использования представлена далее на рисунке 7.
Рисунок 7 - Диаграмма последовательности для варианта использования «Внести данные о назначенном товаре»
.2 Диаграмма классов
Диаграммы классов являются центральным звеном объектно-ориентированных методов. Диаграмма классов определяет типы объектов системы и различного рода статические связи, которые существуют между ними.
На диаграммах классов изображаются также атрибуты классов, операции классов и ограничения, которые накладываются на связи между объектами.
Диаграмма классов включает в себя набор классов модели и описание каждого из них.
Необходимые атрибуты и методы классов определяются на основе анализа диаграмм последовательности. Для включения их в класс воспользуемся нужно воспользоваться функцией Add Property.
На основе диаграммы последовательности «Внести данные о назначенном товаре» можно добавить в класс «TListCarInstructor» следующие свойства:
«FullName».
«Car».
«QuantityLearner».
Далее нужно указать видимость свойства (Visibility).
Public (общий). Это значение предполагает, что атрибут будет виден всеми остальными классами. Любой класс может просмотреть или изменить значение атрибута.
Private (закрытый). Соответствующий атрибут не виден никаким другим классам.
Protected (защищенный). Такой атрибут доступен только самому классу и его потомкам.
В данном случае, все атрибуты общие (public).
Далее нужно определить операции. Для атрибута «FullName» в группе чтения значения атрибута указывается Method. Система ModelMaker автоматически генерирует название: GetFullName. В группе Write Access так же необходимо выбрать Method. Система создаст название метода SetFullName. В качестве параметра указывается любое имя. В данном случае value. Аналогичным образом создаются методы доступа для других атрибутов данного класса.
Следует подготовить программную реализацию методов (GetFullName, SetFullName). Для этого на странице Implementation нужно прописать следующий программный код по строкам:
Для метода GetFullName: Result:=FFullName.
Для метода SetFullName: FFullName:=value.
Следующий этап - создание для данного класса операций реализации, выполняющих бизнес-функции. Они так же выявляются на основе анализа диаграммы последовательности.
Если на диаграмме последовательности к классу подходит сообщение, то в данный класс следует добавить операцию реализации. Для выявления всех операций реализации одного класса следует проанализировать все диаграммы последовательностей, в которых данный класс участвует.
Для включения в класс операции реализации следует воспользоваться функцией Add Metods. Так, для данного класса можно выделить следующие операции реализации:
AddRecord - добавляет новую запись в класс.
DeleteRecord - удаляет запись из класса.
Программная реализация некоторых операций реализации представлена в конечном коде модуля.
Аналогично задаются атрибуты и методы другим классам.
В ходе анализа диаграмм последовательности можно выделить атрибуты для следующих классов:
Класс «InternalExamResults»:
«NameLearner».
«PracticeResult».
«TheoryResult».
Класс «TInstructor»:
«FullName».
«DOB».
«PassportData».
«Address».
«Education».
- «DrivingExperience».
Для электронных форм можно выделить две операции:
«OpenForm» (открыть форму).
Операции класса ExamAdmissionReport:
«CreateReport» (Создать отчет).
«DestroyReport» (Удалить отчет).
«PrintReport» (Отправить отчет на печать).
Созданная диаграмма классов представлена на рисунке 9.
Рисунок 9 - Диаграмма классов информационной системы оптовой базы
.3 Модуль проекта
Следующий этап проектирования информационной системы оптовой базы - генерация нового модуля, в котором будут представлены созданные классы модели. Для создания нового модуля нужно перейти на панель Units и воспользоваться функцией Add (Добавить модуль). Необходимо задать местоположение исходного файла (Relative Unit file name), указать подходящие имя файла и путь, а также добавить классы, включаемые в модуль. После окончания диалога появится сгенерированный шаблон будущего модуля.
Для генерации кода модуля необходимо выполнить команду «Unlock», затем «Generation», далее запустить Delphi и создать модуль «Locate In Delphi».
Далее представлен модуль проекта информационной системы оптовой базы.
Листинг файла modul.pasmodul;
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
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;
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;
Register;
Register;;
{
********************************* TRequestForm *********************************
}TRequestForm.CloseForm;;
TRequestForm.OpenForm;;
{
*********************************** TRequest ***********************************
}TRequest.CreateRequest;;
TRequest.SendRequest;;
{
****************************** TListCarInstructor ******************************
}TListCarInstructor.AddRecord;;
TListCarInstructor.DeleteRecord;;
TListCarInstructor.GetCar: string;
Result:=FCar;
TListCarInstructor.GetFullName: string;
Result:=FFullName;
TListCarInstructor.GetQuantityLearner: Integer;
Result:=FQuantityLearner;
TListCarInstructor.SetCar(Value: string);
FCar:=value;
TListCarInstructor.SetFullName(Value: string);
FFullName:=value;
FQuantityLearner:=value;
{
***************************** TInternalExamResults *****************************
}TInternalExamResults.AddRecord;;
TInternalExamResults.DeleteRecord;;
TInternalExamResults.GetNameLearner: string;;
TInternalExamResults.GetPracticeResult: string;;
TInternalExamResults.GetTheoryResult: string;;
TInternalExamResults.SetNameLearner(const Value: string);;
TInternalExamResults.SetPracticeResult(Value: string);;
TInternalExamResults.SetTheoryResult(Value: string);;
{
********************************* TInstructor **********************************
}TInstructor.GetAddress: string;;
TInstructor.GetDOB: string;;
TInstructor.GetDrivingExperience: string;;
TInstructor.GetEducation: string;;
TInstructor.GetFullName: string;;
TInstructor.GetPassportData: TPassportData;;
TInstructor.SetAddress(Value: string);;
TInstructor.SetDOB(Value: string);;
TInstructor.SetDrivingExperience(Value: string);;
TInstructor.SetEducation(Value: string);;
TInstructor.SetFullName(Value: string);;
TInstructor.SetPassportData(Value: TPassportData);;
{
***************************** TExamAdmissionReport *****************************
}TExamAdmissionReport.CreateReport;;
TExamAdmissionReport.DestroyReport;;
TExamAdmissionReport.PrintReport;;
{
******************************** TEAReportForm *********************************
}TEAReportForm.CloseForm;;
TEAReportForm.OpenForm;;
{
******************************* TDataLearnerForm *******************************
}TDataLearnerForm.CloseForm;;
TDataLearnerForm.OpenForm;
end;
.
. Документирование проекта информационной системы отповой базы
имеет средства автоматического документирования создаваемого проекта. Можно формировать стандартные комментарии для различных элементов диаграмм, классов и модулей, а также генерировать файлы справки. Поддержка документирования происходит на странице Documentation главного окна.
Создания документации производится с помощью мастера Wizart (рис. 10). В диалоговом режиме мастер создаст стандартную документацию на английском языке для заявленных элементов (свойств, методов и т.д.).
Рисунок 10 - Документирование свойства «Address»
Поскольку ModelMaker не прошел локализацию, в создаваемом RTF файле не учитывается русская кодировка, поэтому при необходимости нужно вручную изменить кодировку в созданном файле или использовать перенос текстовых фрагментов (через буфер обмена) в результирующий RTF-файл. Предварительно русскоязычные комментарии следует сформировать на вкладках Documentation создаваемых элементов.
Далее следует создать файл помощи через команду Help File на панели Documentation. Система сгенерирует файл справки в формате RTF (рис. 11).
Рисунок 11 - Окно файла справки help.rtf
ГЛОССАРИЙ
Глоссарий предназначен для описания терминологии предметной области оптовая база.
Действующее лицо - это что-либо, взаимодействующее с системой и находящееся во внешней среде.
Администратор - человек, работающий в оптовой базе, обеспечивающий работу всей системы, составляются списки тех видов продукции, которые могут заинтересовать потенциальных оптовых покупателей и отчетов.
Поставщик (предприятие)- человек, который занимается доставкой товаров и продуктов.
Покупатель - клиент оптовой базы, выбирает товар для покупки, если в наличии не будет выбранного товара, подает заявку.
Отчет - это документ, который имеет электронный и физический тип, представляет собой результат запрашиваемых данных.
UML - (англ. Unified Modeling Language - унифицированный язык моделирования) - язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
САSЕ-технология - совокупность методов проектирования ИС, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех стадиях разработки и сопровождения ИС и разрабатывать приложения в соответствии с информационными потребностями пользователей
Диаграмма вариантов использования - это графическое моделирование требований к будущей информационной системе в стандарте UML.
Диаграмма классов - это графическое моделирование средствами UML статической структуры применяемых в системе классов и связей между ними.
Диаграмма последовательности - это графическое моделирование средствами UML поведения объектов с акцентом на последовательность сообщений в рамках одного варианта использования.
Самоделегирование - сообщение, которое объект посылает самому себе.
Вариант использования (прецендент) - последовательность действий, выполняемых системой в ответ на событие, инициируемое внешним объектом.- это CASE-инструмент объектно-ориентированного проектирования информационных систем.
ЗАКЛЮЧЕНИЕ
В результате выполнения курсового проекта достигнута цель курсовой работы: была создана модель информационной системы автошколы с помощью средства ModelMaker. Изучены принципы CASE моделирования, приобретены навыки проектирования информационных систем в соответствии с международными стандартами и языком UML.
В процессе проектирования были выявлены действующие лица («Администратор», «Клиент», «Поставщик»), варианты использования («Заполнить форму заявки на покупку», «Проанализировать заявку», «Внести данные о продавце и товара», «Принять заказ покупателя», «Установить расписание», «Внести данные обзор товаров, выпускаемых поставщиками», «Сформировать отчет за определенные периоды времени о работе», «Сформировать отчет по списку оптовых покупателей», «Сформировать отчет по заявкам на товары», «Сформировать отчет по анализам продаж»). Было осуществлено краткое описание вариантов использования, построены диаграммы последовательности, выявлены классы, их операции и атрибуты, а также построена диаграмма классов.
Также был создан предварительный модуль проекта на языке Object Pascal и обеспечен документацией.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.Проектирование информационных систем: Методические указания к выполнению курсовой работы для студентов специальности 351400 «Прикладная информатика в экономике» / Сост. П.В. Минеев. Красноярск, КГТУ, 2004. 36 с.
. Проектирование информационных систем: учеб. пособие / П. В. Минеев ; Сиб. федер. ун-т, ХТИ - филиал СФУ. - Абакан : РИСектор ХТИ - филиала СФУ, 2012
.Дубаков А.А. Проектирование информационных систем: Учебное пособие. Томск.: Изд. ТПУ, 2001.
. CyberForum.ru - форум программистов и системных администраторов. [Электронный ресурс]. - Режим доступа: http://www.cyberforum.ru/.