Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Эффективность по устройствам

Поиск

Данный ПП сильно не грузит аппаратную часть устройства вычислительной техники.

С-документированность

ПО будет отвечать этому условию, благодаря наличию данного технического задания.

 

Понятность

ПО является понятным и лёгким в освоении и использовании.

Структурированность

ПП является полностью структурированным, соответствующим принципам модульного программирования.

Удобочитаемость

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

Расширяемость

Благодаря СУБД ORACLE ПП сможет содержать огромное количество информации.

Модульность

ПО было написано с помощью модульной технологии

программирования. Таким образом, изменение одного из модулей

программы повлечет минимальное воздействие на другие модули, т.к. в

разрабатываемом ПП будет спроектирована связь и взаимодействие

между всеми модулями.

Независимость от устройств

Программа будет независима от конфигурации и типа устройств при

условии их соответствия минимальным требованиям программы.

 

ПСИХОЛОГИЧЕСКИЕ ОСОБЕННОСТИ

Дизайн ПП

Эстетическое обоснование

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

Выбор стиля

Дизайн данного ПП будет выполнен по последним технологиям программирования.

Цветовое решение

Будут использованы современные скины для оформления и дизайна ПО.

-светло голубой

-металик

-темный металик

-светлый блек

Расположение элементов интерфейса

Интерфейс интуитивно понятен. Все элементы имеют наиболее оптимальное расположение.

Эргономика

ПО является достаточно эргономичным, интерфейс мягкий и дружелюбный, интуитивно понятным.

Предполагаемая аудитория

Данный ПП будет разработан для всеобщего использования.

Возраст пользователей

Возрастной диапазон не ограничен.

Тип людей

Данный ПП продукт будет представлять интерес прежде всего для

людей, предпочитающих комфорт при оплате, и для уверенных в правильном расчете сдачей от суммы.

Сфера деятельности

Данный ПП разработан для одела кадров.

 

Темперамент пользователя

Темперамент пользователей не влияет на работу ПО.

 

ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ

6.1 Разработка бизнес-плана

Бизнес план - это техника экономического расчета программной стоимости ПП. Включает в себя расчеты сметы затрат, стоимости разработки ПО, стоимости одного CD ПП, экономической эффективности.

Расчет стоимости

Расчет сметы затрат

В стоимость ПО входят:

Заработная плата разработчику (программист и дизайнер в одном лице)

≈ 120000 тенге

Рабочая станция: notebook HP Compaq 610:

Стоимость рабочей станции – 100 000 тенге

Электроэнергия ≈ 100кВт/мес * 12 тенге * 1 месяц ≈ 1200 тенге

Программное обеспечение:

Windows XP Professional – входит в стоимость рабочей станции

Dreamweaver CS3 – 5000 тенге.

Стоимость разработанного ПО ≈ 50 000 тенге

Затраты на оборудование составят около 100 000 тенге.

Расчет стоимости разработки ПО

Примерная стоимость разработки составляет 60 000тенге.

Расчет стоимости одного CD программного продукта

Себестоимость ПО – 50 000 тенге.

Рынок сбыта будет достаточно широким, рассчитаем стоимость CD для 1000 библиотек. Приблизительная стоимость одного диска 1000 тг.

Расчет экономической эффективности

Чистая прибыль =1000*1000-50 000-13%*1200*1000= 520 000тг.

PR-компания

Анализ рынка сбыта

Данный ПП будет достаточно востребованным на рынке.

Проведение рекламной компании по раскрутке ПО

Будут заказаны статьи в журналах –MegaByte, Hi-Tech, Computer.

 

СТАДИИ И ЭТАПЫ РАЗРАБОТКИ ПО

Стадии разработки

1. Написание технического задания ПП.

2. Создание ПП.

3. Отладка ПП.

4. Раскрутка.

5. Внедрение.

6. продажа ПП.

Этапы разработки

Этап 1 - составление технического задания

Этап 2 - программирование и тестирование программного продукта.

Этап 3 - внедрение программного обеспечения

Содержание работ по этапам

· Написание ТЗ: изучение предметной области, основ составления ТЗ.

· Программирование ПО: изучение основ программирования, программирование ПО, его тестирование, отладка.

ТЕСТИРОВАНИЕ И ОТЛАДКА ПО

Тестирование и отладка ПО

Отладка и тестирование ПП будут осуществляться самим разработчиком, а

также ассистентом кафедры ЭКТ АИЭС Сербиным В.В.

Тестирование на вредоносный код

Проверенно с помощью различных антивирусных пакетов, таких как NOD32,AVG, Kaspersky AVP, Norton IS, Avast AntiVirus, Dr. Web. Вредоносного кода не обнаружено.

Методика испытаний

ПО будет тестироваться на наличие ошибок (указание ошибок) и их последующее устранение.

 

ПОРЯДОК КОНТРОЛЯ ПРИЕМКИ

9.1 Общие требования к приемке работы

Срок приема-сдачи ПО

До 1 мая 2012 года.

Условия приема сдачи

ПП будет принят в институте АИЭС на кафедре ЭКТ на 4 недели (до 1 мая 2010 года). После защиты у ассистента кафедры ЭКТ АИЭС Сербина В. В.

Выполнимость договорных отношений должна быть 100%.

Протокол испытаний

Характеристики, подлежащие испытанию, значения характеристик в ходе испытания, заключение по результатам испытаний.

Акт выполненных работ

Проделана работа по написанию технического задания, разработке, тестированию, отладке ПП.

 

Заключение

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

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

 

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

1.В. Сербин. Методические указания к выполнению лабораторных работ по курсу «Технологии программирования» (для студентов специализации: 050704). -Алматы: АИЭС, 2009. - 118 с.

2. smiroleg.h1.ru/rekl_kadry_tz.html

3. http://ru.wikipedia.org/wiki/Модель

4. http://www.rugost.com

5. smiroleg.h12.ru/KADRY/kadry_page.html

Программный код

 

unit uMain;

 

interface

 

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,

System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,

cxLookAndFeelPainters, dxBar, cxClasses, dxStatusBar, cxStyles, cxCustomData,

cxFilter, cxData, cxDataStorage, cxEdit, Data.DB, cxDBData,

cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,

cxGridCustomView, cxGrid, DBAccess, UniDacVcl, UniProvider, OracleUniProvider,

Uni, MemDS, cxCheckBox, cxGridCustomPopupMenu, cxGridPopupMenu,

cxPropertiesStore;

 

type

TfrmMain = class(TForm)

dxStatusBar1: TdxStatusBar;

dxBarManager1: TdxBarManager;

dxBarManager1Bar1: TdxBar;

dxBarLargeButton1: TdxBarLargeButton;

btnConnect: TdxBarLargeButton;

UniConnection1: TUniConnection;

qryWokers: TUniQuery;

UniDataSource1: TUniDataSource;

OracleUniProvider1: TOracleUniProvider;

UniConnectDialog1: TUniConnectDialog;

GridKdrDBTableView1: TcxGridDBTableView;

GridKdrLevel1: TcxGridLevel;

GridKdr: TcxGrid;

GridKdrDBTableView1WORKERS_ID: TcxGridDBColumn;

GridKdrDBTableView1T0_FAM_RUS_C: TcxGridDBColumn;

GridKdrDBTableView1BIRTHDAY: TcxGridDBColumn;

GridKdrDBTableView1AGEL: TcxGridDBColumn;

GridKdrDBTableView1SEX: TcxGridDBColumn;

GridKdrDBTableView1T1_NATIONS_ID: TcxGridDBColumn;

GridKdrDBTableView1RNN: TcxGridDBColumn;

GridKdrDBTableView1WORK_STAZ_PDG: TcxGridDBColumn;

GridKdrDBTableView1WORK_STAZ_SPC: TcxGridDBColumn;

GridKdrDBTableView1WORK_STAZ_FULL: TcxGridDBColumn;

btnAdd: TdxBarLargeButton;

btnEdit: TdxBarLargeButton;

dxBarLargeButton3: TdxBarLargeButton;

dxBarLargeButton5: TdxBarLargeButton;

dxBarSubItem2: TdxBarSubItem;

dxBarButton3: TdxBarButton;

TmpQuery1: TUniQuery;

dxBarLargeButton2: TdxBarLargeButton;

GridKdrDBTableView1Column1: TcxGridDBColumn;

cxGridPopupMenu1: TcxGridPopupMenu;

dxBarButton1: TdxBarButton;

dxBarButton2: TdxBarButton;

dxBarButton4: TdxBarButton;

dxBarButton5: TdxBarButton;

qryWokersWORKERS_ID: TStringField;

qryWokersT0_FAM_RUS_C: TStringField;

qryWokersBIRTHDAY: TDateTimeField;

qryWokersAGEL: TFloatField;

qryWokersSEX: TStringField;

qryWokersT1_NATIONS_ID: TStringField;

qryWokersRNN: TStringField;

qryWokersWORK_STAZ_PDG: TFloatField;

qryWokersWORK_STAZ_SPC: TFloatField;

qryWokersWORK_STAZ_FULL: TFloatField;

qryWokersT2_SCHEDUL_WORKID: TStringField;

qryWokersGL_KNOW: TStringField;

qryWokersGL_DELOPR: TStringField;

qryWokersDOCUMENT_IIN: TLargeintField;

qryWokersPHONE: TStringField;

qryWokersDOC_NAME: TStringField;

qryWokersDOCUMENT_NUM: TStringField;

qryWokersDOCUMENT_DATE: TDateTimeField;

qryWokersDOCUMENT_VYDAN: TStringField;

procedure FormCreate(Sender: TObject);

procedure dxBarLargeButton1Click(Sender: TObject);

procedure btnConnectClick(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure dxBarLargeButton3Click(Sender: TObject);

procedure btnAddClick(Sender: TObject);

procedure GridKdrDBTableView1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure dxBarLargeButton2Click(Sender: TObject);

procedure GridKdrDBTableView1CellDblClick(Sender: TcxCustomGridTableView;

ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;

AShift: TShiftState; var AHandled: Boolean);

procedure dxBarButton3Click(Sender: TObject);

procedure dxBarButton1Click(Sender: TObject);

procedure dxBarButton2Click(Sender: TObject);

procedure dxBarButton4Click(Sender: TObject);

procedure dxBarButton5Click(Sender: TObject);

procedure dxBarLargeButton5Click(Sender: TObject);

procedure btnEditClick(Sender: TObject);

private

procedure ExtractedMethod;

procedure OpenBook(id_: string);

{ Private declarations }

public

{ Public declarations }

procedure PlSetRU;

function PlSendSQL1(sqlstr: string): string;

procedure PlSendSQL(sqlstr: string);

end;

 

var

frmMain: TfrmMain;

 

implementation

 

{$R *.dfm}

 

uses uEditKrd, uBook, uAbout;

 

procedure TfrmMain.dxBarButton1Click(Sender: TObject);

begin

OpenBook('2');

end;

 

procedure TfrmMain.dxBarButton2Click(Sender: TObject);

begin

OpenBook('3');

end;

 

procedure TfrmMain.dxBarButton3Click(Sender: TObject);

begin

OpenBook('1');

end;

 

procedure TfrmMain.dxBarButton4Click(Sender: TObject);

begin

OpenBook('4');

end;

 

procedure TfrmMain.dxBarButton5Click(Sender: TObject);

begin

OpenBook('5');

end;

 

procedure TfrmMain.dxBarLargeButton1Click(Sender: TObject);

begin

Close;

end;

 

procedure TfrmMain.dxBarLargeButton2Click(Sender: TObject);

begin

qryWokers.Close;

qryWokers.Open;

GridKdrDBTableView1.DataController.GotoFirst;

end;

 

procedure TfrmMain.btnAddClick(Sender: TObject);

var

kdr_id_: string;

begin

// Добавляем

frmKrd:= TfrmKrd.Create(Application);

try

if frmKrd.ExecuteAdd(kdr_id_) then

begin

//

qryWokers.Close;

qryWokers.Open;

qryWokers.Locate('WORKERS_ID', kdr_id_, []);

end;

finally

FreeAndNil(frmKrd);

end;

 

end;

 

procedure TfrmMain.btnConnectClick(Sender: TObject);

begin

if UniConnectDialog1.Execute then

begin

qryWokers.Close;

qryWokers.Open;

btnConnect.Enabled:= False;

PlSetRU;

GridKdrDBTableView1.DataController.GotoFirst;

end;

end;

 

procedure TfrmMain.btnEditClick(Sender: TObject);

begin

ExtractedMethod;

end;

 

procedure TfrmMain.dxBarLargeButton3Click(Sender: TObject);

begin

if MessageDLg('Вы действительно хотите удалить эту запись?', mtInformation,

[mbyes, mbno], 0) = mrno then

Exit

else

begin

PlSendSQL('delete from kdr.WORKERS where WORKERS_ID = ''' +

qryWokersWORKERS_ID.AsString + '''');

qryWokers.Close;

qryWokers.Open;

GridKdrDBTableView1.DataController.GotoFirst;

end;

 

end;

 

procedure TfrmMain.dxBarLargeButton5Click(Sender: TObject);

begin

frmAbout:= TfrmAbout.Create(Self);

try

frmAbout.ShowModal;

finally

frmAbout.Free;

end;

end;

 

procedure TfrmMain.FormActivate(Sender: TObject);

begin

UniConnection1.Connected:= False;

end;

 

procedure TfrmMain.FormCreate(Sender: TObject);

begin

WindowState:= wsMaximized;

GridKdr.Align:= alClient;

end;

 

procedure TfrmMain.GridKdrDBTableView1CellDblClick

(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo;

AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);

 

begin

ExtractedMethod;

 

end;

 

procedure TfrmMain.GridKdrDBTableView1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

case Key of

VK_RETURN:

ExtractedMethod; // Enter

end;

end;

 

procedure TfrmMain.PlSendSQL(sqlstr: string);

begin

with TmpQuery1 do

begin

SQL.Clear;

SQL.Add(sqlstr);

ExecSQL;

end;

end;

 

procedure TfrmMain.OpenBook(id_: string);

begin

//

frmbook:= TfrmBook.Create(Self);

try

frmbook.Execute(id_);

finally

frmbook.Free;

end;

end;

 

procedure TfrmMain.ExtractedMethod;

var

kdr_id_: string;

begin

// редактируем

kdr_id_:= qryWokersWORKERS_ID.AsString;

frmKrd:= TfrmKrd.Create(Application);

try

if frmKrd.Execute(kdr_id_) then

begin

//

qryWokers.Close;

qryWokers.Open;

qryWokers.Locate('WORKERS_ID', kdr_id_, []);

end;

finally

FreeAndNil(frmKrd);

end;

end;

 

function TfrmMain.PlSendSQL1(sqlstr: string): string;

begin

if trim(sqlstr) <> '' then

begin

with TmpQuery1 do

begin

SQL.Clear;

SQL.Add(sqlstr);

// SQL.SaveToFile('queries.log');

try

Open;

if not IsEmpty then

begin

Result:= Fields[0].AsString;

end

else

begin

Result:= '';

end;

Close;

except

Result:= '';

end;

end;

end

else

Result:= '';

end;

 

 

procedure TfrmMain.PlSetRU;

var

Layout: array [0.. KL_NAMELENGTH] of char;

begin

LoadKeyboardLayout(StrCopy(Layout, '00000419'), KLF_ACTIVATE);

end;

end.

 

Скриншоты программы

Заключение

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

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

 

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

 

1. smiroleg.h1.ru/rekl_kadry_tz.html

2. http://ru.wikipedia.org/wiki/Модель

3. http://www.rugost.com

4. smiroleg.h12.ru/KADRY/kadry_page.html



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 455; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.134.149 (0.007 с.)