Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Обеспечение информационной безопасности жизнедеятельности программного продукта



 

Для обеспечения информационной безопасности в данном проекте было применено несколько программных решений.

Корректное введение информации обеспечивается стандартными средствами Delphi при помощи контроля соответствия типов полей и типа вводимых данных. При несоответствии введенного значения с допустимым значением на экран выводится текстовое сообщение, предупреждающее об ошибке ввода.

От программного сбоя программа защищена при помощи стандартных средств Delphi. В папке с программой автоматически создаются резервные файлы редактора (файлы с расширением ~PA и ~DP), которые содержат информацию перед ее сохранением.

Для обеспечения безопасности доступа к базам данных в утилите Database Desktop был задан пароль на вход (рис.3.41)

Рис. 3.41 «Пароль на вход»

Угрозы потери работоспособности не являются опасными для данного проекта, так как программа не имеет сложных настроек, а поэтому может быть легко заменена копией оригинального образца.


Заключение

 

На начальном этапе проектирования была проанализирована деятельность муниципального образовательного учреждения Муниципального образовательного учреждения дополнительного образования детей. Результатом этого анализа стало выявление процесса распределения надтарифного фонда, нуждающегося в автоматизации, который непосредственно влияет на качество работы учреждения. Данное направление обладает спецификой, связанной с необходимостью оценки деятельности каждого работника учреждения.

Рутинная работа распределения надтарифного фонда неэффективна не только в плане производительности труда, но и в отсутствии возможности наглядного анализа деятельности сотрудников в динамике. Дипломный проект был призван решить эту проблему.

Таким образом, проектирование было направлено на решение сформулированных в ходе анализа предметной области задач: ведение учета сотрудников учреждения и показателей их деятельности согласно занимаемой должности, анализ эффективности работы сотрудников, расчет коэффициента трудового участия сотрудников, распределение премиального фонда учреждения по отделам, расчет премий сотрудникам, формирование отчетов о начислении премий сотрудникам учреждения.

В ходе проектирования были сформулированы решения относительно экранных форм, отчетов и структуры БД. Также была описана входная и выходная информация будущего программного средства.

Экспериментальная часть дипломного проектирования посвящена обеспечению информационной безопасности создаваемого программного средства и руководству пользователя.

Проектное решение, представленное в выпускной квалификационной работе, позволяет автоматизировать комплекс задач начисления надтарифного фонда муниципального образовательного учреждения дополнительного образования детей.

Возможным развитием комплекса задач является разработка сетевого варианта получения и передачи данных, а так же импорт и экспорт данных в другие программы.


Список использованной литературы

 

1. Прикладная информатика в экономике: Учеб. Пособие / В.Н.Бугорский, А.А.Емельянов, Ю.М.Порховник и др.; Под ред. д-ра экон. наук, проф. А.И.Михайлушкина. — СПб.: СПбГИЭУ, 2005. — 412 с.

2. Методические указания по дипломному проектированию/ д-р техн. наук, проф. И.А. Брусакова, д-р экон. наук, проф. Р.В. Соколов, канд. экон. наук, проф. В.Н. Бугорский, канд. техн. наук, проф. В.И. Фомин, канд. экон. наук, проф. А.И. Дашевский, канд. экон. наук, доц. И.В. Егорова - СПб.: СПбГИЭУ, 2009. — 28 с.

3. ГОСТ Р ИСО 9127-94 - «Документация пользователя и информация на упаковке для потребительских программных пакетов»

4. ГОСТ 19.701-90 – «Схемы алгоритмов, программ, данных и систем»

5. ГОСТ 7.32-2003 – «Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления»

6. Публичный отчет директора МОУ ДОД «ЦИТ» г. Сертолово

7. Трудовое право часть 2: Электронное пособие / Вдовина Ю.Г.; Под ред. Дубок С.А.

8. Delphi 7. Наиболее полное руководство / А. Хомоненко, В. Гофман, Е. Мещеряков, В. Никифоров, 2008. — 1216 с.

9. Сайт МОУ ДОД «ЦИТ» г. Сертолово http: //cit-sertolovo.edu.ru

 


Приложение 1 (Экранные формы)

 

1. Распределение надтарифного фонда

 

 

2. Редактор

 

 

 

3. Анализ

 

 


Приложение 2 (Фрагмент программного кода)

 

Модуль «Отдел»

 

unit Otdel;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, Buttons, StdCtrls, fcButton,

fcImgBtn, fcShapeBtn, fcClearPanel, fcButtonGroup, RzPanel, fcpanel,

DB, DBTables, dbcgrids, Mask, DbAGrids;

type

TForm2 = class(TForm)

SpeedButton9: TSpeedButton;

fcGroupBox2: TfcGroupBox;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

fcGroupBox1: TfcGroupBox;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

Pokaz1: TQuery;

DataSource1Pokaz: TDataSource;

DataSource2Doljn1: TDataSource;

Doljn1: TQuery;

Otdel1: TQuery;

DataSource3Otd1: TDataSource;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label6: TLabel;

Label7: TLabel;

Label4: TLabel;

Label5: TLabel;

NTF: TQuery;

DataSource1: TDataSource;

fcGroupBox3: TfcGroupBox;

DBNavigator4: TDBNavigator;

DBEdit1: TDBEdit;

fcGroupBox4: TfcGroupBox;

DbAltGrid2: TDbAltGrid;

DBNavigator3: TDBNavigator;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

procedure FormActivate(Sender: TObject);

procedure SpeedButton9Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure DataSource2Doljn1DataChange(Sender: TObject; Field: TField);

procedure DataSource3Otd1DataChange(Sender: TObject; Field: TField);

procedure Doljn1BeforePost(DataSet: TDataSet);

procedure Pokaz1BeforePost(DataSet: TDataSet);

procedure Doljn1BeforeDelete(DataSet: TDataSet);

procedure Pokaz1BeforeDelete(DataSet: TDataSet);

procedure Pokaz1AfterPost(DataSet: TDataSet);

procedure Doljn1AfterPost(DataSet: TDataSet);

procedure Doljn1BeforeEdit(DataSet: TDataSet);

procedure Otdel1BeforeDelete(DataSet: TDataSet);

procedure Pokaz1BeforeEdit(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

sd, sp: string;

implementation

 

uses Main;

 

{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);

begin

Otdel1.Active: =false;

Otdel1.SQL.Clear;

Otdel1.SQL.Add('select * from db\otdel.dbf ');

Otdel1.Active: =true;

 

Doljn1.Active: =false;

Doljn1.SQL.Clear;

Doljn1.SQL.Add('select * from db\doljn.dbf where otdel=: otdel ');

Doljn1.Active: =true;

 

Pokaz1.Active: =false;

Pokaz1.SQL.Clear;

Pokaz1.SQL.Add('select * from db\pokaz.dbf where doljnosti=: doljnosti');

Pokaz1.Active: =true;

 

NTF.Active: =false;

NTF.SQL.Clear;

NTF.SQL.Add('select * from db\NTF.dbf');

NTF.Active: =true;

end;

 

procedure TForm2.SpeedButton9Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

var

n: integer;

begin

Otdel1.Active: =false;

Doljn1.Active: =false;

Pokaz1.Active: =false;

NTF.Active: =false;

 

Form1.Otdel.Open;

Form1.Doljnosti.Open;

Form1.fam.Open;

end;

 

procedure TForm2.DataSource2Doljn1DataChange(Sender: TObject; Field: TField);

begin

 

Pokaz1.Active: =false;

Pokaz1.SQL.Clear;

Pokaz1.SQL.Add('select * from db\pokaz.dbf where (doljnosti=: doljnosti) and (otdel=: otdel)');

Pokaz1.Active: =true;

end;

 

procedure TForm2.DataSource3Otd1DataChange(Sender: TObject; Field: TField);

begin

Doljn1.Active: =false;

Doljn1.SQL.Clear;

Doljn1.SQL.Add('select * from db\doljn.dbf where otdel=: otdel ');

Doljn1.Active: =true;

end;

 

procedure TForm2.Doljn1BeforePost(DataSet: TDataSet);

begin

 

//При добавлении записи сохраняем имя отдела которому добавляем должность

 

Doljn1.Edit;

Doljn1.FieldByName('otdel').asstring: =otdel1.FieldByName('otdel').asstring;

end;

 

procedure TForm2.Pokaz1BeforePost(DataSet: TDataSet);

begin

 

//При добавлении записи сохраняем имя отдела, и должности которому добавляем показатель

 

if Doljn1.RecordCount> 0 then begin

Pokaz1.Edit;

Pokaz1.FieldByName('otdel').asstring: =Doljn1.FieldByName('otdel').asstring;

Pokaz1.FieldByName('doljnosti').asstring: =Doljn1.FieldByName('doljnosti').asstring;

//Сохраняем содержимое memo поля в строковое поле pokaz_str

Pokaz1.FieldByName('pokaz_str').asstring: =Pokaz1.FieldByName('namepokaz').asstring;

Pokaz1.FieldByName('Max_ball').asstring: =Pokaz1.FieldByName('Max_Ball').asstring;

end;

 

end;

 

procedure TForm2.Doljn1BeforeDelete(DataSet: TDataSet);

var i: integer;

R: Word; // переменная, в которой хранится результат

Begin

 

//удаляем все записи всех таблиц содержащие удаляемую должность

 

R: =MessageDLG('Удалить записи из всех таблиц содержащие выбранную должность? ', mtConfirmation, [mbYes, mbNo], 0);

if R=mrYes then begin // если нажата кнопка Yes

 

//удаляем записи в таблице fam

Form1.fam.Active: =false;

Form1.fam.SQL.Clear;

Form1.fam.SQL.Add('select * from db\fam.dbf where (otdel=" '+doljn1.fieldByname('otdel').AsString+'" )');

Form1.fam.SQL.Add(' and (doljnosti=" '+doljn1.fieldByname('doljnosti').AsString+'" )');

Form1.fam.Active: =true;

for i: =0 to Form1.fam.RecordCount-1 do begin

Form1.fam.Delete;

Form1.fam.Next;

end;

 

//удаляем записи в таблице fam_pokaz

 

Form1.fam_pokaz.Active: =false;

Form1.fam_pokaz.SQL.Clear;

Form1.fam_pokaz.SQL.Add('select * from db\fam_pokaz.dbf where (otdel=" '+doljn1.fieldByname('otdel').AsString+'" )');

Form1.fam_pokaz.SQL.Add(' and (doljnosti=" '+doljn1.fieldByname('doljnosti').AsString+'" )');

Form1.fam_pokaz.Active: =true;

for i: =0 to Form1.fam_pokaz.RecordCount-1 do begin

Form1.fam_pokaz.Delete;

Form1.fam_pokaz.Next;

end;

 

//удаляем записи в таблице pokaz

 

pokaz1.Active: =false;

pokaz1.SQL.Clear;

pokaz1.SQL.Add('select * from db\pokaz.dbf where (otdel=" '+doljn1.fieldByname('otdel').AsString+'" )');

pokaz1.SQL.Add(' and (doljnosti=" '+doljn1.fieldByname('doljnosti').AsString+'" )');

pokaz1.Active: =true;

for i: =0 to pokaz1.RecordCount-1 do begin

pokaz1.Delete;

pokaz1.Next;

end;

end;

if R=mrNo then Abort; // если нажата кнопка No

end;

 

procedure TForm2.Pokaz1BeforeDelete(DataSet: TDataSet);

var i: integer;

R: Word; // переменная, в которой хранится результат

m: boolean;

begin

 

//удаляем все записи всех таблиц содержащие удаляемую должность

 

R: =MessageDLG('Удалить записи из всех таблиц содержащие выбранную должность? ', mtConfirmation, [mbYes, mbNo], 0);

if R=mrYes then begin // если нажата кнопка Yes

 

//удаляем записи в таблице fam_pokaz

Form1.fam_pokaz.Active: =false;

Form1.fam_pokaz.SQL.Clear;

Form1.fam_pokaz.SQL.Add('select * from db\fam_pokaz.dbf where (otdel=" '+pokaz1.fieldByname('otdel').AsString+'" )');

Form1.fam_pokaz.SQL.Add(' and (doljnosti=" '+pokaz1.fieldByname('doljnosti').AsString+'" )');

Form1.fam_pokaz.SQL.Add(' and (pokaz_str=" '+pokaz1.fieldByname('pokaz_str').AsString+'" )');

Form1.fam_pokaz.Active: =true;

for i: =0 to Form1.fam_pokaz.RecordCount-1 do begin

Form1.fam_pokaz.Delete;

Form1.fam_pokaz.Next;

end;

end;

 

if R=mrNo then Abort; // если нажата кнопка No

end;

 

procedure TForm2.Pokaz1AfterPost(DataSet: TDataSet);

var i: integer;

begin

 

//После сохранения исправления записи с данной должностью, изменяем содержимое всех таблиц по полю namepokaz

 

Form1.Fam_pokaz.Close;

Form1.fam_pokaz.SQL.Clear;

Form1.fam_pokaz.SQL.Add('select * from db\fam_pokaz.dbf where (pokaz_str = " '+sp+'" )');

Form1.fam_pokaz.SQL.Add('and (otdel = " '+pokaz1.fieldByname('otdel').AsString+'" )');

Form1.fam_pokaz.SQL.Add('and (doljnosti = " '+pokaz1.fieldByname('doljnosti').AsString+'" )');

//Form1.fam_pokaz.SQL.Add('and (doljnosti = " '+pokaz1.fieldByname('Max_ball').AsString+'" )');

Form1.fam_pokaz.Active: =true;

 

for i: =0 to Form1.fam_pokaz.RecordCount-1 do begin

Form1.fam_pokaz.Edit;

Form1.fam_pokaz.FieldByName('namepokaz').asstring: =pokaz1.fieldByname('namepokaz').AsString;

Form1.fam_pokaz.FieldByName('pokaz_str').asstring: =pokaz1.fieldByname('pokaz_str').AsString;

Form1.fam_pokaz.Post;

Form1.fam_pokaz.Next;

end;

Pokaz1.Refresh;

end;

 

procedure TForm2.Doljn1AfterPost(DataSet: TDataSet);

var i: integer;

begin

 

//После сохранения исправления записи с данной должностью, изменяем содержимое всех таблиц по полю doljnosti

 

Form1.Fam_pokaz.Close;

Form1.fam_pokaz.SQL.Clear;

Form1.fam_pokaz.SQL.Add('select * from db\fam_pokaz.dbf where (doljnosti = " '+sd+'" )');

Form1.fam_pokaz.SQL.Add('and (otdel = " '+doljn1.fieldByname('otdel').AsString+'" )');

Form1.fam_pokaz.Active: =true;

 

for i: =0 to Form1.fam_pokaz.RecordCount-1 do begin

Form1.fam_pokaz.Edit;

Form1.fam_pokaz.FieldByName('doljnosti').asstring: =doljn1.fieldByname('doljnosti').AsString;

Form1.fam_pokaz.Post;

Form1.fam_pokaz.Next;

end;

 

Form1.fam.Close;

Form1.fam.SQL.Clear; // where namepokaz = " "

Form1.fam.SQL.Add('select * from db\fam.dbf where doljnosti = " '+sd+'" ');

Form1.fam.SQL.Add('and (otdel = " '+doljn1.fieldByname('otdel').AsString+'" )');

Form1.fam.Active: =true;

 

for i: =0 to Form1.fam.RecordCount-1 do begin

Form1.fam.Edit;

Form1.fam.FieldByName('doljnosti').asstring: =doljn1.fieldByname('doljnosti').AsString;

Form1.fam.Post;

Form1.fam.Next;

end;

 

pokaz1.Close;

pokaz1.SQL.Clear; // where namepokaz = " "

pokaz1.SQL.Add('select * from db\pokaz.dbf where doljnosti = " '+sd+'" ');

pokaz1.SQL.Add('and (otdel = " '+doljn1.fieldByname('otdel').AsString+'" )');

pokaz1.Active: =true;

 

for i: =0 to pokaz1.RecordCount-1 do begin

pokaz1.Edit;

pokaz1.FieldByName('doljnosti').asstring: =doljn1.fieldByname('doljnosti').AsString;

pokaz1.Post;

pokaz1.Next;

end;

end;

procedure TForm2.Doljn1BeforeEdit(DataSet: TDataSet);

begin

 

//Сохраняем в переменную sd должность до ее изменения

 

sd: =doljn1.FieldByname('doljnosti').asstring;

end;

 

procedure TForm2.Otdel1BeforeDelete(DataSet: TDataSet);

var i: integer;

R: Word; // переменная, в которой хранится результат

begin

Doljn1.First;

R: =MessageDLG('Удалить записи из всех таблиц содержащие выбранный отдел? ', mtConfirmation, [mbYes, mbNo], 0);

if R=mrYes then begin // если нажата кнопка Yes

 

//удаляем записи в таблице otdel

 

for i: =0 to Doljn1.RecordCount-1 do begin

Doljn1.Delete;

Doljn1.Next;

end;

 

//удаляем записи в таблице fam

 

Form1.fam.Active: =false;

Form1.fam.SQL.Clear;

Form1.fam.SQL.Add('select * from db\fam.dbf where otdel=" '+otdel1.fieldByname('otdel').AsString+'" ');

Form1.fam.Active: =true;

for i: =0 to Form1.fam.RecordCount-1 do begin

Form1.fam.Delete;

Form1.fam.Next;

end;

 

//удаляем записи в таблице fam_pokaz

 

Form1.fam_pokaz.Active: =false;

Form1.fam_pokaz.SQL.Clear;

Form1.fam_pokaz.SQL.Add('select * from db\fam_pokaz.dbf where otdel=" '+otdel1.fieldByname('otdel').AsString+'" ');

Form1.fam_pokaz.Active: =true;

for i: =0 to Form1.fam_pokaz.RecordCount-1 do begin

Form1.fam_pokaz.Delete;

Form1.fam_pokaz.Next;

end;

 

//удаляем записи в таблице pokaz

 

pokaz1.Active: =false;

pokaz1.SQL.Clear;

pokaz1.SQL.Add('select * from db\pokaz.dbf where otdel=" '+otdel1.fieldByname('otdel').AsString+'" ');

pokaz1.Active: =true;

for i: =0 to pokaz1.RecordCount-1 do begin

pokaz1.Delete;

pokaz1.Next;

end;

 

end;

if R=mrNo then // если нажата кнопка No

Abort;

end;

 

procedure TForm2.Pokaz1BeforeEdit(DataSet: TDataSet);

begin

 

//Сохраняем в переменную sp должность до ее изменения

 

sp: =pokaz1.FieldByname('pokaz_str').asstring;

end;

 

end.


Приложение 3 (Баланс)

 


Поделиться:



Популярное:

  1. III Часть. Аппаратное обеспечение обработки информации
  2. III. Анализ продукта (изделия) на качество
  3. III. Обеспечение безопасности участников и зрителей
  4. III. Обеспечение безопасности участников и зрителей,
  5. А.5.2 Краткое описание программного обеспечения анализатора
  6. Анализ безубыточной деятельности и запаса финансовой безопасности предприятия
  7. Анализ показателей безопасности и качества колбасы в/с Докторской ПГН ЗАО «Микоян».
  8. Анализ ТР ТС 034/2013 «О безопасности мяса и мясной продукции»
  9. Ведущий специалист-эксперт-инженер по охране труда и технике безопасности Управления сельского хозяйства
  10. Вопрос 187. Обеспечение доказательств до и после предъявления иска (основания и порядок). Судебные поручения в гражданском процессе. Процедура нотариального обеспечения доказательств.
  11. Вопрос 7. Складской технологический процесс и принципы его организации. Обеспечение полной сохранности - как важнейший принцип организации складского технологического процесса.
  12. Вопрос 77. Общая характеристика и виды преступлений против мира и безопасности человечества


Последнее изменение этой страницы: 2016-08-31; Просмотров: 544; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.122 с.)
Главная | Случайная страница | Обратная связь