Разработка автоматизированной системы учета электронных подписей

Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 12.08.2017
Размер файла 869,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

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

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

Таблица 3.1 -- Стоимость оборудования

Наименование оборудования

Количество единиц оборудования, шт.

Стоимость за одну единицу, руб.

Общая стоимость, руб.

Ноутбук Acer ES1-523

4

24490

97800

Сетевой фильтр Buro 600SH-1.8-B

2

390

780

Итого:

98580

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

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

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

Расчет трудоемкости разработки приложения производится по формуле [14]:

,

где tj - трудоемкость работ по этапам проектирования и реализации;

k - количество этапов проектирования и реализации.

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

,

где: Tож - ожидаемое (реальное) время выполнения;

tmin - минимальное время;

tmax - максимальное время.

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

Таблица 3.2 - Временные затраты

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

tmin,

дни

tmax,

дни

Ожидаемые затраты времени, Tож,

человеко-день

1. Подготовка, составление технического задания

2

3

2

2. Анализ теоретической информации

3

4

3

3. Проектирование приложения

5

7

6

4. Проектирование интерфейса приложения

2

3

2

5. Реализация приложения

21

25

23

6. Тестирование приложения

3

5

4

7. Установка и развертывание приложения

2

3

2

Итого:

38

50

42

Для разработки и реализации приложения для учета электронных подписей необходимы следующие специалисты:

- менеджер проекта;

- инженер-программист;

- системный администратор;

- инженер по тестированию (тестировщик).

Приведем функции специалистов на различных этапах разработки и реализации приложения для учета электронных подписей в таблице 3.3.

Таблица 3.3 - Функции специалистов

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

Трудоемкость, человеко-день

Исполнители

Доля участия, %

Фонд времени,

дней

1

2

3

4

5

1. Подготовка, составление технического задания

2

менеджер

50

1

программист

30

0,6

системный администратор

20

0,4

тестировщик

0

0

2. Анализ теоретической информации

3

менеджер

20

0,6

программист

80

2,4

системный администратор

0

0

тестировщик

0

0

3. Проектирование приложения

6

менеджер

20

1,2

программист

50

3

системный администратор

30

1,8

тестировщик

0

0

В таблице 3.4 приведем занятость в проекте по должностям.

Таблица 3.4 - Занятость в проекте по должностям

Должность сотрудника

Занятость в проекте, человеко-дней

Менеджер проекта

3,6

Инженер-программист

27,6

Системный администратор

5,5

Тестировщик

5,3

Итого:

42

Заработная плата персонала определяется исходя из фонда времени каждого исполнителя и среднедневной заработной платы.

Среднедневная заработная плата каждого участника рассчитывается по формуле:

,

где: ЗМЕС - среднемесячный заработок, руб.;

d - среднее количество рабочих дней в месяце (d = 22).

Примем следующие размеры окладов для участников разработки и реализации приложения для учета многооборотной почтовой тары:

- менеджер проекта - 40000 рублей;

- инженер-программист - 60000 рублей;

- системный администратор - 45000 рублей;

- тестировщик - 35000 рублей.

Основная заработная плата рассчитывается по формуле:

,

где ЗДН - среднедневная заработная плата, руб.;

Т - трудоемкость, человеко-день.

Отчисления страховых взносов составляют 30,2% от основной заработной платы ЗОСН и определяются по формуле:

,

Ставки страховых взносов составляют:

- 26% в пенсионный фонд;

-5,1% в фонд медицинского страхования;

- 2,9% в фонд социального страхования;

- 0,2% в фонд страхования от несчастных случаев.

Общий фонд заработной платы рассчитывается по формуле:

Приведем расчет фонда заработной платы специалистов в таблице 3.5.

Таблица 3.5 - Расчет фонда заработной платы

Специалист

Трудо-емкость

ЗДН

ЗОСН

ЗСОЦ

Фонд заработной платы

Менеджер проекта

3,6

1818,18

6545,45

2965,09

12783,27

Инженер-программист

27,6

2727,27

75272,72

34098,54

147007,63

Системный администратор

5,5

2045,45

11250

5096,25

21971,25

Тестировщик

5,3

1590,9

8431,81

3819,61

16467,34

Итого:

8181,81

101500

45979,5

198229,5

Накладные расходы рассчитываются в процентах от основной заработной платы (60%) по формуле:

рублей,

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

Для разработки приложения для ПК инженеру-программисту потребуется пакет для разработки Visual Studio 2015 от компании Microsoft. Согласно официальному сайту компании Microsoft, стоимость данного пакета равна 26770 рублей. Остальные программные продукты, используемые в процессе разработки приложения, являются свободно-распространяемым программным обеспечением.

Приведем расчет стоимости ежемесячных трат на разработку приложения в таблице 3.6.

Таблица 3.6 -- Ежемесячные траты на разработку приложения

Наименование услуги

Стоимость в месяц

Количество месяцев

Стоимость

Аренда выделенного сервера

375

2

750

Аренда доменного имени

99

1

99

Итого:

849

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

Таблица 3.7 -- Стоимость разработки приложения

Расходы

Стоимость

Стоимость оборудования

98580

Фонд оплаты труда сотрудников

198229,5

Накладные расходы

60900

Стоимость программного обеспечения

26770

Ежемесячные расходы

849

Итого:

385328

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

Произведено проектирование приложения с помощью универсального языка моделирования (UML). В рамках проектирования были построены следующие типы диаграмм (перед построением каждого типа диаграмм приведено краткое описание данного типа диаграммы):

- структурная диаграмма приложения для учета электронных подписей, описывающая структуру приложения и взаимодействие частей приложения друг с другом;

- диаграмма прецедентов (UseCase-диаграмма) - описание действий пользователя при работе с приложением;

- диаграмма компонентов приложения, описывающая отдельные части приложения и взаимодействие между ними; данная диаграмма схода по назначению со структурной диаграммой, однако же, в отличие от нее, учитывает особенности программной реализации приложения (в частности, использование PHP-фреймворка Yii2);

- диаграммы классов приложения для ПК и серверного Web-приложения; также было приведено краткое описание классов, представленных на данных диаграммах;

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

Построены макеты окон приложения для ПК, а также макеты страниц Web-приложения.

Произведен выбор инструментария, используемый для реализации Web-приложения и приложения для ПК:

- язык программирования PHP и PHP-фреймворк (программная платформа) Yii2;

- реляционная система управления базами данных MySQL;

- язык программирования C#;

- программная платформа для разработки Windows-приложений .NET Framework 4.0;

- среда визуальной разработки Visual Studio 2015.

В качестве операционной системы для работы приложения для ПК была использована операционная система Windows 7 64-х разрядная, а для Web-приложения - 64-х разрядная операционная система Ubuntu 16.04.

В качестве подтверждения правильности работы приложений в разделе, описывающем реализацию приложения, приведены снимки окон приложения для ПК, а также Web-приложения с выведенными результатами работы.

На этом проектирование и разработку приложения для учета электронных подписей можно считать завершенной.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Виссер Дж. Разработка обслуживаемых программ на языке C# / Виссер Дж. - Москва: ДМК Пресс, 2016. - 292 с.

2. Рихтер, Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework4.0 на языке C#. 3-е изд. - СПб.: Питер, 2012. - 982 с.

3. Албахари Д. C# 6.0. Справочник. Полное описание языка. 6-е изд. / Албахари Д., Албахари Б. - Москва: OReilly, 2016. - 1040 с.

4. Гольцман В. MySQL 5.0. Библиотека программиста / СПб: Питер, 2010. - 253 с.

5. Шлосснейгл Дж., Профессиональное программирование на PHP / Москва: Вильямс, 2006. - 624 с.

6. Симдянов И. PHP 7. В подлиннике / Симдянов И., Котеров Д. - Санкт-Петербург: БХВ-Петербург, 2016. - 1073 с.

7. Исаев Г.Н. Проектирование информационных систем / Москва: Омега-Л-Москва, 2015. - 512 с.

8. Проектирование информационных систем (на примере методов структурного системного анализа): учебное пособие / сост. О. Г. Инюшкина. - Екатеринбург: Форт-Диалог Исеть, 2014. - 240 с.

9. Леоненков А. Самоучитель языка UML. - СПб: БХВ-Петербург, 2007. - 576 с.

10. Буч Г., Рамбо Д., Якобсон А. Язык UML. Руководство пользователя. Второе издание. ДМК, 2006, 496 с

11. Теслюк Л.М. Оценка эффективности инвестиционного проекта / Теслюк Л.М., Румянцева А.В. - Москва: Фолио, 2011 - 145 с.

ПРИЛОЖЕНИЕ

(информационное)

Листинг Web-приложения

class Files extends \yii\db\ActiveRecord

{

/**

* @inheritdoc

*/

public static function tableName()

{

return 'Files';

}

/**

* @inheritdoc

*/

public function rules()

{

return [

[['name', 'path', 'mimo', 'size', 'dateAdd'], 'required'],

[['name', 'path', 'mimo'], 'string'],

[['size'], 'integer'],

[['dateAdd'], 'safe'],

];

}

/**

* @inheritdoc

*/

public function attributeLabels()

{

return [

'id' => 'ID',

'name' => 'Name',

'path' => 'Path',

'mimo' => 'Mimo',

'size' => 'Size',

'dateAdd' => 'Date Add',

];

}

}

class Users extends \yii\db\ActiveRecord implements IdentityInterface

{

const SCENARIO_LOGIN = 'login';

const SCENARIO_PROFILE = 'profile';

public $entranceIds = [];

public static function tableName()

{

return 'Users';

}

/**

* @inheritdoc

*/

public function rules()

{

return [

[['login', 'password'], 'required', 'message' => 'Поле не должно быть пустым'],

[['login'], 'string'],

[['login'], 'safe'],

[['enabled'], 'integer'],

[['password'], 'string', 'max' => 40],

];

}

public function scenarios()

{

$scenarios = parent::scenarios();

$scenarios[self::SCENARIO_LOGIN] = ['login', 'password'];

$scenarios[self::SCENARIO_PROFILE] = ['login'];

return $scenarios;

}

/**

* @inheritdoc

*/

public function attributeLabels()

{

return [

'id' => 'ID',

'login' => 'Login',

'password' => 'Password',

'lastLogin' => 'Last Login',

'enabled' => 'Enabled',

];

}

public static function login($login, $password)

{

$user = self::find()->where(['login' => $login, 'password' => sha1($password)])->one();

if ($user && isset($user->id) && $user->id)

{

Yii::$app->getUser()->login($user);

return true;

}

else

{

return false;

}

}

public static function findIdentity($id)

{

return static::findOne($id);

}

public static function findIdentityByAccessToken($token, $type = null)

{

return static::findOne(['access_token' => $token]);

}

public function getId()

{

return $this->id;

}

public function getAuthKey()

{

return $this->authKey;

}

public function validateAuthKey($authKey)

{

return $this->authKey === $authKey;

}

}

namespace frontend\controllers;

use yii\web\Controller;

use app\models\Users;

use yii\web\Response;

use Yii;

use yii\data\ActiveDataProvider;

use yii\helpers\ArrayHelper;

class UsersController extends AuthController

{

public $ipp = 20;

public function actionIndex()

{

$query = Users::find();

$provider = new ActiveDataProvider([

'query' => $query,

'pagination' => [

'pageSize' => 10

]

]);

return $this->render('index', [

'provider' => $provider

]);

}

public function actionEdit()

{

$id = Yii::$app->request->get('id', null);

if ($id)

{

$model = Users::find()->where(['id' => $id])->one();

}

else

{

$model = new Users();

}

$model->scenario = 'profile';

if (Yii::$app->request->isPost)

{

$post = Yii::$app->request->post('Users');

$model->setAttributes ($post, false);

if (!empty($post['password']))

$model->password = sha1($post['password']);

$model->status = 'user';

$model->save(false);

return $this->redirect('/users');

}

return $this->render('edit', [

'model' => $model,

]);

}

public function actionDelete()

{

$id = Yii::$app->request->get('id', null);

if ($id)

{

$model = Users::find()->where(['id' => $id])->one();

$model->delete();

return $this->redirect('/users');

}

return $this->redirect('/users');

}

}

(информационное)

Листинг приложения для ПК

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

NetworkChecker nc = new NetworkChecker();

if (!nc.checkNetwork())

{

MessageBox.Show("Соединение с Интернетом отсутствует или ограничено!");

Application.Exit();

}

}

private void button1_Click(object sender, EventArgs e)

{

if (textBox1.Text == "" || textBox2.Text == "")

{

MessageBox.Show("Для авторизации необходимо ввести имя пользователя и пароль!");

return;

}

ApiAdapter a = new ApiAdapter();

if (a.login(textBox1.Text, textBox2.Text) > 0)

{

FormAccount fa = new FormAccount();

fa.Show();

this.Hide();

}

else

{

MessageBox.Show("Неверное имя пользователя или пароль!");

}

}

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

}

class ApiAdapter

{

public String domain = "";

public static int userId = 0;

public static String userName = "";

public static String password = "";

public static String fullName = "";

public int login(String login, String password)

{

ReqParam p1 = new ReqParam();

p1.name = "login";

p1.value = login;

ReqParam p2 = new ReqParam();

p2.name = "password";

p2.value = password;

ReqParam p3 = new ReqParam();

p3.name = "type";

p3.value = "json";

List<ReqParam> pl = new List<ReqParam>(0);

pl.Add(p1);

pl.Add(p2);

pl.Add(p3);

JObject lr = this.getRequest("/login/login", pl);

String r = lr.GetValue("result").ToString();

if (r == "True")

{

ApiAdapter.userId = Convert.ToInt32(lr.GetValue("userId").ToString());

ApiAdapter.userName = lr.GetValue("login").ToString();

ApiAdapter.fullName = lr.GetValue("fullName").ToString();

}

return ApiAdapter.userId;

}

public JObject getRequest(String uri, List<ReqParam> pl)

{

String url = this.domain + uri + "?";

for (int i = 0; i < pl.Count; i++)

{

if (i > 0)

url += "&";

url += (pl[i].join());

}

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

try

{

HttpWebResponse responce = (HttpWebResponse)request.GetResponse();

if (responce.StatusCode != HttpStatusCode.OK)

{

return null;

}

using (StreamReader sr = new StreamReader(responce.GetResponseStream()))

{

String json = sr.ReadToEnd();

JObject jObject = JObject.Parse(json);

return jObject;

}

}

catch

{

return null;

}

}

}

public class CertCenterModel

{

public int id = 0;

public String name = "";

public String ocspUrl = "";

}

public class CertificateModel

{

public int id = 0;

public String fullName = "";

public int centerId = 0;

public String position = "";

public String companyName = "";

public String INN = "";

public String KPP = "";

public int fileId = 0;

public String fileUrl = "";

}

public class SignatureModel {

public int id = 0;

public String name = "";

public String url = "";

public String signatureUrl = "";

public int signatureId = 0;

}

public class ReqParam

{

public String name = "";

public String value = "";

public String join()

{

return this.name + "=" + this.value;

}

}

public class NetworkChecker

{

public Boolean checkNetwork()

{

Boolean res = true;

try

{

IPHostEntry entry = Dns.GetHostEntry("dns.msftncsi.com");

if (entry.AddressList.Length == 0)

{

return false;

}

else

{

if (!entry.AddressList[0].ToString().Equals("131.107.255.255"))

{

return false;

}

}

}

catch

{

return false;

}

// Проверить загрузку документа ncsi.txt

try

{

HttpWebResponse responce = (HttpWebResponse)request.GetResponse();

if (responce.StatusCode != HttpStatusCode.OK)

{

return false;

}

using (System.IO.StreamReader sr = new StreamReader(responce.GetResponseStream()))

{

if (sr.ReadToEnd().Equals("Microsoft NCSI"))

{

return true;

}

else

{

return false;

}

}

}

catch

{

return false;

}

return res;

}

}

Размещено на Allbest.ru


Подобные документы

  • Анализ предметной области, главных функций организации. Разработка макета внутренней структуры программного обеспечения информационной системы в виде диаграммы классов. Составление схемы базы данных. Разработка интерфейса и руководства пользователя.

    курсовая работа [866,3 K], добавлен 02.06.2015

  • Use case-диаграмма. Оценка трудоёмкости и сроков разработки проекта с использованием языка Python по методикам CETIN И COCOMO-II. Проектирование информационной системы. Разработка приложения с использованием Django: создание шаблонов, моделей и пр.

    дипломная работа [1,3 M], добавлен 10.07.2017

  • Этапы создания автоматизированной системы учета договоров на предприятии: определение входной и выходной информации, проектирование базы данных методом "сущность-связь" и CASE-средствами, разработка интерфейса, составление руководства пользователя.

    курсовая работа [2,5 M], добавлен 15.01.2011

  • Регистрация и вход в Oracle Application Express, структура и взаимосвязь элементов базы данных. Создание запросов, основы для приложения, отчетов, диаграммы, главной страницы. Формирование руководства пользователя и листинг разработанной программы.

    курсовая работа [2,8 M], добавлен 18.11.2013

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

    курсовая работа [700,0 K], добавлен 14.01.2015

  • Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.

    курсовая работа [2,1 M], добавлен 08.06.2012

  • Изучение теоретических основ разработки автоматизированных информационных систем. Определение требований к системе рецептов кулинарных блюд. Проектирование и реализация базы данных. Создание внешнего приложения; разработка руководства пользователя.

    курсовая работа [3,2 M], добавлен 14.07.2015

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.

    курсовая работа [1,4 M], добавлен 07.08.2013

  • Анализ информационной системы "Бурятия.INFO". Построение функциональной модели "Как надо", диаграммы прецедентов, диаграммы последовательности действий, диаграммы классов. Разработка программного приложения в интегрированной среде Intellij IDEA.

    дипломная работа [1,3 M], добавлен 13.04.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.