Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологический раздел.docx
Скачиваний:
14
Добавлен:
09.04.2015
Размер:
890.61 Кб
Скачать

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