ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 147
Скачиваний: 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); varNewPersonelID: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); varNewEntry: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); varNewEntry: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); varNewEntryID,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 представлена структурная схема программы.
В понятие структуры программы включается состав и описание связей всех модулей, которые реализуют самостоятельные функции программы и описание носителей вводимых и выводимых данных, а также данных, участвующих в обмене между отдельными подпрограммами.
Подчиненность модулей программы отражается в схеме иерархии. Однако, последняя не отражает порядок их вызова или функционирование программы. Обычно схема иерархии дополняется расшифровкой функций, выполняемой модулями.
В таблице приведено описание модулей.