- •3 Технологический раздел
- •3.1 Технология разработки бд эис
- •3.1.1 Обоснования выбора субд эис
- •3.1.2 Технология организации доступа к бд
- •3.1.3 Разработка физической модели бд
- •3.2 Технология разработки программного обеспечения эис
- •3.2.1 Обоснование выбора средств разработки клиентского приложения
- •3.2.2 Сценарий диалога эис
- •Эис управления проектами
- •3.2.3 Описание функций эис
- •Функции системы управления проектами
- •Project u_ProjectTeam
- •3.3.1 Выбор типа графического интерфейса, его составляющие
- •3.4 Технология работы с эис. Руководство пользователя.
- •3.5 Технология тестирования эис
- •3.5.1 Выбор методики тестирования программной системы
- •3.5.2 Технология обеспечения информационно безопасности эис
3.2.2 Сценарий диалога эис
Разработка структуры сценария диалога представляет собой выявление состава функций, их иерархии и выбора средств организации взаимодействия пользователя с программой. Структура сценария диалога дает возможность определить состав его кадров, содержание каждого из кадров, а также их соподчиненность.
При разработке структуры диалога необходимо предусмотреть возможность работы с экранными формами входных документов, формирование выходных документов, корректировки вводимых данных, просмотра введенной информации, работу с таблицами нормативно-справочной информации, протоколирования действий пользователя, а также помощь на всех этапах работы.
Сценарий диалога пользователя представлен на Рисунке 3.2.
Эис управления проектами
Идентификация
пользователя
Проекты
Справочники
Печатные формы
Отчеты
Персонал
Проектная команда
Затратына
проект
План-график проекта
Отчет о
сроках
Отчет о затратах
Роли
План-график проекта
Отклонения по
проекту
Приказ о создании
проектной команды и установление тарифа
оплаты
Назначения на
проект
Проектная
документация
Отчёт об отклонениях
Отчет о текущем
состоянии
Отчет о проектах
компании
Рисунок 3.2 — Сценарий диалога пользователя
3.2.3 Описание функций эис
Экономическая информационная система представляет собой совокупность организационных, технических, программных и информационных средств, объединенных с целью сбора, хранения, обработки и выдачи информации, необходимой для выполнения функций управления.
Можно выделить и детализировать два множества подфункций, которые обеспечивают информационную поддержку бизнес-процессов компании. Первое подмножество представляет собой основные функции системы. Второе — реализует служебные функции.
К основным функциям ИС, как правило, относятся функции сбора и регистрации информационных ресурсов, их хранение, обработка, актуализация, а так же обработка запросов пользователя.
К основным функциям разрабатываемой системы можно отнести:
планирование проекта;
контроль проекта;
расчёт плановых и фактических затрат на проект;
расчёт материальных и трудовых затрат;
ведение справочной информации;
генерация отчётов;
формирование печатных форм.
К служебным функциям относятся:
связь с базой данных;
идентификация пользователя;
разграничение полномочий.
На Рисунке 3.3 представлено дерево функций системы.
Функции системы управления проектами
Основные
функции Служебные
функции
Связь с базой данных
Планирование проекта
Контроль выполнения
проекта
Расчет плановых и фактических
затрат на проект
Расчет материальных и трудовых затрат
затрат
Идентификация пользователя
Формирование печатных форм
Генерация
отчетов
Ведение справочной информации
Разграничение полномочий
Рисунок 3.3 — Дерево функций системы
Ниже представлен программный код некоторых функций системы.
Листинг 3.1 — Создание новой роли
procedure TfrmAddNewRole.FormActivate(Sender: TObject); begin NewRoleID:=dtmConnection.qurJobs.RecordCount + 1; dtmConnection.dtsJobs.DataSet.Insert; end;
procedure TfrmAddNewRole.cmbOkRoleClick(Sender: TObject); begin dtmConnection.dtsJobs.DataSet.FieldByName('ID').Value:=NewRoleID; dtmConnection.dtsJobs.DataSet.Post; dtmConnection.qurJobs.Refresh; frmAddNewRole.Close; end; |
Листинг 3.2 — Добавление нового персонала
procedure TfrmPersonel.FormActivate(Sender: TObject); var NewPersonelID:integer; begin if frmMain.AddNewPersonel=True then begin dtmConnection.dtsPersonal.DataSet.Insert; NewPersonelID:=dtmConnection.qurPersonal.RecordCount + 1; dtmConnection.dtsPersonal.DataSet.FieldByName('ID').Value:=NewPersonelID; end; end;
procedure TfrmPersonel.cmbOkPersonelClick(Sender: TObject); begin if frmMain.AddNewPersonel=True then begin dtmConnection.dtsPersonal.DataSet.Post; frmPersonel.Close; end; end; |
Листинг 3.3 — Назначение на проект
procedure TfrmProjectTeam.cmbOkProjectTeamClick(Sender: TObject); var NewEntry:integer; begin dtmConnection.qurProjectTeam.Post; cmbJob.DataSource:=frmProjectDetails.dtsProjectTeam; cmbPersonel.DataSource:=frmProjectDetails.dtsProjectTeam; frmProjectDetails.qurProjectTeam.Active:=False; frmProjectDetails.qurProjectTeam.Active:=True; dtmConnection.qurProjectTeam.Active:=False; dtmConnection.qurProjectTeam.Active:=True; frmProjectTeam.Close; end;
procedure TfrmProjectTeam.FormActivate(Sender: TObject); var NewEntry:integer; begin NewEntry:=dtmConnection.qurProjectTeam.RecordCount; NewEntry:=NewEntry+12; cmbJob.DataSource:=dtmConnection.dtsProjectTeam; cmbPersonel.DataSource:=dtmConnection.dtsProjectTeam; |
Продолжение Листинга 3.3
if frmProjectDetails.AddNewProjectTeam=True then with dtmConnection do begin dtsProjectTeam.Dataset.Insert; dtsProjectTeam.DataSet.FieldByName('ID').Value:=NewEntry; dtsProjectTeam.DataSet.FieldByName('ProjectID').Value:=frmProjectDetails.ProjectID; end;
|
Листинг 3.4 — Добавление стадии или проекта
procedure TfrmProjectDetails.cmbAddNewEntryClick(Sender: TObject); begin ckbIsFixated.DataSource:=dtmConnection.dtsProject; txtPlanBeginDate.DataSource:=dtmConnection.dtsProject; txtPlanEndDate.DataSource:=dtmConnection.dtsProject; txtPlanManHour.DataSource:=dtmConnection.dtsProject; txtFactBeginDate.DataSource:=dtmConnection.dtsProject; txtFactEndDate.DataSource:=dtmConnection.dtsProject; txtFactManHour.DataSource:=dtmConnection.dtsProject; txtNameProject.DataSource:=dtmConnection.dtsProject; cmbStatusProject.DataSource:=dtmConnection.dtsProject; cmbTypeProject.DataSource:=dtmConnection.dtsProject; dtmConnection.dtsProject.DataSet.Insert; end;
procedure TfrmProjectDetails.cmbCancelEntryClick(Sender: TObject); begin dtmConnection.dtsProject.DataSet.Cancel; ckbIsFixated.DataSource:=dtsProjectDetails; txtPlanBeginDate.DataSource:=dtsProjectDetails; txtPlanEndDate.DataSource:=dtsProjectDetails; txtPlanManHour.DataSource:=dtsProjectDetails; txtFactBeginDate.DataSource:=dtsProjectDetails; txtFactEndDate.DataSource:=dtsProjectDetails; txtFactManHour.DataSource:=dtsProjectDetails; txtNameProject.DataSource:=dtsProjectDetails; cmbStatusProject.DataSource:=dtsProjectDetails; cmbTypeProject.DataSource:=dtsProjectDetails; Label10.Visible:=False; cmbTypeEntry.Visible:=False; end;
procedure TfrmProjectDetails.cmbApplyEntryClick(Sender: TObject); var NewEntryID,ParentProject, ParentStage:integer; begin if cmbTypeEntry.Text='' then begin ShowMessage('Не выбран тип новой записи'); cmbTypeEntry.SetFocus; Exit; end; dtmConnection.dtsProject.DataSet.FieldByName('ID').Value:=NewEntry; dtmConnection.dtsProject.DataSet.FieldByName('ParentProjectID').Value:=ProjectID; if cmbTypeEntry.Text='Новая стадия' then |
Продолжение Листинга 3.4
begin dtmConnection.dtsProject.DataSet.FieldByName('ParentStageID').Value:=NewEntry; dtmConnection.dtsProject.DataSet.FieldByName('ParentWorkID').Value:=0; end; if cmbTypeEntry.Text='Новая работа' then begin dtmConnection.dtsProject.DataSet.FieldByName('ParentStageID').Value:=dtsProjectDetails.DataSet.FieldValues['ID']; dtmConnection.dtsProject.DataSet.FieldByName('ParentWorkID').Value:=NewEntry; end; dtmConnection.dtsProject.DataSet.Post; ckbIsFixated.DataSource:=dtsProjectDetails; txtPlanBeginDate.DataSource:=dtsProjectDetails; txtPlanEndDate.DataSource:=dtsProjectDetails; txtPlanManHour.DataSource:=dtsProjectDetails; txtFactBeginDate.DataSource:=dtsProjectDetails; txtFactEndDate.DataSource:=dtsProjectDetails; txtFactManHour.DataSource:=dtsProjectDetails; txtNameProject.DataSource:=dtsProjectDetails; cmbStatusProject.DataSource:=dtsProjectDetails; cmbTypeProject.DataSource:=dtsProjectDetails; qurProjectDetails.Active:=False; qurProjectDetails.Active:=True; cmbTypeEntry.Visible:=True; Label10.Visible:=True; dbgProjectDetails.Group(4); dbgProjectDetails.SubGroup(5); end; |
Исходя из анализа требований, предъявляемых к системе, определяется набор всех функций, выполнение которых программа должна поддерживать. Полученные функции объединяются в логически связанные между собой группы. Каждая из таких групп может стать одним из компонентов программной системы.
В процессе анализа функций и на первых стадиях проектирования архитектуры могут быть выявлены дополнительные функции, которые необходимо включить в разрабатываемую программу. Такие функции будут необходимы для выполнения технологических процессов по поддержанию системы в целостном и работоспособном состоянии.
Под архитектурой понимается совокупность компонентов программы, а также связи и способы организации информационного обмена между ними.
Разработка структурной схема, или архитектуры, программы является одним из важных этапов разработки программного обеспечения.
В Таблице 3.1 представлена структурная схема программы. В понятие структуры программы включается состав и описание связей всех модулей, которые реализуют самостоятельные функции программы и описание носителей вводимых и выводимых данных, а также данных, участвующих в обмене между отдельными подпрограммами. В таблице приведено описание модулей.
Таблица 3.1 — Структурная схема программы
Идентификатор модуля |
Описание функций |
Project |
База данных |
U_Data |
Модуль подключения к БД и хранилище всех справочников |
U_Login |
Модуль авторизации |
U_Role * |
Модуль справочника «Роли» |
U_Main |
Модуль главной формы |
U_Personal * |
Модуль справочника персонала |
U_ProjectDet |
Модуль формы детализации проекта |
U_ProjectDev * |
Модуль отклонений проекта |
U_Resources * |
Модуль ресурсов проекта |
U_ProjectManHour * |
Модуль времени проекта |
U_ProjectTeam * |
Модуль команды проекта |
Модули, помеченные знаком * представляют собой модули добавления и изменения данных в соответствующих таблицах.
Взаимосвязь модулей программы представлена на Рисунке 3.4