
- •1.2.2. Основные цели и виды деятельности
- •1.2.3. Выявление организационной структуры организации, определение функций ее подразделений и основных бизнес процессов.
- •1.2.3.1. Форма отчёта о подразделениях предприятия
- •1.2.3.2. Положение о бизнес процессах (бп).
- •Обеспечению ремонтов и технического перевооружения оборудования, зданий и сооружений.(оРиТп)
- •1.2.4. Исследование функций структуры и деятельности базового подразделения
- •1.2.4.1. Выявление бизнес - процессов базового подразделения гпд
- •Работа по заключению договоров с поставщиками и подрядными организациями (РпоЗд)
- •1.3. Формулировка требований к системе.
- •1.3.1. Состав бизнес процессов предприятия. Выявление типовых бизнес решений.
- •1.3.2. Содержание бизнес процессов. Диаграммы деятельности.
- •1.3.3. Конечная формулировка требований и концепции системы.
- •2. Анализ и проектирование.
- •2.1. Определение состава классов анализа.
- •2.2. Определение методов объектов.
- •2.3. Формирование диаграммы классов.
- •2.4. Предварительное определение состава хранимых данных.
- •2.5. Предварительное определение состава пользовательского интерфейса
- •2.6. Разработка системы централизованного хранения и обработки данных.
- •3. Разработка системы централизованного хранения и обработки данных
- •3.1 Формирование требований в базе данных.
- •3.2. Формирование отношений базы данных.
- •3.2. Выявление связей отношений.
- •3.3. Даталогическое проектирование
- •3.4. Организация бизнес логики на стороне сервера
- •3.5. Реализация выявленных механизмов.
- •4.2. Определение физической архитектуры данных.
- •4.2.1. Определение состава компонент.
- •4.2.2. Разработка компонент.
- •4.2.2.1. Выбор технологии реализации пользовательской компоненты.
- •4.2.3. Уточнение состава экранных форм. Определение конкретных типов управляющих элементов для форм.
- •4.2.4. Определение технологии доступа к компонентам данных.
- •4.3. Разработка программы для импорта бд из Excel в MsSql
- •5. Аппаратная и административная интеграция ис.
- •5.1. Разработка схемы развертывания.
- •5.1.2. Формулировка требований к физическим устройствам и сетевому оборудованию, состав рабочих мест.
- •5.1.2. Выбор состава аппаратных средств.
- •5.1.3. Расчет потребности персонала.
- •5.2. Разработка среды интеграции.
- •5.2.1. Выбор сетевой архитектуры и технологии.
- •5.2.1.1. Выбор архитектуры.
- •5.2.1.2. Выбор технологии и аппаратных средств. Расчет сети.
- •5.2.2. Разработка среды связи с внешними объектами.
- •6. Общие вопросы администрирования.
- •6.1. Определение стратегии администрирования на уровне руководства и целей предприятия.
- •6.2. Определение объектов администрирования.
- •6.3. Политика администрирования.
- •6.3.1. Права пользователей.
- •6.3.2. Установка пароля.
- •7. Вопросы информационной безопасности.
- •8. Тестирование.
- •9. Функционально-стоимостной анализ отдела гпд
- •9.1 Расчет затрат на разработку системы
- •9.1.1. Затраты на приобретение материалов
- •9.1.2. Затраты на заработную плату разработчикам системы и отчисления на есн
- •9.1.3. Затраты на электроэнергию
- •9.1.4. Накладные расходы
- •9.1.5. Смета затрат на разработку системы
- •9.2 Расчет эксплуатационных затрат
- •9.2.1. Затраты на заработную плату
- •9.2.4 Затраты на электроэнергию
- •9.2.5 Накладные расходы
- •9.2.6 Затраты на материалы
- •9.2.7 Смета эксплуатационных затрат
- •9.3 Расчет экономической эффективности
- •Список литературы
3.4. Организация бизнес логики на стороне сервера
Все механизмы по изменению данных в базе решено организовать на стороне сервера. Все механизмы выполнены с помощью хранимых процедур.
Хранимые процедуры - программы, находящиеся в базе данных и выполняемые по требованию клиента. Хранимая процедура представляет собой набор совместно откомпилированных команд SQL.
Одним из преимуществ хранимых процедур является то, что они выполняются непосредственно на сервере.
Хранимые процедуры обладают и другими преимуществами, среди которых модульность программирования и тестирования, а также ограниченный доступ к таблицам, построенный на базе функций. Это помогает изолировать пользователей от базовых табличных структур, сокращает ошибки в операторах, обеспечивает согласованность программирования и автоматизирует выполнение сложных или неустойчивых транзакций.
3.5. Реализация выявленных механизмов.
На рисунке 58 представлены механизмы используемые для каждой таблицы БД, более подробно они рассмотрены ниже.
Рис 58 Реализация механизмов
Для
ввода новой информации используются
процедуры:
запрос «Ввод новой организации» реализуется хранимой процедурой DobavlenieBlokaOrg:
CREATE PROCEDURE DobavlenieBlokaOrg
@gorod varchar(50),
@org varchar(50),
@INN varchar(50),
@KPP varchar(50),
@OKPO varchar(50),
@OGRN varchar(50),
@index int,
@ulica varchar(50),
@dom varchar(50),
@office varchar(50),
@dol varchar(50),
@f varchar(50),
@i varchar(50),
@o varchar(50),
@kon varchar(50),
@nomer varchar(50)
AS
declare @IDGorod int
declare @IDOrg int
declare @IDAdres int
declare @IDDol int
declare @IDSotrud int
declare @IDKon int
declare @IDTel int
set @IDGorod=(Select id_gorod from Город where город=@gorod)
if @IDGorod is null begin
insert into Город (город)
values (@gorod)
set @IDGorod=IDENT_CURRENT('Город')
end
set @IDOrg=(Select id_nazv_org from Название_орг where название=@org and ИНН=@INN and КПП=@KPP and ОКПО=@OKPO and ОГРН=@OGRN)
if
@IDOrg is null begin
insert into Название_орг (название,ИНН,КПП,ОКПО,ОГРН)
values (@org,@INN,@KPP,@OKPO,@OGRN)
set @IDOrg=IDENT_CURRENT('Название_орг')
end
set @IDAdres=(Select id_adres from Адрес where индекс=@index and улица=@ulica and дом=@dom and офис=@office and id_gorod=@IDGorod and id_nazv_org=@IDOrg)
if @IDAdres is null begin
insert into Адрес (индекс,улица,дом,офис,id_gorod,id_nazv_org)
values (@index,@ulica,@dom,@office,@IDGorod,@IDOrg)
set @IDAdres=IDENT_CURRENT('Адрес')
end
set @IDDol=(Select id_dolgnost from Должность where должность=@dol)
if @IDDol is null begin
insert into Должность (должность)
values (@dol)
set @IDDol=IDENT_CURRENT('Должность')
end
set @IDSotrud=(Select id_sotrud from Сотрудники where фамилия=@f and имя=@i and отчество=@o and id_dolgnost=@IDDol and id_nazv_org=@IDOrg)
if @IDSotrud is null begin
insert into Сотрудники (фамилия,имя,отчество,id_dolgnost,id_nazv_org)
values (@f,@i,@o,@IDDol,@IDOrg)
set @IDSotrud=IDENT_CURRENT('Сотрудники')
end
set @IDKon=(Select id_kontact from Контакт where контакт=@kon)
if @IDKon is null begin
insert into Контакт (контакт)
values (@kon)
set @IDKon=IDENT_CURRENT('Контакт')
end
set
@IDTel =(Select id_telefon from Телефон
where номер=@nomer
and id_kontact=@IDKon and id_sotrud=@IDSotrud)
if @IDTel is null begin
insert into Телефон (номер,id_kontact,id_sotrud)
values (@nomer,@IDKon,@IDSotrud)
set @IDTel =IDENT_CURRENT('Телефон')
end
GO
запрос «Сделка» реализуется хранимой процедурой DobavlenieBlokaDogovor:
CREATE PROCEDURE DobavlenieBlokaDogovor
@vid varchar(50),
@ist varchar(50),
@dog varchar(50),
@naimen varchar(50),
@usl varchar(50),
@dataZakl datetime,
@dataNach datetime,
@dataZav datetime,
@sum varchar(50),
@org varchar(50)
AS
declare @IDOrg int
declare @IDVid int
declare @IDDog int
declare @IDUsl int
declare @IDSdel int
set @IDOrg=(Select id_nazv_org from Название_орг where название=@org)
set @IDVid=(Select id_vid_rabot from Вид_работ where вид_работ=@vid and источник_на_поставку=@ist)
if @IDVid is null begin
insert into Вид_работ (вид_работ,источник_на_поставку)
values
(@vid,@ist)
set @IDVid=IDENT_CURRENT('Вид_работ')
end
set @IDDog=(Select id_dog from Договор where договор=@dog and наименование=@naimen and id_vid_rabot=@IDVid)
if @IDDog is null begin
insert into Договор (договор,наименование,id_vid_rabot)
values (@dog,@naimen,@IDVid)
set @IDDog =IDENT_CURRENT('Договор')
end
set @IDUsl=(Select id_uslov from Условие where условие=@usl)
if @IDUsl is null begin
insert into Условие (условие)
values (@usl)
set @IDUsl=IDENT_CURRENT('Условие')
end
set @IDSdel =(Select id_sdelka from Сделка where id_dog=@IDDog and id_nazv_org=@IDOrg and дата_заключения=@dataZakl and дата_начала=@dataNach and дата_завершения=@dataZav and сумма=@sum and id_uslov=@IDUsl)
if @IDSdel is null begin
insert into Сделка (id_dog,id_nazv_org,дата_заключения,дата_начала,дата_завершения,сумма,id_uslov)
values (@IDDog,@IDOrg,@dataZakl,@dataNach,@dataZav,@sum,@IDUsl)
set @IDSdel =IDENT_CURRENT('Сделка')
end
GO
Для
поиска уже существующей информации
используются процедуры:
запрос «Поиск договора по названию орг. и наименованию работ» реализуется хранимой процедурой PoiskDogovora:
CREATE PROCEDURE PoiskDogovora
@naimen varchar (50),
@vid varchar (50),
@org varchar (50)
AS
SELECT *
FROM Dogovor
where наименование like @naimen+'%' and вид_работ like @vid+'%' and название like @org+'%'
GO
запрос «Поиск организации по №договора и наименованию работ» реализуется хранимой процедурой PoiskOrgan:
CREATE PROCEDURE PoiskOrgan
@naimen varchar (50),
@dog varchar (50)
AS
SELECT dbo.[Название_орг].id_nazv_org, dbo.[Название_орг].название, dbo.[Название_орг].ИНН, dbo.[Название_орг].КПП, dbo.[Название_орг].ОКПО,
dbo.[Название_орг].ОГРН, dbo.Адрес.индекс, dbo.Город.город, dbo.Адрес.улица, dbo.Адрес.дом, dbo.Адрес.офис, dbo.Должность.должность,
dbo.Сотрудники.фамилия, dbo.Сотрудники.имя, dbo.Сотрудники.отчество, dbo.Телефон.номер, dbo.Контакт.контакт
FROM dbo.Адрес INNER JOIN
dbo.Город ON dbo.Адрес.id_gorod = dbo.Город.id_gorod INNER JOIN
dbo.[Название_орг] ON dbo.Адрес.id_nazv_org = dbo.[Название_орг].id_nazv_org INNER JOIN
dbo.Сотрудники ON dbo.[Название_орг].id_nazv_org = dbo.Сотрудники.id_nazv_org INNER JOIN
dbo.Должность
ON dbo.Сотрудники.id_dolgnost
= dbo.Должность.id_dolgnost
INNER JOIN
dbo.Телефон ON dbo.Сотрудники.id_sotrud = dbo.Телефон.id_sotrud INNER JOIN
dbo.Контакт ON dbo.Телефон.id_kontact = dbo.Контакт.id_kontact INNER JOIN
dbo.Сделка ON dbo.[Название_орг].id_nazv_org = dbo.Сделка.id_nazv_org INNER JOIN
dbo.Договор ON dbo.Сделка.id_dog = dbo.Договор.id_dog
WHERE наименование like @naimen+'%' and договор like @dog+'%'
GO
запрос «Поиск телефонов по названию орг. и ФИО сотрудника» реализуется хранимой процедурой PoiskTel:
CREATE PROCEDURE PoiskTel
@nazv varchar (50),
@f varchar (50),
@i varchar (50),
@o varchar (50)
AS
SELECT *
FROM Tel
where название like @nazv+'%' and фамилия like @f+'%' and имя like @i+'%' and отчество like @o+'%'
GO
Для
изменений уже существующей информации
используются процедуры:
запрос «Редактирование организации» реализуется хранимой процедурой RedacOrg:
CREATE PROCEDURE RedacOrg
@id int,
@gorod varchar(50),
@org varchar(50),
@INN varchar(50),
@KPP varchar(50),
@OKPO varchar(50),
@OGRN varchar(50),
@index int,
@ulica varchar(50),
@dom varchar(50),
@office varchar(50),
@f varchar(50),
@i varchar(50),
@o varchar(50),
@dol varchar(50)
AS
declare @IDGorod int
declare @IDDol int
set @IDGorod=(Select id_gorod from Город where город=@gorod)
if @IDGorod is null begin
insert into Город (город)
values (@gorod)
set @IDGorod=(Select id_gorod from Город where город=@gorod)
end
set @IDDol=(Select id_dolgnost from Должность where должность=@dol)
if @IDDol is null begin
insert into Должность (должность)
values (@dol)
set
@IDDol=(Select id_dolgnost from Должность
where должность=@dol)
end
update Адрес set индекс=@index,улица=@ulica,дом=@dom,офис=@office,id_gorod=@IDGorod where id_nazv_org=@id
update Название_орг set название=@org,ИНН=@INN,КПП=@KPP,ОКПО=@OKPO,ОГРН=@OGRN where id_nazv_org=@id
update Сотрудники set фамилия=@f,имя=@i,отчество=@o,id_dolgnost=@IDDol where id_nazv_org=@id
GO
запрос «Редактирование телефона» реализуется хранимой процедурой RedactTelefon:
CREATE PROCEDURE RedactTelefon
@id int,
@nomer varchar(50),
@kon varchar(50)
AS
declare @IDKon int
set @IDKon=(Select id_kontact from Контакт where контакт=@kon)
if @IDKon is null begin
insert into Контакт (контакт)
values (@kon)
set @IDKon=(Select id_kontact from Контакт where контакт=@kon)
end
update Телефон set номер=@nomer,id_kontact=@IDKon where id_telefon=@id
GO
запрос «Редактирование данных по сделке» реализуется хранимой процедурой RedactSdelka:
CREATE PROCEDURE RedactSdelka
@id int,
@dataZakl datetime,
@dataNach datetime,
@dataZav datetime,
@usl varchar(50),
@sum varchar(50)
AS
declare @IDUsl int
set @IDUsl=(Select id_uslov from Условие where условие=@usl)
if @IDUsl is null begin
insert into Условие (условие)
values (@usl)
set @IDUsl=(Select id_uslov from Условие where условие=@usl)
end
update Сделка set дата_заключения=@dataZakl where id_sdelka=@id
update Сделка set дата_начала=@dataNach where id_sdelka=@id
update Сделка set дата_завершения=@dataZav where id_sdelka=@id
update Сделка set id_uslov=@IDUsl where id_sdelka=@id
update Сделка set сумма=@sum where id_sdelka=@id
GO
Для
удаления ставшей ненужной информации
используются процедуры:
запрос «Удаление завершенного договора» реализуется хранимой процедурой UdalenDogovor:
CREATE PROCEDURE UdalenDogovor
@dataZakl datetime,
@dataNach datetime,
@dataZav datetime,
@dog varchar(50),
@naimen varchar(50)
AS
DELETE FROM Сделка WHERE дата_заключения=@dataZakl and дата_начала=@dataNach and дата_завершения=@dataZav
DELETE FROM Договор WHERE договор=@dog and наименование=@naimen
GO
запрос «Удаление организации» реализуется хранимой процедурой UdalenOrg:
CREATE PROCEDURE UdalenOrg
@f varchar(50),
@i varchar(50),
@o varchar(50),
@org varchar(50)
AS
declare @id int
declare @id1 int
set @id=(Select id_sotrud from Сотрудники where фамилия=@f and имя=@i and отчество=@o)
set @id1=(Select id_nazv_org from Название_орг where название=@org)
DELETE FROM Договор WHERE id_dog in (select id_dog from Сделка where id_nazv_org=@id1)
DELETE FROM Телефон WHERE id_sotrud=@id
DELETE FROM Сделка WHERE id_nazv_org=@id1
DELETE FROM Сотрудники WHERE id_nazv_org=@id1
DELETE
FROM Адрес
WHERE id_nazv_org=@id1
DELETE FROM Название_орг WHERE название=@org
GO
запрос «Удаление телефона» реализуется хранимой процедурой UdalenTelefon:
CREATE PROCEDURE UdalenTelefon
@nomer varchar(50),
@f varchar(50),
@i varchar(50),
@o varchar(50)
AS
declare @IDSotrud int
set @IDSotrud=(Select id_sotrud from Сотрудники where фамилия=@f and имя=@i and отчество=@o)
DELETE FROM Телефон WHERE номер=@nomer and id_sotrud=@IDSotrud
GO
запрос «Удаление завершенных договоров» реализуется хранимой процедурой UdalenDogovorPoDate:
CREATE PROCEDURE UdalenDogovorPoDate
AS
DELETE FROM Договор WHERE id_dog in (select id_dog from Сделка where (DATEDIFF(Day, dbo.Сделка.дата_завершения, GETDATE()) > 14))
DELETE FROM Сделка WHERE (DATEDIFF(Day, dbo.Сделка.дата_завершения, GETDATE()) > 14)
GO
Также для удобного использования пользователем информационной системы созданы следующие процедуры:
запрос «Вывод договоров по ремонту» реализуется хранимой процедурой ZaprosRemont:
CREATE PROCEDURE ZaprosRemont
AS
select *
from Remont
GO
запрос «Вывод договоров по тех. перевооружению» реализуется хранимой процедурой ZaprosTexper:
CREATE PROCEDURE ZaprosTexper
AS
select *
from Texper
GO
запрос «Вывод договоров по эксплуатации» реализуется хранимой процедурой ZaprosPostavka:
CREATE PROCEDURE ZaprosPostavka
AS
select *
from Postavka
GO
запрос «Вывод договоров по поставкам» реализуется хранимой процедурой ZaprosEksplotaciya:
CREATE PROCEDURE ZaprosEksplotaciya
AS
select *
from Eksplotaciya
GO
запрос «Вывод адреса организации» реализуется хранимой процедурой ZaprosOrgan:
CREATE PROCEDURE ZaprosOrgan
AS
select *
from Organ
GO
запрос «Выбор всей информации по каждому договору» реализуется хранимой процедурой ZaprosVsy:
CREATE PROCEDURE ZaprosVsy
AS
select *
from Vsy
GO
4.
Физическое проектирование.
Клиентское приложение создано на основе Windows технологии. В качестве программного обеспечения был выбран Borland C++Builder 6.
4.1. Выбор технологии.
4.1.1. Выбор операционной системы.
В качестве операционной системы для разработки и развертывания информационной системы была выбрана Microsoft Windows, поскольку она является наиболее распространенной, обладает достаточно высоким уровнем надежности и безопасности, а так же является удобной в использовании.
4.1.2. Выбор технологии взаимодействия пользователя с системой, технологии пользовательского интерфейса.
Информационная система будет разработана на основе технологии «родных приложений». Это позволяет использовать в полной мере все возможности операционной системы, в том числе «родные» функции, поскольку операционные системы располагают мощными средствами поддержки дополнительных технологий, которые можно применять в приложениях.
4.1.3. Выбор технологии взаимодействия компонент с данными.
В качестве технологии взаимодействия компонент с данными выбрана технология ADO(ActiveX Data Objects) – технология обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB. Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов
Основные компоненты этой технологии используемые в моем проекте:
ADOConnection – создает соединение с базой данных;
ADOQuery – посылает запросы к базе данных.