- •1 Исследовательский раздел
- •1.1 Обобщенная характеристика предмета исследования
- •1.1.1 Характеристика объекта исследования
- •1.1.2 Характеристика предмета исследования
- •1.1.3 Существующая технология выбранной функции управления
- •1.2 Экономическая сущность исследуемых задач
- •1.3 Постановка задачи на разработку эис
- •1.4 Анализ существующих разработок
- •1.4.1Система “PrimaveraProjectPlanner”
- •1.4.2 Продукт “OpenPlan”
- •1.4.3 Система “SpiderProject”
- •1.4.4Программа “MicrosoftProject”
- •2 Специальный раздел
- •2.1 Новая технология выполнения выбранной функции управления
- •2.2 Описание обеспечивающих подсистем эис
- •2.2.1 Организационное обеспечение
- •2.2.2 Правовое обеспечение
- •2.2.3 Техническое обеспечение
- •2.2.4 Математическое обеспечение
- •2.2.5 Программное обеспечение
- •2.2.6 Информационное обеспечение
- •2.2.7 Лингвистическое обеспечение
- •2.2.8 Технологическое обеспечение
- •2.3 Экономические параметры разработки и внедрения эис
- •2.3.1 Планирование выполнения работ
- •2.3.2 Расчет себестоимости разработки и внедрения эис
- •2.3.3 Обоснование целесообразности разработки и внедрения эис
- •2.3.4 Экономический эффект от внедрения эис
- •3 Технологический раздел
- •3.1 Технология разработки бд эис
- •3.1.1 Обоснования выбора субд эис
- •3.1.2 Технология организации доступа к бд
- •3.1.3 Разработка физической модели бд
- •3.2 Технология разработки программного обеспечения эис
- •3.2.1 Обоснование выбора средств разработки клиентского приложения
- •3.2.2 Сценарий диалога эис
- •Эис управления проектами
- •3.2.3 Описание функций эис
- •Функции системы управления проектами
- •Основные функции Служебные функции
- •3.3 Технология разработки пользовательского интерфейса эис
- •3.3.1 Выбор типа графического интерфейса, его составляющие
- •3.4 Технология работы с эис. Руководство пользователя
- •3.5 Технология тестирования эис
- •3.5.1 Выбор методики тестирования программной системы
- •3.5.2 Технология обеспечения информационно безопасности эис
- •4 Раздел безопасность жизнедеятельности
- •4.2 Санитарно-гигиеническая характеристика производственного помещения
- •4.3 Организационно-технические решения по обеспечению безопасных условий труда
- •4.3.1 Защита от поражения электрическим током
- •4.3.2 Режим труда и отдыха
- •4.3.3 Организация рабочего места оператора
- •4.4 Мероприятия по защите окружающей среды
- •Список использованных источников
- •Приложение
Функции системы управления проектами
Основные функции Служебные функции
Связь с базой данных
Планирование проекта
Контроль выполнения
проекта
Расчет плановых и фактических
затрат на проект
Расчет материальных и трудовых затрат
затрат
Идентификация пользователя
Формирование печатных форм
Генерация
отчетов
Ведение справочной информации
Разграничение полномочий
Рисунок 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 представлена структурная схема программы.
В понятие структуры программы включается состав и описание связей всех модулей, которые реализуют самостоятельные функции программы и описание носителей вводимых и выводимых данных, а также данных, участвующих в обмене между отдельными подпрограммами.
Подчиненность модулей программы отражается в схеме иерархии. Однако, последняя не отражает порядок их вызова или функционирование программы. Обычно схема иерархии дополняется расшифровкой функций, выполняемой модулями.
В таблице приведено описание модулей.
Таблица 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
Project
Рисунок 3.4 ― Схема взаимодействия модулей программы