
- •Содержание
- •Введение
- •1. Анализ предметной области и разработка требований к информационной системе
- •1.1. Описание и анализ предметной области
- •Обзор существующего программного обеспечения
- •1.3. Анализ функциональных и эксплуатационных требований
- •1.3.1. Перечень стандартов
- •1.3.2. Функциональные требования пользователя
- •1.3.3. Входные данные
- •1.3.4. Выходные данные
- •1.3.5. Требования к интерфейсу
- •1.3.6. Требования к надежности
- •1.3.7. Требования к программной документации
- •1.3.8. Требования к составу и параметрам технических средств
- •1.4. Модель вариантов использования
- •1.5. Глоссарий проекта
- •1.6. Проверка модели на полноту
- •2. Проектирование аис «отдел кадров»
- •2.1. Разработка архитектуры системы
- •2.2. Разработка модели предметной области
- •2.3. Разработка алгоритма функционирования системы
- •2.4. Проектирование интерфейса пользователя
- •2.4.1. Разработка диаграммы состояний интерфейса специалиста отдела кадров
- •2.5. Схема базы данных
- •2.5.1. Построение диаграмм последовательностей для варианта использования «Создание личной карточки»
- •Построение диаграммы классов
- •3.1.3. Классы и объекты интерфейса пользователя
- •3.2. Модель технического обеспечения
- •4. Тестирование програного обеспечения
- •4.1. Разработка тестов и тестирование системы
- •4.1.1. Пример тестирования операции «Просмотр личной карточки»
- •4.2. Анализ экономической эффективности аис
- •Заключение
- •Список литературы
- •Приложение 1
- •Приложение 2
4.2. Анализ экономической эффективности аис
Внедрение АИС отдела кадров на заводе «Альбатрос» позволит:
-
уменьшить трудоемкость выполнения различных операций;
-
автоматизировать работу отдела кадров,
-
организовать доступ к данным для рабочих предприятия без непосредственного участия специалиста базы данных;
-
автоматизировать работу с отчетами для отделов, которые использую информацию из отдела кадров.
Заключение
Разработанный программный продукт позволяет автоматизировать работу отдела кадров. Разработанная система облегчает работу с документацией для сотрудников завода «Альбатрос».
В процессе создания системы в соответствии с заданием были разработаны: модель вариантов использования, концептуальная модель предметной области, диаграммы деятельности, реляционная модель данных, диаграмма состояний интерфейса, формы интерфейса, диаграмма компонентов и диаграмма развертывания. Была выполнена частично проверка и отладка системы.
Система позволяет:
-
специалисту отдела кадров создавать, редактировать, просматривать необходимые для работы документы: личные карточки, трудовые договоры, штатное расписание, график отпусков, приказы;
-
начальству следить за работой специалиста;
-
сотрудникам завода просматривать необходимую им информацию.
В данной курсовой работе было проведено программирование на языке Delphi. Программный продукт содержит форму авторизации пользователей, которая открывается после запуска приложения. Данная форма содержит поля для ввода пользователем своего логина и пароля.
Таким образом, в курсовой работе удалось реализовать АИС отдела кадров завода «Альбатрос», которая удовлетворяет заданным требованиям.
Список литературы
-
Вендров A.M. Проектирование программного обеспечения экономических информационных систем: Учеб. - М.: Финансы и статистика, 2000.
-
Кватрани Т. Rational Rose 2000 и UML. Визуальное моделирование. - М.: ДМК Пресс, 2001.
-
Ларман К. Применение UML и шаблонов проектирования. - М.: Издательский дом «Вильяме», 2001.
-
Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя. - М.: ДМК Пресс, 2001.
-
Леоненков А.В. Самоучитель UML. - СПб.: БХВ-Петербург, 2001.
-
Мандел Т. Разработка пользовательского интерфейса. - М: ДМК Пресс, 2001.
-
Архангельский А. Я. Программирование в Delphi. Учебник по классическим версиям Delphi. - М.: Бином, 2006.
Приложение 1
Личная карточка работника
Рисунок 5.1. – Личная карточка работника
Рисунок 5.2. – Личная карточка работника (продолжение)
Рисунок 5.3. – Личная карточка работника (продолжение)
Рисунок 5.4. – Личная карточка работника (продолжение)
Приложение 2
Текст программы
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, ExtCtrls, jpeg;
type
TForm2 = class(TForm)
Panel1: TPanel;
MaskEdit1: TMaskEdit;
Label2: TLabel;
Label1: TLabel;
ComboBox1: TComboBox;
BitBtn1: TBitBtn;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Image1: TImage;
Image2: TImage;
Label3: TLabel;
Label7: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit1, unit3, unit4, unit5, unit6, unit7,unit9, unit10;
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
If (ComboBox1.ItemIndex=0) and (MaskEdit1.Text='1234') then
begin
Application.CreateForm(TFOrm1,Form1);
Form1.Show;
form2.Hide;
end
else
Application.MessageBox('Неверный пароль','Внимание!',MB_ICONEXCLAMATION);
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
close;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
RadioGroup1: TRadioGroup;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit3, Unit2, Unit4, unit5, unit6, unit7, Unit9, Unit10;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=4 then
begin
Form1.Hide;
Form4.Show;
end;
if RadioGroup1.ItemIndex=1 then
begin
Form1.Hide;
Form10.Show;
end;
end;
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Mask, DBCtrls, Grids, DBGrids, ExtCtrls,
DBTables;
type
TForm8 = class(TForm)
Panel2: TPanel;
ADOConnection1: TADOConnection;
BookTable: TADOTable;
DataSource1: TDataSource;
ADOConnection2: TADOConnection;
PereTable: TADOTable;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
Button2: TButton;
BookTable_: TAutoIncField;
BookTable_2: TDateTimeField;
BookTableDSDesigner: TWideStringField;
BookTableDSDesigner2: TWideStringField;
BookTableDSDesigner3: TWideStringField;
BookTableDSDesigner4: TDateTimeField;
BookTableDSDesigner5: TWideStringField;
BookTableDSDesigner6: TWideStringField;
BookTableDSDesigner7: TWideStringField;
BookTableDSDesigner8: TWideStringField;
BookTableDSDesigner9: TIntegerField;
BookTableDSDesigner10: TWideStringField;
BookTableDSDesigner11: TWideStringField;
BookTable_3: TWideStringField;
PereTable_: TAutoIncField;
PereTable_2: TDateTimeField;
PereTableDSDesigner: TWideStringField;
PereTableDSDesigner2: TWideStringField;
PereTableDSDesigner3: TWideStringField;
PereTableDSDesigner4: TDateTimeField;
PereTableDSDesigner5: TWideStringField;
PereTableDSDesigner6: TWideStringField;
PereTableDSDesigner7: TWideStringField;
PereTableDSDesigner8: TWideStringField;
PereTableDSDesigner9: TIntegerField;
PereTableDSDesigner10: TWideStringField;
PereTableDSDesigner11: TWideStringField;
PereTable_3: TWideStringField;
Query2: TQuery;
ADOQuery1: TADOQuery;
Edit1: TEdit;
Button1: TButton;
ADOQuery1DSDesigner: TWideStringField;
ADOQuery1DSDesigner2: TWideStringField;
ADOQuery1DSDesigner3: TWideStringField;
ADOQuery1DSDesigner4: TDateTimeField;
ADOQuery1_: TWideStringField;
ADOQuery1DSDesigner5: TWideStringField;
ADOQuery1DSDesigner6: TWideStringField;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
uses Unit9, Unit10;
{$R *.dfm}
procedure TForm8.Button2Click(Sender: TObject);
begin
Form10.Show;
Form8.Hide;
end;
procedure TForm8.Button1Click(Sender: TObject);
begin
Adoquery1.Parameters.ParamByName('par1').Value:=Edit1.text;
Adoquery1.Open;
dbgrid1.DataSource.DataSet.Active:=true;
end;
end.
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls;
type
TForm9 = class(TForm)
ADOConnection1: TADOConnection;
BookTable: TADOTable;
DataSource1: TDataSource;
Panel2: TPanel;
ADOConnection2: TADOConnection;
PereTable: TADOTable;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
FindSource: TDataSource;
FindQuery: TADOQuery;
FindQueryID_: TIntegerField;
FindQueryDSDesigner: TDateTimeField;
FindQueryDSDesigner2: TDateTimeField;
FindQueryDSDesigner3: TWideStringField;
FindQueryID_2: TIntegerField;
FindQueryID_3: TIntegerField;
Button1: TButton;
Button2: TButton;
BookTable_: TAutoIncField;
BookTable_2: TDateTimeField;
BookTableDSDesigner: TWideStringField;
BookTableDSDesigner2: TWideStringField;
BookTableDSDesigner3: TWideStringField;
BookTableDSDesigner4: TDateTimeField;
BookTableDSDesigner5: TWideStringField;
BookTableDSDesigner6: TWideStringField;
BookTableDSDesigner7: TWideStringField;
BookTableDSDesigner8: TWideStringField;
BookTableDSDesigner9: TIntegerField;
BookTableDSDesigner10: TWideStringField;
BookTableDSDesigner11: TWideStringField;
BookTable_3: TWideStringField;
PereTable_: TAutoIncField;
PereTable_2: TDateTimeField;
PereTableDSDesigner: TWideStringField;
PereTableDSDesigner2: TWideStringField;
PereTableDSDesigner3: TWideStringField;
PereTableDSDesigner4: TDateTimeField;
PereTableDSDesigner5: TWideStringField;
PereTableDSDesigner6: TWideStringField;
PereTableDSDesigner7: TWideStringField;
PereTableDSDesigner8: TWideStringField;
PereTableDSDesigner9: TIntegerField;
PereTableDSDesigner10: TWideStringField;
PereTableDSDesigner11: TWideStringField;
PereTable_3: TWideStringField;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
uses Unit1, Unit2,unit3, Unit4, unit5,unit6, unit7, unit10, Unit12, Unit8;
{$R *.dfm}
procedure TForm9.Button1Click(Sender: TObject);
begin
if PereTable.Modified then
PereTable.Post;
end;
procedure TForm9.Button2Click(Sender: TObject);
begin
Form10.Show;
Form9.Hide;
end;
procedure TForm9.Button3Click(Sender: TObject);
begin
if Application.MessageBox(Pchar('Действительно хотите удалить ?'),'Внимание!',MB_OKCANCEL)=id_Ok then
PereTable.Delete;
end;
end.
unit Unit10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, ExtCtrls;
type
TForm10 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
Button1: TButton;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form10: TForm10;
implementation
uses Unit1, Unit2,unit3, Unit4, unit5,unit6, unit7, unit9, Unit8, Unit12;
{$R *.dfm}
procedure TForm10.Button2Click(Sender: TObject);
begin
Form9.Show;
Form10.Hide;
end;
procedure TForm10.Button3Click(Sender: TObject);
begin
Form8.Show;
Form10.Hide;
end;
procedure TForm10.Button1Click(Sender: TObject);
begin
Form12.Show;
Form10.Hide;
end;
end.
unit Unit12;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids, ExtCtrls;
type
TForm12 = class(TForm)
Panel2: TPanel;
DBGrid2: TDBGrid;
Button1: TButton;
Button2: TButton;
ADOConnection1: TADOConnection;
BookTable: TADOTable;
DataSource1: TDataSource;
ADOConnection2: TADOConnection;
PereTable: TADOTable;
DataSource2: TDataSource;
FindSource: TDataSource;
Button3: TButton;
BookTable_: TAutoIncField;
BookTable_2: TDateTimeField;
BookTableDSDesigner: TWideStringField;
BookTableDSDesigner2: TWideStringField;
BookTableDSDesigner3: TWideStringField;
BookTableDSDesigner4: TDateTimeField;
BookTableDSDesigner5: TWideStringField;
BookTableDSDesigner6: TWideStringField;
BookTableDSDesigner7: TWideStringField;
BookTableDSDesigner8: TWideStringField;
BookTableDSDesigner9: TIntegerField;
BookTableDSDesigner10: TWideStringField;
BookTableDSDesigner11: TWideStringField;
BookTable_3: TWideStringField;
PereTable_: TAutoIncField;
PereTable_2: TDateTimeField;
PereTableDSDesigner: TWideStringField;
PereTableDSDesigner2: TWideStringField;
PereTableDSDesigner3: TWideStringField;
PereTableDSDesigner4: TDateTimeField;
PereTableDSDesigner5: TWideStringField;
PereTableDSDesigner6: TWideStringField;
PereTableDSDesigner7: TWideStringField;
PereTableDSDesigner8: TWideStringField;
PereTableDSDesigner9: TIntegerField;
PereTableDSDesigner10: TWideStringField;
PereTableDSDesigner11: TWideStringField;
PereTable_3: TWideStringField;
BookTable_4: TIntegerField;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form12: TForm12;
implementation
uses Unit10;
{$R *.dfm}
procedure TForm12.Button2Click(Sender: TObject);
begin
Form10.Show;
Form12.Hide;
end;
procedure TForm12.Button1Click(Sender: TObject);
begin
PereTable.Insert;
DBGrid2.SetFocus;
end;
procedure TForm12.Button3Click(Sender: TObject);
begin
if PereTable.Modified then
if dbgrid2.Columns.Items[5]=nil then showmessage('Введите данные');
PereTable.Post;
end;
end.