Файл: Проектирование реализации операций бизнес-процесса «Движение библиотечного фонда» (ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТИ).pdf
Добавлен: 30.06.2023
Просмотров: 177
Скачиваний: 5
На диаграмме приведены основные этапы реализации функциональной задачи индивидуального учета библиотечного фонда путем формирования документа «Инвентарная книга».
Последовательность при выполнении данной задачи:
- осуществление входа в систему;
- введение логина и пароля;
- вход в форму «Инвентарная книга»;
- введение номера партии;
- сохранение результатов;
- печать документа.
Рисунок 2.4 – Диаграмма последовательности для прецедента «Формирование «Инвентарной книги»» задачи «Движение библиотечного фонда»
2.5 ДИАГРАММА КОМПОНЕНТОВ И РАЗВЕРТЫВАНИЯ
Диаграмма компонентов, в отличие от прежде рассмотренных диаграмм, описывает особенности физического представления системы. Она позволяет определить архитектуру системы, которая разрабатывается, установив зависимости между программными компонентами, в роли которых может выступать исходный и выполняемый код. Основными графическими элементами диаграммы компонентов есть компоненты, интерфейсы и зависимости между ними.
Диаграмма развертывания предназначена для визуализации элементов и компонентов программы, существующих лишь на этапе ее исполнения. При этом представляются только компоненты-экземпляры программы, являющиеся исполнимыми файлами или динамическими библиотеками. Те компоненты, которые не используются на этапе исполнения, на диаграмме развертывания не показываются. Компоненты с исходными текстами программ могут присутствовать только на диаграмме компонентов. На диаграмме развертывания они не указываются.
Структурно программа реализована следующим образом:
Данные хранятся в таблицах БД MySQL.
Проект программы представлен 3-мя пакетами:
1) Вспомогательные классы
2) Классы реализации форм (пакет View).
3) библиотеки (jasperreports и др.)
Исполняемый файл Library.jar
Диаграмма компонентов, разработанная для данной задачи, реализована в двух вариантах и представлена на рисунке
- (1-ый вариант)
Логическое упрощенное представление реализации программы. Возможно даже не полное отражение и соответствие со структурой программы (см.выше), а просто возможно ли такое представление программы?
- (2-ой вариант)
Логически совпадает с существующей структурой программы (см.выше).
Данные хранятся в таблицах БД MySQL.(пакет Model)
Вспомогательные классы (пакет Control )
Классы реализации форм (пакет View).
Исполняемый файл Library.jar
Можно ли соединить DB MySQL с соответ-щим пакетом Model?
Разработка диаграммы развертывания осуществляется для моделирования требуемых устройств (сервер, рабочая станция клиента), драйвера (для работы с БД), процессов (реализуемых классами) и связи между ними.
Диаграмма развертывания, разработанная для данной задачи, представлена на рисунке:
(Программа основана на архитектуре клиент-сервер. В локальной сети: ПК сервер, ПК клиент, коммутатор)
Рисунок 2.5 − Диаграмма компонентов для задачи «Движение библиотечного фонда»
Рисунок 2.6− Диаграмма компонентов для задачи «Движение библиотечного фонда»
Рисунок 2.7 − Диаграмма развертывания для задачи «Движение библиотечного фонда»
Рисунок 2.8 − Диаграмма развертывания для задачи «Движение библиотечного фонда»
35
ЗАКЛЮЧЕНИЕ
Движение фонда – процесс поступления, перестановки и выбытия документов, итоги которого отражаются в учетной документации.
Итоги движения фондов подводятся в «Книге суммарного учета библиотечного фонда» (или другом регистре суммарного учета, принятом в библиотеке) на основании данных суммарного учета о поступлении и выбытии документов.
Итоговые данные имеют четыре обязательных показателя: состояло на начало года, поступило за год, выбыло за год, состоит на конец года.
Итоговые данные по электронным сетевым документам удаленного доступа представляются следующими показателями учетных единиц: состояло на начало года, оформлено в доступ в течение года, доступ прекращен в течение года, состоит на конец года.
Сведения об итоговых данных фиксируются в форме государственной статистической отчетности №6-НК и представляются для целей государственной статистической отчетности.
Итоговые данные об обменном фонде и электронных сетевых локальных документов включаются в общие показатели библиотечного фонда.
Итоговые данные электронных сетевых документов удаленного доступа отражаются путем добавления к общим показателям библиотечного фонда через «+» количества пакетов и количества (в скобках) включенных в них документов.
СПИСОК ЛИТЕРАТУРЫ
- В.П. Агальцов. Базы данных. - Издательство «Мир», 2002 г. - 376 с.
- А. Горев, Р. Ахаян. Эффективная работа с СУБД. - Издательство «СПБ», 1997 г. - 445 с.
- Омельченко Л. Самоучитель Visual FoxPro 6.0. Издательство - «Петербург», 2000 г. - 512 с.
- ГОСТ Р ИСО/МЭК 12207/99. Государственный стандарт РФ. Информационная технология. Процессы жизненного цикла информационных систем. Издание официальное. - М., 1999
- Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. ГОСТ 19.701-90 (ИСО 5807-85) / Государственный комитет СССР по управлению качеством продукции и стандартам, 01.01.1992.
- Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие, М.: Гелиос АРВ, 2007. - 368 с., ил
- Астелс, Дэвид; Миллер Гранвилл; Новак, Мирослав, Практическое руководство по экстремальному программированию, Пер. с англ. - М.: Издательский дом "Вильямс", 2008. - 320 с.: ил. - Парал. тит. англ
demo = uicontrol(fig_1,'String','Demo','callback',@demo_button_press,...
'Position',[20 5 60 20]);
rnd_demo = uicontrol(fig_1,'String','Random Move','callback',@rnd_demo_button_press,...
'Position',[100 5 80 20]);
clr_trail = uicontrol(fig_1,'String','Clr Trail','callback',@clr_trail_button_press,...
'Position',[200 5 60 20]);
%
home = uicontrol(fig_1,'String','Home','callback',@home_button_press,...
'Position',[280 5 70 20]);
%
% Kinematics Panel
%
K_p = uipanel(fig_1,...
'units','pixels',...
'Position',[20 45 265 200],...
'Title','Kinematics','FontSize',11);
%
% Angle Range Default Name
% Theta 1: 320 (-160 to 160) 90 Waist Joint
% Theta 2: 220 (-110 to 110) -90 Shoulder Joint
% Theta 3: 270 (-135 to 135) -90 Elbow Joint
% Theta 4: 532 (-266 to 266) 0 Wrist Roll
% Theta 5: 200 (-100 to 100) 0 Wrist Bend
% Theta 6: 532 (-266 to 266) 0 Wrist Swivel
t1_home = 90; % offset to define the "home" position as UP.
t2_home = -90;
t3_home = -90;
LD = 105; % Left, used to set the GUI.
HT = 18; % Height
BT = 156; % Bottom
%% GUI buttons for Theta 1. pos is: [left bottom width height]
t1_slider = uicontrol(K_p,'style','slider',...
'Max',160,'Min',-160,'Value',0,...
'SliderStep',[0.05 0.2],...
'callback',@t1_slider_button_press,...
'Position',[LD BT 120 HT]);
t1_min = uicontrol(K_p,'style','text',...
'String','-160',...
'Position',[LD-30 BT+1 25 HT-4]); % L, from bottom, W, H
t1_max = uicontrol(K_p,'style','text',...
'String','+160',...
'Position',[LD+125 BT+1 25 HT-4]); % L, B, W, H
t1_text = uibutton(K_p,'style','text',... % Nice program Doug. Need this
'String','\theta_1',... % due to no TeX in uicontrols.
'Position',[LD-100 BT 20 HT]); % L, B, W, H
% t1_text = uicontrol(K_p,'style','text',... % when matlab fixes uicontrol
% 'String','t1',... % for TeX, then I can use this.
% 'Position',[LD-100 BT 20 HT]); % L, B, W, H
t1_edit = uicontrol(K_p,'style','edit',...
'String',0,...
'callback',@t1_edit_button_press,...
'Position',[LD-75 BT 30 HT]); % L, B, W, H
%
%% GUI buttons for Theta 2.
BT = 126; % Bottom
t2_slider = uicontrol(K_p,'style','slider',...
'Max',115,'Min',-115,'Value',0,... % Mech. stop limits !
'SliderStep',[0.05 0.2],...
'callback',@t2_slider_button_press,...
'Position',[LD BT 120 HT]);
t2_min = uicontrol(K_p,'style','text',...
'String','-110',...
'Position',[LD-30 BT+1 25 HT-4]); % L, from bottom, W, H
t2_max = uicontrol(K_p,'style','text',...
'String','+110',...
'Position',[LD+125 BT+1 25 HT-4]); % L, B, W, H
t2_text = uibutton(K_p,'style','text',...
'String','\theta_2',...
'Position',[LD-100 BT 20 HT]); % L, B, W, H
t2_edit = uicontrol(K_p,'style','edit',...
'String',0,...
'callback',@t2_edit_button_press,...
'Position',[LD-75 BT 30 HT]); % L, B, W, H
%
%% GUI buttons for Theta 3.
BT = 96; % Bottom
t3_slider = uicontrol(K_p,'style','slider',...
'Max',135,'Min',-135,'Value',0,...
'SliderStep',[0.05 0.2],...
'callback',@t3_slider_button_press,...
'Position',[LD BT 120 HT]);
t3_min = uicontrol(K_p,'style','text',...
'String','-135',...
'Position',[LD-30 BT+1 25 HT-4]); % L, from bottom, W, H
t3_max = uicontrol(K_p,'style','text',...
'String','+135',...
'Position',[LD+125 BT+1 25 HT-4]); % L, B, W, H
t3_text = uibutton(K_p,'style','text',...
'String','\theta_3',...
'Position',[LD-100 BT 20 HT]); % L, B, W, H
t3_edit = uicontrol(K_p,'style','edit',...
'String',0,...
'callback',@t3_edit_button_press,...
'Position',[LD-75 BT 30 HT]); % L, B, W, H
%
%% GUI buttons for Theta 4.
BT = 66; % Bottom
t4_slider = uicontrol(K_p,'style','slider',...
'Max',266,'Min',-266,'Value',0,...
'SliderStep',[0.05 0.2],...
'callback',@t4_slider_button_press,...
'Position',[LD BT 120 HT]);
t4_min = uicontrol(K_p,'style','text',...
'String','-266',...
'Position',[LD-30 BT+1 25 HT-4]); % L, from bottom, W, H
t4_max = uicontrol(K_p,'style','text',...
'String','+266',...
'Position',[LD+125 BT+1 25 HT-4]); % L, B, W, H
t4_text = uibutton(K_p,'style','text',...
'String','\theta_4',...
'Position',[LD-100 BT 20 HT]); % L, B, W, H
t4_edit = uicontrol(K_p,'style','edit',...
'String',0,...
'callback',@t4_edit_button_press,...
'Position',[LD-75 BT 30 HT]); % L, B, W, H
%
%% GUI buttons for Theta 5.
BT = 36; % Bottom
t5_slider = uicontrol(K_p,'style','slider',...
'Max',100,'Min',-100,'Value',0,...
'SliderStep',[0.05 0.2],...
'callback',@t5_slider_button_press,...
'Position',[LD BT 120 HT]);
t5_min = uicontrol(K_p,'style','text',...
'String','-100',...
'Position',[LD-30 BT+1 25 HT-4]); % L, from bottom, W, H
t5_max = uicontrol(K_p,'style','text',...
'String','+100',...
'Position',[LD+125 BT+1 25 HT-4]); % L, B, W, H
t5_text = uibutton(K_p,'style','text',...
'String','\theta_5',...
'Position',[LD-100 BT 20 HT]); % L, B, W, H
t5_edit = uicontrol(K_p,'style','edit',...
'String',0,...
'callback',@t5_edit_button_press,...
'Position',[LD-75 BT 30 HT]); % L, B, W, H
%
%% GUI buttons for Theta 6.
BT = 6; % Bottom
t6_slider = uicontrol(K_p,'style','slider',...
'Max',266,'Min',-266,'Value',0,...
'SliderStep',[0.05 0.2],...
'callback',@t6_slider_button_press,...
'Position',[LD BT 120 HT]);
t6_min = uicontrol(K_p,'style','text',...
'String','-266',...
'Position',[LD-30 BT+1 25 HT-4]); % L, from bottom, W, H
t6_max = uicontrol(K_p,'style','text',...
'String','+266',...
'Position',[LD+125 BT+1 25 HT-4]); % L, B, W, H
t6_text = uibutton(K_p,'style','text',...
'String','\theta_6',...
'Position',[LD-100 BT 20 HT]); % L, B, W, H
t6_edit = uicontrol(K_p,'style','edit',...
'String',0,...
'callback',@t6_edit_button_press,...
'Position',[LD-75 BT 30 HT]); % L, B, W, H
%
%% Slider for Theta 1 motion.
%
function t1_slider_button_press(h,dummy)
slider_value = round(get(h,'Value'));
set(t1_edit,'string',slider_value);
T_Old = getappdata(0,'ThetaOld');
t2old = T_Old(2); t3old = T_Old(3); t4old = T_Old(4);
t5old = T_Old(5); t6old = T_Old(6);
pumaANI(slider_value+t1_home,t2old,t3old,t4old,t5old,t6old,10,'n')
end
%
%% Slider for Theta 2 motion.
%
function t2_slider_button_press(h,dummy)
slider_value = round(get(h,'Value'));
set(t2_edit,'string',slider_value);
T_Old = getappdata(0,'ThetaOld');
t1old = T_Old(1); t3old = T_Old(3); t4old = T_Old(4);
t5old = T_Old(5); t6old = T_Old(6);
pumaANI(t1old,slider_value+t2_home,t3old,t4old,t5old,t6old,10,'n')
end
%
%% Slider for Theta 3 motion.
function t3_slider_button_press(h,dummy)
slider_value = round(get(h,'Value'));
set(t3_edit,'string',slider_value);
T_Old = getappdata(0,'ThetaOld');
t1old = T_Old(1); t2old = T_Old(2); t4old = T_Old(4);
t5old = T_Old(5); t6old = T_Old(6);
pumaANI(t1old,t2old,slider_value+t3_home,t4old,t5old,t6old,10,'n')
end
%
%% Slider for Theta 4 motion.
function t4_slider_button_press(h,dummy)
slider_value = round(get(h,'Value'));
set(t4_edit,'string',slider_value);
T_Old = getappdata(0,'ThetaOld');
t1old = T_Old(1); t2old = T_Old(2); t3old = T_Old(3);
t5old = T_Old(5); t6old = T_Old(6);
pumaANI(t1old,t2old,t3old,slider_value,t5old,t6old,10,'n')
end
%
%% Slider for Theta 5 motion.
function t5_slider_button_press(h,dummy)
slider_value = round(get(h,'Value'));
set(t5_edit,'string',slider_value);
T_Old = getappdata(0,'ThetaOld');
t1old = T_Old(1); t2old = T_Old(2); t3old = T_Old(3);
t4old = T_Old(4); t6old = T_Old(6);
pumaANI(t1old,t2old,t3old,t4old,slider_value,t6old,10,'n')
end
%
%% Slider for Theta 6 motion.
function t6_slider_button_press(h,dummy)
slider_value = round(get(h,'Value'));
set(t6_edit,'string',slider_value);
T_Old = getappdata(0,'ThetaOld');
t1old = T_Old(1); t2old = T_Old(2); t3old = T_Old(3);
t4old = T_Old(4); t5old = T_Old(5);
pumaANI(t1old,t2old,t3old,t4old,t5old,slider_value,10,'n')
end
%
%% Edit box for Theta 1 motion.
%
function t1_edit_button_press(h,dummy)
user_entry = check_edit(h,-160,160,0,t1_edit);
set(t1_slider,'Value',user_entry); % slider = text box.
T_Old = getappdata(0,'ThetaOld'); % Current pose
%
t2old = T_Old(2); t3old = T_Old(3); t4old = T_Old(4);
t5old = T_Old(5); t6old = T_Old(6);
%
pumaANI(user_entry+t1_home,t2old,t3old,t4old,t5old,t6old,10,'n')
end
%
%% Edit box for Theta 2 motion.
%
function t2_edit_button_press(h,dummy)
user_entry = check_edit(h,-110,110,0,t2_edit);
set(t2_slider,'Value',user_entry); % slider = text box.
T_Old = getappdata(0,'ThetaOld'); % Current pose
%
t1old = T_Old(1); t3old = T_Old(3); t4old = T_Old(4);
t5old = T_Old(5); t6old = T_Old(6);
%
pumaANI(t1old,user_entry+t2_home,t3old,t4old,t5old,t6old,10,'n')
end
%% Edit box for Theta 3 motion.
%
function t3_edit_button_press(h,dummy)
user_entry = check_edit(h,-135,135,0,t3_edit);
set(t3_slider,'Value',user_entry); % slider = text box.
T_Old = getappdata(0,'ThetaOld'); % Current pose
%
t1old = T_Old(1); t2old = T_Old(2); t4old = T_Old(4);
t5old = T_Old(5); t6old = T_Old(6);
%
pumaANI(t1old,t2old,user_entry+t3_home,t4old,t5old,t6old,10,'n')
end
%%
%% Edit box for Theta 4 motion.
%
function t4_edit_button_press(h,dummy)
user_entry = check_edit(h,-266,266,0,t4_edit);
set(t4_slider,'Value',user_entry); % slider = text box.
T_Old = getappdata(0,'ThetaOld'); % Current pose
%
t1old = T_Old(1); t2old = T_Old(2); t3old = T_Old(3);
t5old = T_Old(5); t6old = T_Old(6);
%
pumaANI(t1old,t2old,t3old,user_entry,t5old,t6old,10,'n')
end
%% Edit box for Theta 5 motion.
%
function t5_edit_button_press(h,dummy)
user_entry = check_edit(h,-100,100,0,t5_edit);
set(t5_slider,'Value',user_entry); % slider = text box.
T_Old = getappdata(0,'ThetaOld'); % Current pose
%
t1old = T_Old(1); t2old = T_Old(2); t3old = T_Old(3);
t4old = T_Old(4); t6old = T_Old(6);
%
pumaANI(t1old,t2old,t3old,t4old,user_entry,t6old,10,'n')
end
%%
%% Edit box for Theta 6 motion.
%
function t6_edit_button_press(h,dummy)