Материал: Информационная система для учёта электронных подписей

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Информационная система для учёта электронных подписей

Содержание


Введение

1. Анализ требований к системе

1.1 Анализ предметной области

.2 Use case-диаграмма

2. Обзор средств разработки

3. Оценка трудоёмкости и сроков разработки проекта с использованием языка python по методикам cetin и cocomo-ii

3.1 Расчёт по методике COCOMO-II

.2 Расчёт по методике CETIN

4. Проектирование информационной системы

5. Разработка приложения с использованием django

5.1 Создание приложения Django

.2 Создание моделей

.3 Создание представлений

.4 Создание шаблонов

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

Заключение

Список использованных источников

Приложения

Введение


В большинстве информационных систем используется электронная подпись. Электронная подпись (ЭП) - это последовательность символов, полученная в результате криптографического преобразования определенного объема информации по математическому алгоритму с использованием ключей, каждый символ которой имеет неизменяемое соотношение с данным объемом информации.

Электронная подпись выполняет следующие функции:

-       Идентифицирует автора;

-       Позволяет определить неизменность документа с момента подписания;

-       Защищает документ от подделки.

В России используется три вида электронной подписи:

-       Простая;

-       Неквалифицированная;

-       Квалифицированная.

На сегодняшний день самые распространенные сферы использования электронной подписи:

-       Электронный документооборот. В этой сфере ЭП используется в качестве средства визирования документов;

-       Электронная отчетность. ЭП придает отчетности юридическую значимость;

-       Работа на Портале госуслуг. [7]

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

python информационный приложение django

1. Анализ требований к системе

.1 Анализ предметной области


Процедура получения электронной подписи происходит в следующем порядке:

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

.        Заключается контракт между удостоверяющим центром и организацией;

.        Удостоверяющий центр выдает сертификаты работникам. Сертификат электронной подписи представляет собой документ, который подтверждает принадлежность электронной подписи её владельцу;

.        Факт выдачи ЭП работнику регистрируется в журнале (реестре).

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

.        Фамилию, имя и отчество сотрудника;

.        Название органа Администрации города Вологды, сотрудник которого наделен правом ЭП;

.        Реквизиты постановления Администрации города Вологды, в соответствии с которым сотрудник наделен правом электронной подписи;

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

.        Дату выдачи сертификата ключа проверки электронной подписи;

.        Дату начала и окончания срока действия сертификата ключа проверки электронной подписи;

.        Носитель ключевой информации (Токен), на который производилась запись ключа электронной подписи, с указанием серийного номера носителя;

.        Отметку о получении Уполномоченным сотрудником сертификата ключа проверки электронной подписи;

.        Дату досрочного прекращения действия сертификата ключа проверки электронной подписи;

.        Отметку об уничтожении ключа электронной подписи. [8]

1.2 Use case-диаграмма

Выделим двух акторов системы:

.        Лицо, ответственное за закупочную деятельность

.        Лицо, ответственное за ведение реестра

Use case диаграмма представлена на рисунке 1.1

Рисунок 1.1 - use case-диаграмма системы

2. Обзор средств разработки


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

Рассмотрим плюсы Django, отличающие его от других Content Management Frameworks.

Первое и, пожалуй, самое главное отличие - язык программирования, на котором выполнена CMF. В данном случае это Python. Этот язык программирования появился относительно недавно (в 1990 году), но это нисколько не помешало ему стать одним из самых популярных и востребованных на сегодняшний день. Python использует Yandex и даже такой гигант, как Google. Причин для этого несколько.

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

Второе, чем привлекает Python - простота разработки. Исследования показывают, что написание программ на данном языке отнимает в четыре раза меньше времени, чем написание аналогичных программ на других языках программирования.

Третье достоинство этого языка программирования - совместимость с большинством существующих платформ.[2]выступает языком программирования для нескольких Фреймворков (Фреймворк - программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта). Одним из них и является Django.

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

Одним из них является бесплатность. Для начинающего разработчика это немаловажно.

Второй плюс заключается в том, что Django располагает программными интерфейсами (API) для доступа к базам данных, что, естественно, значительно облегчает разработку web-проектов.

Третьим достоинством по счёту, но не по значимости является то, что архитектура Django согласно модели «MVC: Model-View-Controller» разделяет приложение на три составляющих:

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

Модель выполняет следующие функции:

-       Описывает структуру базы данных в терминологии используемого языка программирования;

-       Представляет данные, считанные из базы данных, в терминологии используемого языка программирования;

-       Реализует механизмы выборки, сортировки и фильтрации данных, содержащихся в базе данных;

-       Реализует механизмы редактирования, удаления и добавления данных в базу;

-       Проверяет корректность введенных данных (соответствие типов, длины строки и т.д.) [1]

2.      View - часть, которая определяет какие данные получать и как их отображать, обрабатывается представлениями и шаблонами.

3.      Controller - часть, которая выбирает представление в зависимости от пользовательского ввода, обрабатывается самой средой разработки, следуя созданной вами схемой URL, и вызывает соответствующую функцию Python для указанного URL. [4]

Рисунок 2.1 - архитектура приложения Django

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

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

Все перечисленные преимущества в конце концов выливаются в одно неоспоримое достоинство: разработка и поддержка web-приложений, написанных на языке Python и использованием Django, происходит гораздо проще и быстрее, чем на других платформах.

Благодаря этому создание web-приложений, написанных на языке Python с использованием Django, и их поддержка, становится гораздо проще и осуществляется быстрее, чем разработка аналогичных проектов на других платформах.является олицетворением языка, который он использует: интуитивно понятный, позволяющий быстро и качественно создать код, более распространён в глобальной сети (используется в том числе Google). Плюс ко всему в комплекте с Django идёт очень хорошая и подробная документация, в которой можно найти ответ на любой интересующий вопрос. [3]- свободная объектно-реляционная система управления базами данных. Сильными сторонами PostgreSQL считаются:

высокопроизводительные и надёжные механизмы транзакций и репликации;

расширяемая система встроенных языков программирования;

наследование;

легкая расширяемость.

3. Оценка трудоёмкости и сроков разработки проекта с использованием языка Python по методикам CETIN и COCOMO-II

.1 Расчёт по методике COCOMO-II


Примем наиболее вероятное количество строк на одну невыровненную ФТ для языка Python за 60.

Размер проекта:

*34=2040 строк

Факторы масштаба

В методике используются пять факторов масштаба SFi, которые определяются следующими характеристиками проекта:

.PREC - прецедентность, наличие у разработчика опыта аналогичных разработок

.FLEX - гибкость процесса разработки продукта

.RESL - архитектура и разрешение рисков

.TEAM - сработанность команды

.PMAT - зрелость процессов

Значения фактора масштаба в зависимости от оценки его уровня, приведены в Таблице 1

Таблица 1 - факторы масштаба

Фактор масштаба

Оценка уровня фактора


Very Low

Low

Nominal

High

Very High

Extra High

PREC

6.20

4.96

3.72

2.48

1.24

0.00

FLEX

5.07

4.05

3.04

2.03

1.01

0.00

RESL

7.07

5.65

4.24

2.83

1.41

0.00

TEAM

5.48

4.38

3.29

2.19

1.10

0.00

PMAT

7.80

6.24

4.68

3.12

1.56

0.00


SF=6.2+1.01+4.24+2.19+1.56=15.2 - факторы масштаба

E=0.91+0.01*15.2=0.14 - Множители трудоемкости

.PERS - квалификация персонала

.RCPX - надежность и сложность продукта

.RUSE - разработка для повторного использования

.PDIF - сложность платформы разработки

.PREX - опыт персонала

.FCIL - оборудование

.SCED - сжатие расписания

Таблица 2 - Множители трудоемкости


Оценка уровня множителя трудоемкости


Extra Low

Very Low

Low

Nominal

High

Very High

Extra High

PERS

2.12

1.62

1.26

1.00

0.83

0.63

0.5

RCPX

0.49

0.60

0.83

1.00

1.33

1.91

2.72

RUSE

n/a

n/a

0.95

1.00

1.07

1.15

1.24

PDIF

n/a

n/a

0.87

1.00

1.29

1.81

2.61

PREX

1.59

1.33

1.22

1.00

0.87

0.74

0.62

FCIL

1.43

1.30

1.10

1.0

0.87

0.73

0.62

SCED

n/a

1.43

1.14

1.00

1.00

1.00

n/a


Уравнения СОСОМО II для оценки номинальных значений трудоемкости имеют следующий вид:


где •SIZE - размер продукта в KSLOC или в количестве функциональных точек без включения поправочных коэффициентов (UFP), определенном по методике 1FPUG, с последующим преобразованием в количество строк кода.

•EMi - (effort multiplier) множители трудоемкости

•SFj - (scale factor) факторы масштаба

•n=7 - для предварительной оценки

•n=17 - для детальной оценки

Калибровочные переменные А, В, С и D в модели СОСОМО II принимают следующие значения:

А = 2.94,

В = 0.91,

С= 3.67, = 0.28.

Множитель трудоемкости рассчитываются по формуле:

Em = 1.26*0.6*0.95*0.87*1.59*1.3*1 = 1.29

Номинальное значение трудоемкости:

PM = 2,94*20.14*1.29 = 4.18 чел/мес

Время реализации проекта:

= 3,67*4,180,28+0,2*0,01*15,2 =3,67*1,55 = 5,7 мес

3.2 Расчёт по методике CETIN


этап. Оценка функционального размера разрабатываемой ИС

количество вариантов использования - C;

количество типов объектов - E;

количество свойств типов объектов - Т;

количество взаимодействий между типами объектов - I;

количество типов узлов - N.

SIZE={C, E, T, I ,N}

Исходные данные:

Количество акторов системы = 3

Количество вариантов использования (Case) - C = 5

Количество типов объектов (бизнес объектов) (Entity) - Е = 16

Количество свойств типов объектов (Tool) - Т = 50;

Количество взаимодействий между типами объектов (Interaction) - I = 64;

Количество типов узлов (Node) - N = 1.

Функциональный размер:

{5,16,50,64,1}

этап. Оценка базовой трудоемкости разработки ППО

Sj=1/165·[C*Sj(C)+E*Sj(E)+T*Sj(T)+I*Sj(I)+N*Sj(N)],

где: Sj - трудоемкость процесса разработки с номером j в [человеко-месяц];

j - номер процесса разработки (значения от 1 до 6);

Sj(C) - норматив трудоемкости реализации одного варианта использования в процессе разработки с номером j=1,2,…,6, {[человеко-час]/[вариант использования]};=1/165·[5*32,12+16*28,33+50*0+64*14,15+1*0] = 1/165 х [32.12+28.33+0+14.15+0] = 9.2=1/165·[5*58,03+16*28,04+50*0+64*20,32+1*0] =

= 1/165 х [58.03+28.04+0+20.32+0] = 12.35921=1/165·[5*45,42+16*61,75+50*31,35+64*37,52+1*24,02] =

= 1/165 х [227,42+988+1567,5+2401,28+24,04] = 31.56=1/165·[5*31,57+16*81,51+50*50,72+64*36,11+1*0] =

= 1/165 х [157.85+1304.16+2536+2311.04]= 38.24=1/165·[5*88,96+16*0+50*0+64*0+1*0] = 1/165 х [444.8+ 0 + 0 + 0 + 0] = 2.7=1/165·[5*8,69+16*0+50*0+64*0+1*23,74] = 1/165 х [43.45+ 0 + 0 + 0 + 23.74] = 0.4б = 94.47

Режим эксплуатации ИС К1=1,05 обработка данных в режиме реального времени

Масштаб ИС К2=1 средние ИС (от 11 до 100 пользователей с длительным ЖЦ с возможностью роста до крупных систем)

Стабильность ИС К3=1 дискретное внесение изменений

Защита от несанкционированного доступа К4=1 средняя

Защита программ и данных (на уровне операционной системы, на уровне сетевого программного обеспечения, на уровне СУБД) К5 = 1 средняя

Контрольный след операций К6=1,08 выборочное отслеживание

Отказоустойчивость К7=1 средняя

Восстанавливаемость К8= 1 средняя

Длительность обработки (время отклика) К9=1