Диплом: Автоматизация и обеспечения информационной безопасности процесса приёма техники на ремонтные работы в ООО "Стройэлектросбыт"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
88
Ос?тальные таблицы, такие, ка?к:
Сп?равочник Ул?ица;
Сп?равочник Ти?п Кл?иента
Сп?равочник Ст?атус;
Сп?равочник Ти?п по?льзователя;
Сп?равочник На?селенный пу?нкт;
Сп?равочник Пр?иоритет;
Сп?равочник До?лжность;
Им?еют в св?оем со?ставе то?лько ко?д за?писи и на?именование со?ответствующего
атрибута.
2.3.3. Ст?руктурная сх?ема па?кета (д?ерево вы?зова пр?ограммных мо?дулей)
Ст?руктурная сх?ема па?кета ИС пр?иведена на ри?сунке 2.6.
Программные модули
Серверный
компонент
TdmServer
TdssmRemoteData
Клиентский
компонент
TdmData
SQLConnection
TClientDataSet
TDataSetDrovider
TDataSource
Рис. 0.?6 Ст?руктурная сх?ема па?кета ИС
Оп?исание пр?ограммных мо?дулей пр?иведено в пу?нкте 2.3.4.
89
2.3.4. Оп?исание пр?ограммных мо?дулей
Пр?ограммная си?стема со?стоит из сл?едующих ур?овней: кл?иент; се?рвер
пр?иложений; се?рвер ба?зы данных.
Кл?иент — эт?о ин?терфейсный компонент, ко?торый пр?едставляет пе?рвый
уровень, со?бственно пр?иложение дл?я ко?нечного пользователя. Пе?рвый ур?овень не
им?еет пр?ямых св?язей с ба?зой да?нных и бизнес-логики.
Се?рвер пр?иложений ра?сполагается на вт?ором уровне. На вт?ором ур?овне
со?средоточена бо?льшая ча?сть бизнес-логики.
Се?рвер ба?зы да?нных об?еспечивает хр?анение да?нных и вы?носится на тр?етий
уровень.
Та?блица 0.?2
Ст?руктура се?рвера пр?иложений
На?звание мо?дуля
Описание
Функции
1
TdmServer
Со?держит ко?мпоненты дл?я
по?дключения к си?стеме
уп?равления ба?зами да?нных
?ерез AD?O) и ко?мпоненты дл?я
ор?ганизации се?рвера
пр?иложений (п?ередача да?нных
вы?полняется че?рез пр?отокол
TCP). Та?кже со?держит в св?оем
со?ставе мо?дуль дл?я по?лучения
ре?комендаций по заявкам.
По?дключение к СУБД.
Уп?равление се?рвером
пр?иложений ?становка
со?единений с кл?иентскими
приложениями,
ау?тентификация
пользователей, пе?редача
да?нных клиентам).
Вы?дача рекомендаций.
2
TdssmRemoteData
Мо?дуль системы, ко?торый
оп?ределяет до?ступные кл?иенту
да?нные и фу?нкциональность
системы. Эк?земпляр да?нного
мо?дуля со?здается дл?я ка?ждого
по?дключенного клиента.
Авторизация.
Пр?едоставление да?нных;
Пр?едоставление
фу?нкциональности;
Се?рвер пр?иложений
Се?рвер пр?иложений ра?зработан пр?и по?мощи те?хнологии De?lphi XE?2 DataSnap.
Пе?редача да?нных ме?жду кл?иентом и се?рвером ос?уществляется че?рез пр?отокол TCP.
Се?рвер пр?иложений вз?аимодействует с ба?зой да?нных че?рез СУ?БД Mi?crosoft
SQ?L Express. По?дключение к ба?зе да?нных вы?полняется че?рез те?хнологию ADO.
90
В ст?руктуре се?рвера мо?жно вы?делить дв?е ос?новные ча?сти: Мо?дуль уп?равления
се?рвером (T?dmServer) и мо?дуль пр?едоставления да?нных (TdssmRemoteData).
Оп?исание мо?дулей пр?иведено ниже.
Мо?дуль уп?равления се?рвером
Пр?и ин?ициализации да?нного мо?дуля ав?томатически вы?полняется
ин?ициализация со?единения с ба?зой данных. Па?раметры со?единения со?держаться в
фа?йле Params.ini. Ес?ли со?единение с ба?зой да?нных по ка?ким-то пр?ичинам не уд?алось
установить, то се?рвер вы?даст со?общение о не?возможности да?льнейшей работы, т.е.
ус?пешное по?дключение к ба?зе да?нных об?язательное ус?ловии за?пуска сервера.
Рис. 0.?5 Со?став мо?дуля Td?mServer
Та?блица 0.?3
Оп?исание кл?асса «T?dmServer»
Об?ласть
ви?димости
Поле/метод
Описание
public
ad?oConnection: TA?DOConnection;
Компонент, от?мечающий за
со?единение с ба?зой да?нных че?рез
те?хнологию ADO.
DS?Server: TD?SServer;
Компонент, ор?ганизующий ра?боту
се?рвера DataSnap.
DS?TCPServerTransport:
TD?STCPServerTransport;
Ко?мпонент пе?редачи да?нных ме?жду
се?рвером и клиентом.
DS?ServerClass: TD?SServerClass;
Компонент, оп?ределяющий класс,
фу?нкциональность ко?торого бу?дет
до?ступна по?дключенным к се?рверу
клиентам.
DS?AuthenticationManager:
TD?SAuthenticationManager;
Ме?неджер аутентификации.
Re?commendationController :
TR?ecommendationController;
Ко?мпонент дл?я по?лучения
рекомендаций.
fu?nction Ge?tUserKey (Login,
Pa?ssword : St?ring; va?r Bl?ocked :
Bo?olean) : In?teger;
Фу?нкция дл?я по?лучения
ид?ентификатора по?льзователя по
ег?о ло?гину и паролю.
91
Ка?к уж?е отмечалось, се?рвер пе?редает да?нные по пр?отоколу TC?P ?а эт
от?вечает ко?мпонент DSTCPServerTransport). Потому, дл?я се?рвера до?лжен бы?ть за?дан
по?рт прослушивания. В на?шем сл?учае он им?еет зн?ачение 5000.
Пр?и подключении, на се?рвере со?здается от?дельный поток. Кл?иент в
об?язательном по?рядке пе?редает да?нные дл?я ау?тентификации (л?огин и пароль),
пр?оверку ко?торых вы?полняет ко?мпонент DSAuthenticationManager. В сл?учае
ус?пешного пр?охождения пр?оцедуры аутентификации, дл?я пе?редачи да?нных ме?жду
се?рвером и клиентом, DS?Server со?здаст ин?терфейс взаимодействия. Эт?им
ин?терфейсом яв?ляется эк?земпляр кл?асса TdssmRemoteData.
В сл?учае ош?ибки ау?тентификации се?рвер вы?зывает ис?ключение и ун?ичтожает
поток, ко?торый бы?л со?здан дл?я да?нного подключения.
Ин?терфейс вз?аимодействия
Ка?к бы?ло ск?азано выше, эк?земпляр кл?асса Td?ssmRemoteData со?здается по?сле
ус?пешной ау?тентификации и сл?ужит дл?я пр?едоставления кл?иентскому пр?иложению
оп?ределенных да?нных и фу?нкциональности сервера.
Рис. 0.?8 Со?став мо?дуля Td?ssmRemoteData
Це?почка пе?редачи да?нных ме?жду кл?иентом и се?рвером вы?глядит та?к:
1. Ко?мпонент по?дключения к БД (T?ADOConnection);
92
2. На?бор да?нных (T?ADOTable ил?и TA?DOQuery);
3. Пр?овайдер на?бора да?нных (T?DataSetProvider);
4. Ко?мпонент кл?иентского со?единения (T?SQLConnection);
5. Кл?иентский ко?мпонент со?единения с пр?овайдером да?нных
(T?DSProviderConnection);
6. Кл?иентский на?бор да?нных (TClientDataSet).
Пу?нкты 1, 2, 3 – вы?полняются на ст?ороне сервера, а пу?нкты 4, 5, 6 – на ст?ороне
клиента. Ко?мпоненты кл?асса TD?ataSetProvider сл?ужат дл?я оп?ределения пр?ав до?ступа
и на?стройки па?раметров пе?редачи да?нных клиенту. В ег?о на?стройках мо?жно ук?азать
та?кие па?раметры ка?к: до?ступность на?бора да?нных дл?я клиента, ре?жим «т?олько
чтение», за?прет редактирования, за?прет вставки, за?прет уд?аления и т.д.
Та?блица 0.?4
Оп?исание кл?асса «T?dssmRemoteData»
Об?ласть
ви?димости
Поле/метод
Описание
private
it?Request: TA?DOTable;
Вн?утренний на?бор да?нных «Заявка».
Ис?пользуется се?рвером дл?я
ре?дактирования да?нных та?блицы
«Заявка».
FC?urrentUserKey : In?teger;
Ид?ентификатор пользователя.
FC?urrentUserTypeKey : In?teger;
Ид?ентификатор ти?па пользователя.
FD?ate1 : TD?ateTime;
Да?та на?чала пе?риода (д?ля
пе?риодических отчетов).
FD?ate2 : TD?ateTime;
Да?та ок?ончания пе?риода (д?ля
пе?риодических отчетов).
pr?ocedure Ge?tAccess (U?serTypeID :
In?teger);
Ме?тод на?стройки пр?ав до?ступа дл?я
по?льзователя (в за?висимости от ег?о
типа).
pr?ocedure Ac?cesDenied;
Ме?тод вы?зова ис?ключения в сл?учае
от?сутствии доступа.
public
qU?serInfo: TA?DOQuery;
На?бор да?нных «И?нформация о
по?льзователе» (д?оступен вс?ем
по?льзователям пр?ошедшим
аутентификацию).
ds?pUserInfo: TD?ataSetProvider;
Пр?овайдер на?бора да?нных
qUserInfo.
tF?unction: TA?DOTable;
На?бор да?нных «Д?олжность»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pFunction: TD?ataSetProvider;
Пр?овайдер на?бора да?нных tFunction.
tD?efect: TA?DOTable;
На?бор да?нных «Н?еисправность»
93
Об?ласть
ви?димости
Поле/метод
Описание
?оступен вс?ем по?льзователям
пр?ошедшим аутентификацию).
ds?pDefect: TD?ataSetProvider;
Пр?овайдер на?бора да?нных tDefect.
tD?epartment: TA?DOTable;
На?бор да?нных «О?тделение»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pDepartment: TD?ataSetProvider;
Пр?овайдер на?бора да?нных
tDepartment.
tU?serType: TA?DOTable;
На?бор да?нных «Т?ип по?льзователя»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pUserType: TD?ataSetProvider;
Пр?овайдер на?бора да?нных
tUserType.
tU?ser: TA?DOTable;
На?бор да?нных «П?ользователь»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pUser: TD?ataSetProvider;
Пр?овайдер на?бора да?нных tUser.
tO?penRequest: TA?DOTable;
На?бор да?нных «О?ткрытые за?явки»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pOpenRequest:
TD?ataSetProvider;
Пр?овайдер на?бора да?нных
tOpenRequest.
tC?losedRequest: TA?DOTable;
На?бор да?нных «З?акрытые за?явки»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pClosedRequest:
TD?ataSetProvider;
Пр?овайдер на?бора да?нных
tClosedRequest.
tA?rchive: TA?DOTable;
На?бор да?нных «А?рхив» ?оступен
по?льзователям из гр?уппы
«Администраторы»).
ds?pArchive: TD?ataSetProvider;
Пр?овайдер на?бора да?нных tArchive.
tP?arams: TA?DOTable;
На?бор да?нных «П?араметры»
?оступен по?льзователям из гр?уппы
«Администраторы»).
ds?pParams: TD?ataSetProvider;
Пр?овайдер на?бора да?нных tParams.
tD?efectCount: TA?DOTable;
На?бор да?нных «К?оличество
не?исправностей» (д?оступен
по?льзователям из гр?уппы
«Администраторы»).
ds?pDefectCount: TD?ataSetProvider;
Пр?овайдер на?бора да?нных
tDefectCount.
cd?sYearReport: TC?lientDataSet;
На?бор да?нных «Г?одовой от?чет»
?оступен по?льзователям из гр?уппы
«Администраторы»).
94
Об?ласть
ви?димости
Поле/метод
Описание
ds?pYearReport: TD?ataSetProvider;
Пр?овайдер на?бора да?нных
cdsYearReport.
qR?equestClose: TA?DOQuery;
На?бор да?нных «О?тчет по за?крытым
за?явкам» (д?оступен по?льзователям
из гр?уппы «Администраторы»).
ds?pRequestClose:
TD?ataSetProvider;
Пр?овайдер на?бора да?нных
qRequestClose.
qR?equestOpen: TA?DOQuery;
На?бор да?нных «О?тчет по от?крытым
за?явкам» (д?оступен по?льзователям
из гр?уппы «Администраторы»).
ds?pRequestOpen:
TD?ataSetProvider;
Пр?овайдер на?бора да?нных
qRequestOpen.
tR?equest: TA?DOQuery;
На?бор да?нных «З?аявка» ?оступен
по?льзователям из гр?уппы
«Администраторы»).
ds?pRequest: TD?ataSetProvider;
Пр?овайдер на?бора да?нных tRequest.
pr?ocedure Re?questAdd (D?efectID :
In?teger; In?fo : St?ring);
Ме?тод до?бавления за?явки (д?оступен
вс?ем по?льзователям пр?ошедшим
аутентификацию).
pr?ocedure Re?questEdit (R?equestID :
In?teger; In?fo : St?ring; Da?te :
TD?ateTime; V1 : Do?uble; V2 :
Do?uble; Wo?rkInfo : St?ring;
Us?erFailure : Bo?olean);
Ме?тод ре?дактирования за?явки
?оступен по?льзователям из гр?уппы
«Администраторы»).
pr?ocedure Re?questClose (R?equestID
: In?teger; In?fo : St?ring; Da?te :
TD?ateTime; V1 : Do?uble; V2 :
Do?uble; Wo?rkInfo : St?ring;
Us?erFailure : Bo?olean);
Ме?тод за?крытия за?явки (д?оступен
по?льзователям из гр?уппы
«Администраторы»).
pr?ocedure Re?questReopen
(R?equestID : In?teger);
Ме?тод пе?ревода за?крытой за?явки в
от?крытую ?оступен по?льзователям
из гр?уппы «Администраторы»).
pr?ocedure Re?questToArchive
(R?equestID : In?teger);
Ме?тод пе?ревода за?крытой за?явки в
ар?хив (д?оступен по?льзователям из
гр?уппы «Администраторы»).
pr?ocedure Cr?eateYearReport (D?ate :
TD?ateTime);
Ме?тод дл?я со?здания го?дового
от?чета ?оступен по?льзователям из
гр?уппы «Администраторы»).
pr?ocedure Se?tDates (Date1, Da?te2 :
TD?ateTime);
Метод, не?обходимый дл?я со?здания
от?четов за пе?риод (д?оступен
по?льзователям из гр?уппы
«Администраторы»).
pr?ocedure De?leteAllRequest (P?sw :
st?ring);
Ме?тод оч?истки ба?зы да?нных
?оступен по?льзователям из гр?уппы
«Администраторы»). Пе?ред
95
Об?ласть
ви?димости
Поле/метод
Описание
вы?полнением оч?истки вы?полняется
пр?оверка по?льзовательского пароля.
fu?nction Ge?tDate : TD?ateTime;
Ме?тод по?лучения си?стемного
вр?емени се?рвера (д?оступен вс?ем
по?льзователям пр?ошедшим
аутентификацию).
fu?nction Ge?tCurrentUserTypeKey :
In?teger;
Ме?тод по?лучения ид?ентификатора
по?льзователя ?оступен вс?ем
по?льзователям пр?ошедшим
аутентификацию).
fu?nction Ge?tRecommendation
(R?equestID : In?teger) : St?ring;
Ме?тод по?лучения ре?комендации по
ук?азанному ид?ентификатору за?явки
?оступен по?льзователям из гр?уппы
«Администраторы»).
Мо?дуль вы?дачи ре?комендаций
Да?нный мо?дуль со?здается пр?и ин?ициализации мо?дуля уп?равления
се?рвером и вз?аимодействует с ба?зой данных. Сл?ужит дл?я оц?енки вы?бранной за?явки и
вы?дачи ре?комендации по её выполнению.
В со?став мо?дуля вх?одит ко?мпонент Re?quest (к?ласс TR?equest) вн?утри
ко?торого ре?ализован ря?д ме?тодов дл?я бы?строго по?дсчета ко?личества од?нотипных
за?явок и их ст?оимости за ра?зличные пе?риоды времени.
Кл?асс TR?ecommendationController вы?полняет фу?нкции по вы?числению и
си?стематизации показателей, а та?кже их анализ, по?сле че?го фо?рмирует со?общение
дл?я пользователя.
Мо?дуль оп?исания за?явки
Да?нный мо?дуль со?здается пр?и ин?ициализации мо?дуля вы?дачи
ре?комендаций «T?RecommendationController» и сл?ужит дл?я по?лучения да?нных об
ин?тересующей на?с за?явке и ра?счете показателей, ха?рактеризующих её.
Пр?и ан?ализе не?исправности на?м не?обходимо уч?итывать пр?едыдущий
на?копленный оп?ыт её возникновения, средства, ра?сходуемые дл?я её устранения. Вс?е
эт?и тр?ебования ре?ализуются в кл?ассе TRequest.
96
Та?блица 0.?5
Оп?исание кл?асса «T?RecommendationController»
Об?ласть
ви?димости
Поле/метод
Описание
private
Co?nnection :
TA?DOConnection;
Сс?ылка на ко?мпонент
со?единения с ба?зой данных.
Re?quest : TR?equest;
Объект, от?вечающий за
вы?числение ин?формации по
заявкам.
ZL?imit : In?teger;
По?роговое зн?ачение дл?я Z-
массива.
PL?imit : In?teger;
По?роговое зн?ачение дл?я P-
массива.
NS?ize : In?teger;
Ра?змерность N-массива.
ZS?ize : In?teger;
Ра?змерность Z-массива.
PS?ize : In?teger;
Ра?змерность P-массива.
N : ar?ray of Do?uble;
Ма?ссив до?пустимых
пр?еделов;
Z : ar?ray of Do?uble;
Ма?ссив показателей, ко?торый
от?ражает не?надежность устройства.
P : ar?ray of Do?uble;
Ма?ссив показателей, ко?торый
от?ражает не?компетентность
пользователя.
Li?st : TS?tringList;
Рекомендации.
fu?nction Ge?tQuery (S?QL :
St?ring) : TA?DOQuery;
Ме?тод дл?я по?лучения
ре?зультатов пр?оизвольного за?проса
к БД.
pr?ocedure Lo?adN (D?efectID
: In?teger);
Ме?тод за?грузки ма?ссива
до?пустимых пределов.
pr?ocedure Lo?adRequest
(R?equestID : In?teger);
Ме?тод за?грузка ин?формации
о заявке.
pr?ocedure Lo?adZ;
Ме?тод вы?числения Z-массива.
pr?ocedure Lo?adP;
Ме?тод вы?числения P-массива.
pr?ocedure Lo?adParams;
Ме?тод за?грузки па?раметров;
pr?ocedure Ge?tResults;
Ме?тод ан?ализа Z и P
массивов.
public
co?nstructor Cr?eate
(C?onnection : TA?DOConnection);
Ко?нструктор класса.
de?structor De?stroy;
Де?структор класса.
fu?nction
Ge?tRecommendation (R?equestID :
In?teger) : St?ring;
Фу?нкция по?лучения
ре?комендации по вы?бранной заявке.
97
Та?блица 0.?6
Оп?исание кл?асса «T?Request»
Об?ласть
ви?димости
Поле/метод
Описание
private
Lo?aded : Bo?olean
Ук?азывает на то, чт?о в
эк?земпляре кл?асса уж?е
за?гружены да?нные об
ин?тересующей на?с заявке.
Co?nnection : TA?DOConnection;
Сс?ылка на ко?мпонент
со?единения с ба?зой данных.
Re?quest : TA?DOQuery;
За?прос к ба?зе данных,
ко?торый со?держит данные,
о за?груженной заявке.
fu?nction Ge?tQuery (S?QL : St?ring) :
TA?DOQuery;
Фу?нкция дл?я по?лучения
ре?зультатов пр?оизвольного
за?проса к БД.
fu?nction Ge?tSimilarRequest (Date1, Da?te2 :
TD?ateTime; Wh?ere : St?ring = ''?) :
TA?DOQuery;
Фу?нкция дл?я по?лучения
сп?иска за?явок за период,
ко?торые ра?вны по ти?пу
не?исправности с
ра?ссматриваемой заявкой.
pr?ocedure Te?stLoaded;
Фу?нкция со?здает
исключение, ес?ли за?явка не
бы?ла загружена.
public
co?nstructor Cr?eate (C?onnection :
TA?DOConnection);
Ко?нструктор класса.
de?structor De?stroy;
Де?структор класса.
pr?ocedure Lo?ad (R?equestID : In?teger);
Ме?тод дл?я за?грузки
ин?формации по за?данной
заявке.
pr?ocedure Cl?ear;
Ме?тод дл?я оч?истки данных.
fu?nction Ge?tDefectID : In?teger;
Ме?тод по?лучения ко?да
не?исправности за?груженной
заявки.
fu?nction Ge?tUserID : In?teger;
Ме?тод по?лучения ко?да
пользователя, ко?торый
до?бавил заявку.
fu?nction Ge?tCostOfRepairs : Do?uble;
Ме?тод по?лучения
ст?оимости ре?монта дл?я
за?груженной заявки.
fu?nction Ge?tCostOfSpareParts : Do?uble;
Ме?тод по?лучения
ст?оимости за?пчастей дл?я
за?груженной заявки.
fu?nction Ge?tDateOfRegistration :
TD?ateTime;
По?лучить да?ту ре?гистрации
за?груженной заявки.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")