Файл: Курсовая работа по дисциплине Методы и средства проектирования информационных систем и технологий на тему Разработка регламента выполнения процесса Движение библиотечного фонда.docx

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

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

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

Добавлен: 29.11.2023

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

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

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

СОДЕРЖАНИЕ

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

1 РАЗВЕРНУТОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

2 ДИАГРАММЫ UML

2.1 ДИАГРАММА ПРЕЦЕДЕНТОВ

2.2 ДИАГРАММА КЛАССОВ

2.3 ДИАГРАММА ДЕЯТЕЛЬНОСТИ

2.4 ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТИ

2.5 ДИАГРАММА КОМПОНЕНТОВ И РАЗВЕРТЫВАНИЯ

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ А - ЛИСТИНГ ПО

set(L5, 'facec', [0.216,1,.583]);set(L5, 'EdgeColor','none');set(L6, 'facec', [1,1,0.255]);set(L6, 'EdgeColor','none');set(L7, 'facec', [0.306,0.733,1]);set(L7, 'EdgeColor','none');set(A1, 'facec', [.8,.8,.8],'FaceAlpha',.25);set(A1, 'EdgeColor','none');%setappdata(0,'ThetaOld',[90,-90,-90,0,0,0]);%end%%function T = tmat(alpha, a, d, theta)% tmat(alpha, a, d, theta) (T-Matrix used in Robotics)% The homogeneous transformation called the "T-MATRIX"% as used in the Kinematic Equations for robotic type% systems (or equivalent).%% This is equation 3.6 in Craig's "Introduction to Robotics."% alpha, a, d, theta are the Denavit-Hartenberg parameters.%% (NOTE: ALL ANGLES MUST BE IN DEGREES.)%alpha = alpha*pi/180; %Note: alpha is in radians.theta = theta*pi/180; %Note: theta is in radians.c = cos(theta);s = sin(theta);ca = cos(alpha);sa = sin(alpha);T = [c -s 0 a; s*ca c*ca -sa -sa*d; s*sa c*sa ca ca*d; 0 0 0 1];end%%function del_app(varargin)%This is the main figure window close function, to remove any% app data that may be left due to using it for geometry.%CloseRequestFcn% here is the data to remove:% Link1_data: [1x1 struct]% Link2_data: [1x1 struct]% Link3_data: [1x1 struct]% Link4_data: [1x1 struct]% Link5_data: [1x1 struct]% Link6_data: [1x1 struct]% Link7_data: [1x1 struct]% Area_data: [1x1 struct]% patch_h: [1x9 double]% ThetaOld: [90 -182 -90 -106 80 106]% xtrail: 0% ytrail: 0% ztrail: 0% Now remove them.rmappdata(0,'Link1_data');rmappdata(0,'Link2_data');rmappdata(0,'Link3_data');rmappdata(0,'Link4_data');rmappdata(0,'Link5_data');rmappdata(0,'Link6_data');rmappdata(0,'Link7_data');rmappdata(0,'ThetaOld');rmappdata(0,'Area_data');rmappdata(0,'patch_h');rmappdata(0,'xtrail');rmappdata(0,'ytrail');rmappdata(0,'ztrail');delete(fig_1);end%%function [hout,ax_out] = uibutton(varargin)%uibutton: Create pushbutton with more flexible labeling than uicontrol.% Usage:% uibutton accepts all the same arguments as uicontrol except for the% following property changes:%% Property Values% ----------- ------------------------------------------------------% Style 'pushbutton', 'togglebutton' or 'text', default =% 'pushbutton'.% String Same as for text() including cell array of strings and% TeX or LaTeX interpretation.% Interpreter 'tex', 'latex' or 'none', default = default for text()%% Syntax:% handle = uibutton('PropertyName',PropertyValue,...)% handle = uibutton(parent,'PropertyName',PropertyValue,...)% [text_obj,axes_handle] = uibutton('Style','text',...% 'PropertyName',PropertyValue,...)%% uibutton creates a temporary axes and text object containing the text to% be displayed, captures the axes as an image, deletes the axes and then% displays the image on the uicontrol. The handle to the uicontrol is% returned. If you pass in a handle to an existing uicontol as the first% argument then uibutton will use that uicontrol and not create a new one.%% If the Style is set to 'text' then the axes object is not deleted and the% text object handle is returned (as well as the handle to the axes in a% second output argument).%% See also UICONTROL.% Version: 1.6, 20 April 2006% Author: Douglas M. Schwarz% Email: dmschwarz=ieee*org, dmschwarz=urgrad*rochester*edu% Real_email = regexprep(Email,{'=','*'},{'@','.'})% Detect if first argument is a uicontrol handle.keep_handle = false;if nargin > 0h = varargin{1};if isscalar(h) && ishandle(h) && strcmp(get(h,'Type'),'uicontrol')keep_handle = true;varargin(1) = [];endend% Parse arguments looking for 'Interpreter' property. If found, note its% value and then remove it from where it was found.interp_value = get(0,'DefaultTextInterpreter');arg = 1;remove = [];while arg <= length(varargin)v = varargin{arg};if isstruct(v)fn = fieldnames(v);for i = 1:length(fn)if strncmpi(fn{i},'interpreter',length(fn{i}))interp_value = v.(fn{i});v = rmfield(v,fn{i});endendvarargin{arg} = v;arg = arg + 1;elseif ischar(v)if strncmpi(v,'interpreter',length(v))interp_value = varargin{arg+1};remove = [remove,arg,arg+1];endarg = arg + 2;elseif arg == 1 && isscalar(v) && ishandle(v) && ...any(strcmp(get(h,'Type'),{'figure','uipanel'}))arg = arg + 1;elseerror('Invalid property or uicontrol parent.')endendvarargin(remove) = [];% Create uicontrol, get its properties then hide it.if keep_handleset(h,varargin{:})elseh = uicontrol(varargin{:});ends = get(h);if

s5 = getappdata(0,'Link5_data');s6 = getappdata(0,'Link6_data');s7 = getappdata(0,'Link7_data');%A1 = getappdata(0,'Area_data');Link1 = s1.V1;Link2 = (T_01*s2.V2')';Link3 = (T_02*s3.V3')';Link4 = (T_03*s4.V4')';Link5 = (T_04*s5.V5')';Link6 = (T_05*s6.V6')';Link7 = (T_06*s7.V7')';% Tool = T_07;% if sqrt(Tool(1,4)^2+Tool(2,4)^2)<514% Err2 = 1;% break% end%handles = getappdata(0,'patch_h'); %L1 = handles(1);L2 = handles(2);L3 = handles(3);L4 = handles(4);L5 = handles(5);L6 = handles(6);L7 = handles(7);Tr = handles(9);%set(L1,'vertices',Link1(:,1:3),'facec', [0.717,0.116,0.123]);set(L1, 'EdgeColor','none');set(L2,'vertices',Link2(:,1:3),'facec', [0.216,1,.583]);set(L2, 'EdgeColor','none');set(L3,'vertices',Link3(:,1:3),'facec', [0.306,0.733,1]);set(L3, 'EdgeColor','none');set(L4,'vertices',Link4(:,1:3),'facec', [1,0.542,0.493]);set(L4, 'EdgeColor','none');set(L5,'vertices',Link5(:,1:3),'facec', [0.216,1,.583]);set(L5, 'EdgeColor','none');set(L6,'vertices',Link6(:,1:3),'facec', [1,1,0.255]);set(L6, 'EdgeColor','none');set(L7,'vertices',Link7(:,1:3),'facec', [0.306,0.733,1]);set(L7, 'EdgeColor','none');% store trail in appdataif trail == 'y'x_trail = getappdata(0,'xtrail');y_trail = getappdata(0,'ytrail');z_trail = getappdata(0,'ztrail');%xdata = [x_trail T_04(1,4)];ydata = [y_trail T_04(2,4)];zdata = [z_trail T_04(3,4)];%setappdata(0,'xtrail',xdata); % used for trail tracking.setappdata(0,'ytrail',ydata); % used for trail tracking.setappdata(0,'ztrail',zdata); % used for trail tracking.%set(Tr,'xdata',xdata,'ydata',ydata,'zdata',zdata);enddrawnowendsetappdata(0,'ThetaOld',[theta1,theta2,theta3,theta4,theta5,theta6]);end%%%%%%function InitHome% Use forward kinematics to place the robot in a specified% configuration.% Figure setup data, create a new figure for the GUIset(0,'Units','pixels')dim = get(0,'ScreenSize');fig_1 = figure('doublebuffer','on','Position',[0,35,dim(3)-200,dim(4)-110],...'MenuBar','none','Name',' 3D Puma Robot Graphical Demo',...'NumberTitle','off','CloseRequestFcn',@del_app);hold on;%light('Position',[-1 0 0]);light % add a default lightdaspect([1 1 1]) % Setting the aspect ratioview(135,25)xlabel('X'),ylabel('Y'),zlabel('Z');title('WWU Robotics Lab PUMA 762');axis([-1500 1500 -1500 1500 -1120 1500]);plot3([-1500,1500],[-1500,-1500],[-1120,-1120],'k')plot3([-1500,-1500],[-1500,1500],[-1120,-1120],'k')plot3([-1500,-1500],[-1500,-1500],[-1120,1500],'k')plot3([-1500,-1500],[1500,1500],[-1120,1500],'k')plot3([-1500,1500],[-1500,-1500],[1500,1500],'k')plot3([-1500,-1500],[-1500,1500],[1500,1500],'k')s1 = getappdata(0,'Link1_data');s2 = getappdata(0,'Link2_data');s3 = getappdata(0,'Link3_data');s4 = getappdata(0,'Link4_data');s5 = getappdata(0,'Link5_data');s6 = getappdata(0,'Link6_data');s7 = getappdata(0,'Link7_data');A1 = getappdata(0,'Area_data');%a2 = 650;a3 = 0;d3 = 190;d4 = 600;Px = 5000;Py = 5000;Pz = 5000;%The 'home' position, for init.t1 = 90;t2 = -90;t3 = -90;t4 = 0;t5 = 0;t6 = 0;% Forward KinematicsT_01 = tmat(0, 0, 0, t1);T_12 = tmat(-90, 0, 0, t2);T_23 = tmat(0, a2, d3, t3);T_34 = tmat(-90, a3, d4, t4);T_45 = tmat(90, 0, 0, t5);T_56 = tmat(-90, 0, 0, t6);% Each link fram to base frame transformationT_02 = T_01*T_12;T_03 = T_02*T_23;T_04 = T_03*T_34;T_05 = T_04*T_45;T_06 = T_05*T_56;% Actual vertex data of robot linksLink1 = s1.V1;Link2 = (T_01*s2.V2')';Link3 = (T_02*s3.V3')';Link4 = (T_03*s4.V4')';Link5 = (T_04*s5.V5')';Link6 = (T_05*s6.V6')';Link7 = (T_06*s7.V7')';% points are no fun to watch, make it look 3d.L1 = patch('faces', s1.F1, 'vertices' ,Link1(:,1:3));L2 = patch('faces', s2.F2, 'vertices' ,Link2(:,1:3));L3 = patch('faces', s3.F3, 'vertices' ,Link3(:,1:3));L4 = patch('faces', s4.F4, 'vertices' ,Link4(:,1:3));L5 = patch('faces', s5.F5, 'vertices' ,Link5(:,1:3));L6 = patch('faces', s6.F6, 'vertices' ,Link6(:,1:3));L7 = patch('faces', s7.F7, 'vertices' ,Link7(:,1:3));A1 = patch('faces', A1.Fa, 'vertices' ,A1.Va(:,1:3));Tr = plot3(0,0,0,'b.'); % holder for trail paths%setappdata(0,'patch_h',[L1,L2,L3,L4,L5,L6,L7,A1,Tr])%setappdata(0,'xtrail',0); % used for trail tracking.setappdata(0,'ytrail',0); % used for trail tracking.setappdata(0,'ztrail',0); % used for trail tracking.%set(L1, 'facec', [0.717,0.116,0.123]);set(L1, 'EdgeColor','none');set(L2, 'facec', [0.216,1,.583]);set(L2, 'EdgeColor','none');set(L3, 'facec', [0.306,0.733,1]);set(L3, 'EdgeColor','none');set(L4, 'facec', [1,0.542,0.493]);set(L4, 'EdgeColor','none');set(L5, 'facec', [0.216,1,.583]);set(L5, 'EdgeColor','none');set(L6, 'facec', [1,1,0.255]);set(L6, 'EdgeColor','none');set(L7, 'facec', [0.306,0.733,1]);set(L7, 'EdgeColor','none');set(A1, 'facec', [.8,.8,.8],'FaceAlpha',.25);set(A1, 'EdgeColor','none');%setappdata(0,'ThetaOld',[90,-90,-90,0,0,0]);%end%%function T = tmat(alpha, a, d, theta)% tmat(alpha, a, d, theta) (T-Matrix used in Robotics)% The homogeneous transformation called the "T-MATRIX"% as used in the Kinematic Equations for robotic type% systems (or equivalent).%% This is equation 3.6 in Craig's "Introduction to Robotics."% alpha, a, d, theta are the Denavit-Hartenberg parameters.%% (NOTE: ALL ANGLES MUST BE IN DEGREES.)%alpha = alpha*pi/180; %Note: alpha is in radians.theta = theta*pi/180; %Note: theta is in radians.c = cos(theta);s = sin(theta);ca = cos(alpha);sa = sin(alpha);T = [c -s 0 a; s*ca c*ca -sa -sa*d; s*sa c*sa ca ca*d; 0 0 0 1];end%%function del_app(varargin)%This is the main figure window close function, to remove any% app data that may be left due to using it for geometry.%CloseRequestFcn% here is the data to remove:% Link1_data: [1x1 struct]% Link2_data: [1x1 struct]% Link3_data: [1x1 struct]% Link4_data: [1x1 struct]% Link5_data: [1x1 struct]% Link6_data: [1x1 struct]% Link7_data: [1x1 struct]% Area_data: [1x1 struct]% patch_h: [1x9 double]% ThetaOld: [90 -182 -90 -106 80 106]% xtrail: 0% ytrail: 0% ztrail: 0% Now remove them.rmappdata(0,'Link1_data');rmappdata(0,'Link2_data');rmappdata(0,'Link3_data');rmappdata(0,'Link4_data');rmappdata(0,'Link5_data');rmappdata(0,'Link6_data');rmappdata(0,'Link7_data');rmappdata(0,'ThetaOld');rmappdata(0,'Area_data');rmappdata(0,'patch_h');rmappdata(0,'xtrail');rmappdata(0,'ytrail');rmappdata(0,'ztrail');delete(fig_1);end%%function [hout,ax_out] = uibutton(varargin)%uibutton: Create pushbutton with more flexible labeling than uicontrol.% Usage:% uibutton accepts all the same arguments as uicontrol except for the% following property changes:%% Property Values% ----------- ------------------------------------------------------% Style 'pushbutton', 'togglebutton' or 'text', default =% 'pushbutton'.% String Same as for text() including cell array of strings and% TeX or LaTeX interpretation.% Interpreter 'tex', 'latex' or 'none', default = default for text()%% Syntax:% handle = uibutton('PropertyName',PropertyValue,...)% handle = uibutton(parent,'PropertyName',PropertyValue,...)% [text_obj,axes_handle] = uibutton('Style','text',...% 'PropertyName',PropertyValue,...)%% uibutton creates a temporary axes and text object containing the text to% be displayed, captures the axes as an image, deletes the axes and then% displays the image on the uicontrol. The handle to the uicontrol is% returned. If you pass in a handle to an existing uicontol as the first% argument then uibutton will use that uicontrol and not create a new one.%% If the Style is set to 'text' then the axes object is not deleted and the% text object handle is returned (as well as the handle to the axes in a% second output argument).%% See also UICONTROL.% Version: 1.6, 20 April 2006% Author: Douglas M. Schwarz% Email: dmschwarz=ieee*org, dmschwarz=urgrad*rochester*edu% Real_email = regexprep(Email,{'=','*'},{'@','.'})% Detect if first argument is a uicontrol handle.keep_handle = false;if nargin > 0h = varargin{1};if isscalar(h) && ishandle(h) && strcmp(get(h,'Type'),'uicontrol')keep_handle = true;varargin(1) = [];endend% Parse arguments looking for 'Interpreter' property. If found, note its% value and then remove it from where it was found.interp_value = get(0,'DefaultTextInterpreter');arg = 1;remove = [];while arg <= length(varargin)v = varargin{arg};if isstruct(v)fn = fieldnames(v);for i = 1:length(fn)if strncmpi(fn{i},'interpreter',length(fn{i}))interp_value = v.(fn{i});v = rmfield(v,fn{i});endendvarargin{arg} = v;arg = arg + 1;elseif ischar(v)if strncmpi(v,'interpreter',length(v))interp_value = varargin{arg+1};remove = [remove,arg,arg+1];endarg = arg + 2;elseif arg == 1 && isscalar(v) && ishandle(v) && ...any(strcmp(get(h,'Type'),{'figure','uipanel'}))arg = arg + 1;elseerror('Invalid property or uicontrol parent.')endendvarargin(remove) = [];% Create uicontrol, get its properties then hide it.if keep_handleset(h,varargin{:})elseh = uicontrol(varargin{:});ends = get(h);if



НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ ЧАСТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ФИНАНСОВО-ПРОМЫШЛЕННЫЙ «УНИВЕРСИТЕТ СИНЕРГИЯ»
Факультет электронного обучения

курсовая работа


по дисциплине

«Методы и средства проектирования информационных систем и технологий»
на тему

«Разработка регламента выполнения процесса «Движение библиотечного фонда»»


Работу выполнил (а) студент (ка)

группы

ОБИ-1504МО

Направление подготовки:


Профиль:


Захаров Максим Владимирович




Научный руководитель:

Алехина Гелена Васильевна



МОСКВА

2017


ОГЛАВЛЕНИЕ


ВВЕДЕНИЕ 3

1 РАЗВЕРНУТОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 4

2 ДИАГРАММЫ UML 8

2.1 ДИАГРАММА ПРЕЦЕДЕНТОВ 8

2.2 ДИАГРАММА КЛАССОВ 11

Класс 12

Вид связи 12

Класс 12

Кардинальность 12

2.3 ДИАГРАММА ДЕЯТЕЛЬНОСТИ 14

2.4 ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТИ 16

2.5 ДИАГРАММА КОМПОНЕНТОВ И РАЗВЕРТЫВАНИЯ 18

ЗАКЛЮЧЕНИЕ 25

СПИСОК ЛИТЕРАТУРЫ 26

ПРИЛОЖЕНИЕ А - ЛИСТИНГ ПО 27



ВВЕДЕНИЕ




Цель работы - разработка регламента выполнения процесса «Движение библиотечного фонда».

Задачи работы:

- развернутое описание предметной области

- диаграмма прецедентов

- диаграмма классов

- диаграмма деятельности

- диаграмма последовательности

- диаграмма компонентов и развертывания

1 РАЗВЕРНУТОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ


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

В настоящее время библиотека предприятия содержит техническую и учебную литературу, которая необходима сотрудникам для качественного выполнения поставленного перед ними задания. Фонд библиотеки составляет 40 тысяч книг.

Непосредственным объектом автоматизации является отдел комплектования (ОК) библиотеки предприятия, который осуществляет: комплектование фонда библиотеки в строгом соответствии с запросами отделов и профилем предприятия; техническую обработку новых поступлений книг (с помощью традиционной технологии штрих-кодировки); ведение библиотечного учета.

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

Все документы, которые поступили в библиотеку, принимаются ОК по сопроводительным документам (накладным) и штемпелюются. После приема и обработки сопроводительного документа ОК передает его в бухгалтерию. Исключение документов из библиотечного фонда оформляется по акту списания, с обоснованием причины, по которой документ выбывает из фонда. В ОК акт списания формируется на основе документа «Список книг» переданного отделом книгохранения. Документы, которые выбыли, исключаются из всех учетных форм и делается соответствующая запись в акте списания и соответствующих учетных формах.

Формой ведения индивидуального учета документов является «Инвентарная книга».

Формой суммарного учета является «Книга суммарного учета библиотечного фонда». Сведения о движении фонда фиксируются в трех её частях:

– часть 1 – «Поступление в фонд»;

– часть 2 – «Выбытие из фонда»;

– часть 3 – «Итоги движения фонда».

Сведения о поступивших в фонд библиотеки документах фиксируются в первой части.

Сведения о выбывших из фонда библиотеки документах отражаются во второй части с указанием причин выбытия.

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

Накладные, а также акты приема, списания и пожертвования, после обработки и формирования в ОК передаются в бухгалтерию.

Отдел комплектования является одним из основных структурных подразделений библиотеки предприятия. ОК осуществляет заказ, прием и учет поступающей в фонд библиотеки литературы

, а также её списание.

Работа по решению данной задачи в отделе комплектования ведется тремя сотрудниками заведующим отделом комплектования библиотеки и ведущими библиотекарями, которые являются пользователями разрабатываемой автоматизированной системы.

На текущий момент в рамках задачи «Учёт библиотечного фонда», реализуются следующие функциональные задачи:

– индивидуальный учёт библиотечного фонда;

– суммарный учёт библиотечного фонда;

  • учет балансовой стоимости библиотечного фонда.

Под функциональной задачей «Индивидуальный учёт» понимается учет каждого конкретного экземпляра документа и каждого названия документа, поступающего в фонд библиотеки или выбывающего из него.

Формой ведения индивидуального учета документов является «Инвентарная книга».

При списании документов выполняется внесение данных согласно документу «Список книг». Номер акта списания отражается в документах «Инвентарная книга» и третьей части КСУБФ.

Под функциональной задачей «Суммарный учёт» понимается ведение учёта библиотечного фонда группами (партиями), поступающих или выбывающих книг, по одному сопроводительному документу (накладной).

Формой суммарного учета является «Книга суммарного учета библиотечного фонда». Сведения о движении фонда фиксируются в трех её частях:

– часть 1 – «Поступление в фонд»;

– часть 2 – «Выбытие из фонда»;

– часть 3 – «Итоги движения фонда».

Формами ведения учета балансовой стоимости книг являются «Акт прихода», «Акт списання», а также «Акт пожертвования». Балансовая стоимость фонда впоследствии будет отражаться в бухгалтерском учете предприятия.

Для реализации поставленной задачи необходимо осуществление модернизации существующего программного обеспечения путем добавления новых, а также расширением уже существующих структурных элементов программы (интерфейса, внутренней структуры) с сохранением логики её работы. Обработка данных в системе должна быть автоматизированной, осуществляться с минимальным участием человека.

Модернизация задачи предполагает изменение соответствующего ПО:

  • создание экранных форм («Акт прихода», «Акт пожертвования»);

  • усовершенствование экранных форм («Акт списания» (добавление новых кнопок с возможностью формирования документа, вывода на печать и его сохранения), «Причины выбытия» (разработка полей для записи кода), «Сотрудники» (введение дополнительных полей о сотруднике, таких как: телефон, домашний адрес, членство в комиссии, для возможности определения входа сотрудника в постоянно действующую комиссию предприятия по проверке сохранности фонда)).




2 ДИАГРАММЫ UML

2.1 ДИАГРАММА ПРЕЦЕДЕНТОВ


Диаграмма прецедентов для задачи «Движение библиотечного фонда» представлена на рисунке 2.1.

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

На диаграмме представлены:

  • актеры (пользователь разрабатываемой ИС, им могут быть – Заведующий отделом комплектования, ведущие библиотекари)

  • прецеденты (три основные из них – формирование отчетов, формирование библиотечного фонда, формирование справочников).

Пользователь является инициатором всех действий осуществляемых с системой. Прецеденты:

  • формирование отчетов (инициируется пользователем, реализация данной функциональности системы возможна в шести аспектах поведения – вариантах использования, в зависимости от того какой из них выберет пользователь. При выборе определенного варианта его реализация (напр., формирование КСУБФ (Поступление в фонд)) становится возможной только при выполнении обязательного условия (прецедента выбор года, за который будет формироваться данный документ)- прецедента соединенного с базовым связью «include» – включает);

  • формирование библиотечного фонда (инициируется пользователем, реализация данной функциональности системы возможна в двух аспектах поведения – вариантах использования, в зависимости от того какой из них выберет пользователь; реализация выбранного варианта использования осуществляется логически по тем же связям что и для прецедента формирование отчетов);

  • формирование справочников (инициируется пользователем, реализация данной функциональности системы возможна в восьми аспектах поведения – вариантах использования, в зависимости от того какой из них выберет пользователь; реализация выбранного варианта использования осуществляется логически по тем же связям что и для прецедента формирование отчетов).