Программное средство Инвентаризация компьютеров. ПЗ_new. Руководство пользователя для разработанной системы. Пятый раздел приводит данные по информационной безопасности приложения
Скачать 4.8 Mb.
|
4.1 Руководство пользователя интернет-сервиса для инвентаризации компьютерного и офисного оборудования кафедры вузаРазрабатываемое приложение будет представлено в виде интернет-сервиса для инвентаризации компьютерного и офисного оборудования кафедры вуза, т.е. учет компьютерной техники. При определении задач дипломного проектирования было решено, что приложение должно реализовывать следующие функциональные требования: – добавление, удаление и редактирование оборудования; – фильтрацию и поиск оборудования; генерацию специальных идентификационных кодов для печати; – оповещение о изменении статусов оборудования. При запуске приложения пользователю доступна несколько функций (рисунок 4.1). Рисунок 4. 1 – Функции при запуске приложения При нажатии на первую кнопку пользователь имеет возможность переключиться на темную тему с загрузкой страницы (рисунок 4.2). Рисунок 4.2 – Темная тема При нажатии на вторую кнопку, открывается список настроек (рисунок 4.3). Пользователь имеет возможность выбрать один из представленных языков (русский\английский) и включить темный режим. Рисунок 4.3 – Настройки С помощью третьей кнопки пользователь может авторизироваться. Форма авторизации имеет такие поля, как логин, электронная почта, пароль и подтверждение пароля (рисунок 4.4). Рисунок 4.4 – Форма авторизации При создании пароля пользователь должен использовать заглавные буквы и цифры, также пароль должен иметь определенную длину. В противном случае выбивается ошибка, представленная на рисунке 4.5. Также ошибка появляется, если пароли не совпадают. Рисунок 4.5 – Ошибка при создании пароля После успешного заполнения формы пользователь проходит регистрацию, нажав на кнопку “Зарегистрироваться”, получив уведомление об успешной регистрации (рисунок 4.6). Рисунок 4.6 – Уведомление об успешной регистрации Далее пользователь переходит в свой профиль, чтобы заполнить обязательную контактную информацию о себе. Если поле оставить пустым, то пользователя уведомят об этом (рисунок 4.7). Рисунок 4.7 – Профиль пользователя Пользователю необходимо заполнить обязательные поля такие как «Фамилия», «Телефон», «Должность», «Адрес», «Статус пользователя». При выборе статуса пользователя, можно выбрать один из вариантов, представленных на рисунке 4.8. Рисунок 4.8 – Выбор статуса пользователя Пользователю доступно меню, которое находится в левой части экрана. Пользователь может перейти на свой профиль, (рисунок 4.9). Рисунок 4.9 – Меню выбора задач Далее пользователь может перейти на страницу «Пользователи», на которой представлены идентификационный номер, логин и электронная почта других пользователей (рисунок 4.10). Рисунок 4.10 – Пользователи Пользователь имеет возможность осуществить поиск по логину (рисунок 4.11), также можно обновить список с помощью специальной кнопки. Рисунок 4.11 – Поиск по логину С помощью панели снизу (рисунок 4.12) можно выбрать количество отображаемых пользователей на странице, и с помощью стрелок можно пролистать этот список. Рисунок 4.12 – Панель Во вкладке «Сотрудники» содержится информация о всех возможных сотрудников кафедры вуза (рисунок 4.13). Пользователь имеет такие же возможности, как и во вкладке “Пользователи”, но в этом случае поиск производится по фамилии. Рисунок 4.13 – Сотрудники При нажатии на иконку скачивания пользователю предоставляется возможность скачать данные с расширением .csv. Пользователь может сам определить в какую папку ему сохранить документ (рисунок 4.14). Рисунок 4.14 – Процесс скачивания базы данных При импорте скачанного файла с расширением .csv в приложение Excel пользователю отображается полноценная база данных сотрудников (рисунок 4.15). Рисунок 4.15 – База данных в приложении Excel Перейдя во вкладку «Поставщики», показывается информация о названии поставщика, его организации и дате записи (рисунок 4.16). При нажатии на иконку плюса в правом верхнем углу, пользователь может добавить нового поставщика, заполнив информацию о нем. Рисунок 4.16 – Поставщики При нажатии на одного из поставщиков пользователь может изменить имя и название организации поставщика (рисунок 4.17), после чего сохранить введенную им информацию. Рисунок 4.17 – Изменение информации о поставщике Перейдя во вкладку «Оборудование», показывается информация о названии оборудования, его описании, срока годности, статуса, поставщике и дате записи (рисунок 4.18). Рисунок 4.18 – Оборудование При нажатии на иконку плюса в правом верхнем углу, пользователь может добавить новое оборудование, заполнив информацию о нем (рисунок 4.19). Рисунок 4.19 – Добавление информации об оборудовании Пользователь может изменить название и описание оборудования. При нажатии на срок годности появляется календарь с возможностью выбора даты (рисунок 4.20) и времени (рисунок 4.21). Рисунок 4.20 – Календарь Рисунок 4.21 – Выбор времени При нажатии на «Статус» появляется выпадающее меню с предлагаемым выборам статуса (Рисунок 4.22). Если поле оставить пустым, то пользователя уведомят об этом. Рисунок 4.22 – Выбор статуса При нажатии на «Поставщик» появляется выпадающее меню с предлагаемыми вариантами поставщиков (рисунок 4.23). После заполнения всей формы пользователь может сохранить введенную им информацию. Рисунок 4.23 – Предлагаемые варианты Перейдя во вкладку «Сущности», демонстрируется информация о названии сущности, ее описании, типа, количестве, сотруднике, оборудовании и даты записи (рисунок 4.24). Рисунок 4.24 – Сущности При нажатии на иконку плюса в правом верхнем углу, пользователь может добавить новую сущность, заполнив информацию о ней (рисунок 4.25). Рисунок 4.25 – Новая сущность При нажатии на «Тип сущности» появляется выпадающее меню, в котором можно выбрать один из предлагаемых вариантов (рисунок 4.25), после заполнения оставшихся полей можно сохранить введенную информацию. Рисунок 4.25 – Предлагаемые варианты При выборе типа сущности «staff» появляется новое поле заполнения «Сотрудник», при нажатии на которое появляется выпадающее меню с возможностью выбора (рисунок 4.26). Рисунок 4.26 – Выпадающее меню при сущности «staff» Прилагается самостоятельный ввод ФИО сотрудника, если введенного варианта нет, то система выдает «No data found». Перейдя во вкладку «Переводы», показывается информация об описании перевода, от кого он, к кому, имени оборудования и дате записи (рисунок 4.27). Рисунок 4.27 – Переводы При нажатии на иконку плюса в правом верхнем углу, пользователь может добавить новый перевод, заполнив информацию о нем (рисунок 4.28). Рисунок 4.28 – Новый перевод При заполнении поля «От» появляется выпадающее меню с предлагаемыми вариантами выбора (рисунок 29). Аналогично с полем «К» (рисунок 4.30) и полем «Оборудование» (рисунок 4.31). Рисунок 4.29 – Поле «От» Рисунок 4.30 – Поле «К» Рисунок 4.31 – Поле «Оборудование» В правом верхнем углу находится иконка выхода (рисунок 4.32). Если пользователь не авторизован, то система оповестит его об этом (рисунок 4.33). Рисунок 4.32 – Иконка выхода Рисунок 4.33 – Оповещение системы Первым делом пользователь взаимодействует с визуальным интерфейсом. Для отображения какой-либо информации или данных на пользовательском интерфейсе, клиентская часть делает запрос на сервер к конкретному контроллеру. Контроллер в свою очередь принимает запрос и, в зависимости от характеристик запроса и реализации контроллера, делает запрос на базу данных, получает данные, обрабатывает их и результат обработки посылает в виде ответа клиенту. Клиент получает данные и отображает их на экране. 4.2 Тестирование интернет-сервиса Тестирование программного обеспечения — процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта. Процесс тестирования, испытания программного обеспечения несет в себе две различные цели: продемонстрировать правильную и корректную работу программного обеспечения и выявить ситуации, в которых поведение программы является неправильным, нежелательным. Тестирование можно классифицировать по очень большому количеству признаков. Основные виды классификации тестирования приведены ниже: – по запуску кода на исполнение: статическое тестирование – без запуска; динамическое тестирование – с запуском. – по доступу к коду и архитектуре приложения: метод белого ящика – доступ к коду есть; метод черного ящика – доступа к коду нет; метод серого ящика – к части кода доступ есть, к части – нет. – по степени автоматизации: ручное тестирование – тест-кейсы выполняет человек; автоматизированное тестирование – тест-кейсы частично или полностью выполняет специальное инструментальное средство. – по уровню детализации приложения (по уровню тестирования): модульное (компонентное) тестирование – проверяются отдельные небольшие части приложения; интеграционное тестирование – проверяется взаимодействие между несколькими частями приложения; системное тестирование – приложение проверяется как единое целое. – по принципам работы с приложением: позитивное тестирование – все действия с приложением выполняются строго по инструкции, без никаких недопустимых действий, некорректных данных и так далее; негативное тестирование – в работе с приложением выполняются некорректные операции и используются данные, потенциально приводящие к ошибкам. К данному программному средству было применено позитивное и негативное динамическое ручное тестирование. Ручное тестирование программного обеспечения – это процесс проверки ПО, выполняемый специалистами вручную. Это значит, что для его проведения не используются какие-либо специальные автоматизированные средства. Ручное тестирование может проводиться в рамках регрессионного (тестирование различных изменений), интеграционного (взаимодействие с остальными системами и ПО) и при системном функциональном тестировании. Тестовые случаи позитивного тестирования приведены в таблице 4.1, а тестовые случаи негативного тестирования — в таблице 4.2. Таблица 4.1 – Тестовые случаи позитивного тестирования
Таблица 4.2 – тестовые случаи негативного тестирования
Продолжение таблицы 4.2
Таким образом, был разработан ряд тестовых сценариев с использованием методов позитивного и негативного тестирования. Все они были успешно пройдены при тестировании приложения. 4.4 Выводы по разделу Интернет-сервис реализует следующие функциональные требования: – добавление, удаление и редактирование оборудования; – фильтрацию и поиск оборудования; генерацию специальных идентификационных кодов для печати; – оповещение о изменении статусов оборудования. Также выполнено тестирование интернет-сервисы. 5 Экономический раздел 5.1 Общая характеристика разрабатываемого программного средства Программный продукт EquipmentAccounting предназначен для ведения бухгалтерского учёта Приложение кроссплатформенное, доступно для всех возможных платформ, а именно: iOS, Android, Windows, MacOS, Linux, Web. Немаловажными аспектами, которые были учтены при разработке программного продукта, являются: комфортный дизайн, интуитивно-понятный интерфейс, простота донесения информации, возможность изменить язык приложения [8]. В качестве стратегии монетизации была выбрана расширенная подписка. 5.2 Исходные данные для проведения расчетов Исходные данные для расчета приведены в таблице 6.1. Таблица 6.1 – Исходные данные для расчета
5.3 Затраты рабочего времени на разработку программного средства Все работы, выполненные в ходе разработки программного средства приведены в таблице 6.2. Таблица 6.2 – Затраты рабочего времени на разработку ПС
Суммарно разработка программного средства составила 48 дней. Мобильное приложение состоит из 2400 строк, FirebaseFunctions состоят из 5450 строк. Суммарное количество строк составляет 7850 строк. 5.4 Расчет основной заработной платы Для определения величины основной заработной платы, было проведено исследование заработных плат для специалистов в программировании на Flutter. В итоге было установлено, что средняя месячная заработная плата на позиции junior с применением использованных технологий составляет 4600 рублей [9][10]. Согласно таблице 6.2 на разработку проекта было затрачено 48 дней, что составляет 2,28 рабочих месяца из расчета 21 рабочий день в месяц. Основная заработная плата рассчитывается по формуле (6.1):
где Соз – основная заработная плата, руб.; Траз – время раработки, месяцев; Краз – количество разработчиков, человек; Сзп – средняя месячная заработная плата. руб. Таким образом, основная заработная плата составила 10488 руб. 5.5 Расчет дополнительной заработной платы Дополнительная заработная плата на конкретное программное средство включает выплаты, предусмотренные законодательством о труде, и определяется по нормативу в процентах к основной заработной плате по формуле (6.2).
где Соз – основная заработная плата исполнителей, руб.; Ндз – норматив дополнительной заработной платы, %. руб. Дополнительная заработная плата составила 1048,8 руб. 5.6 Расчет отчислений на социальные цели Отчисления в Фонд социальной защиты населения (ФСЗН) определяются в соответствии с действующими законодательными актами по нормативу в процентном отношении к фонду основной и дополнительной зарплаты исполнителей и вычисляются по формуле (6.3).
где Соз – основная заработная плата, руб.; Сдз – дополнительная заработная плата, руб.; Нфсзн – норматив отчислений в ФСЗН и по обязательному стразованию от несчастных случаев на производстве, %. руб. Таким образом, отчисления на социальные цели составили 3991,73 руб. 5.7 Расчет расходов на материалы Расходы на материалы определяются с учетом действующих нормативов. Сумма расходов на материалы определяется как произведение нормы расхода материалов в расчете на сто строк исходного кода на уточненный объем программного средства по формуле (6.4).
где Нм – норма расхода материалов в расчете на 100 строк исходного кода, руб.; Vo – объем исходного кода, строк кода. Учитывая, что норма расхода материалов в расчете на 100 строк исходного кода равен 0,0460 руб. (по данным, приведенным в приложении 2 таблице П 2.10 «Оценка значений среднего расхода материалов на разработку и отладку 100 строк кода применения ПС» методического пособия), можно рассчитать сумму расходов на материалы: руб. Расходы на материалы составили 3,61 руб. 5.8 Расходы на оплату машинного времени Расходы включают оплату машинного времени, необходимого для разработки и отладки программного средства, которое определяется по нормативам на 100 строк исходного кода машинного времени, и рассчитываются по формуле (6.5).
где Смв – сумма расходов на оплату машинного времени, руб.; Смч – цена одного машино-часа, руб.; Нмв – норма расхода машинного времени на отладку 100 строк исходного кода, машино-часов; Vo – объем исходного кода, строк кода. Учитывая, что норматив машинного времени на отладку ста строк исходного кода равен 15 (по данным, приведенным в приложении 2 таблице П 2.11 «Оценка значений среднего машинного времени на отладку 100 строк исходного кода без применения ПС» методического пособия), можно определить сумму расходов на оплату машинного времени: руб. Расходы на оплату машинного времени составили 58 руб. 5.9 Расчет прочих прямых затрат Расходы на конкретное программное средство включают затраты на приобретение и подготовку специальной научно-технической информации и специальной литературы, определяются по нормативу в процентах к основной заработной плате по формуле (6.6).
где Соз – основная заработная плата, руб.; Нпз – норматив прочих затрат, %. руб. Таким образом, прочие прямые затраты составили 1048,8 руб. 5.10 Расчет общепроизводственных и общехозяйственных расходов Данные затраты, связанные с необходимостью содержания аппарата управления разных уровней, а также с расходами на общехозяйственные нужды, рассчитываются на конкретное программное средство по нормативу в процентном отношении к основной заработной плате исполнителей по формуле (6.7).
где Соз – основная заработная плата, руб.; Нобп,обх – норматив общепроизводственных и общехозяйственных расходов, %. руб. Общепроизводственные и общехозяйственные расходы составили 10488 руб. 5.11 Расчет суммы расходов на разработку программного средства Общая сумма расходов на разработку ПС находится по формуле (6.8):
Общая сумма расходов на разработку программного средства составила: руб. 5.12 Расчет расходов на сопровождение и адаптацию Сумма расходов на сопровождение и адаптацию программного средства определяется по формуле (6.9).
где Ср – сумма расходов на разработку программного средства, руб.; Нрса – норматив расходов на сопровождение и адаптацию, %. руб. Расходы на сопровождение и адаптацию составили 2712,77 руб. 5.13 Расчет общей суммы расходов Общая сумма расходов на разработку с затратами на сопровождение и адаптацию программного продукта находится по формуле (6.10).
где Ср – расходы на разработку программного средства , руб.; Срса – расходы на сопровождение и адаптацию, %. руб. Таким образом, общая сумма расходов составила 29840,51 руб. 5.14 Определение цены, оценка эффективности Программное средство разрабатывается для потребления другими лицами. В качестве стратегии монетизации была выбрана расширенная подписка. Данная модель позволяет приложению оставаться бесплатным для базового использования и не внедрять рекламу, способную вызвать раздражение у пользователей. При регистрации каждому пользователю будет доступен базовый набор курсов. Пользователям, обладающим расширенной подпиской, будут доступны все коллекции курсов. Выделены следующие важнейшие характеристики приложения: кроссплатформенность; интуитивно-понятный интерфейс; понятное донесение информации для пользователей; бесплатная регистрация и использование базовых функций; приятный дизайн. В качестве аналогов были рассмотрены приложения BlueApron, HomeChef, Freshly, которые используют платную подписку в качестве монетизации. Описание приложений приведено в пункте 1.4 пояснительной записки. В таблице 6.3 приведены основные показатели качества аналогов и рассматриваемого программного продукта. Таблица 6.3 – Показатели качества рассматриваемого программного продукта
Каждому параметру продукта присваивается определенное число баллов, суммирование которых с учетом весовых коэффициентов дает интегральный показатель качества продукции конкурента ИК (6.11):
где Кi – весовой коэффициент, отражающий значимость i-го показателя качества.; ПКi – число баллов, присвоенное i-му показателю качества продукта. По данным, представленным в таблице 6.3, рассчитаем интегральные показатели качества продуктов конкурентов. Показатель качества рассматриваемого продукта ИР рассчитывается аналогично показателю качества продукции конкурента по формуле (6.12).
где Кi – весовой коэффициент, отражающий значимость i-го показателя качества.; ПРi – число баллов, присвоенное i-му показателю качества продукта. По данным, представленным в таблице 6.3, рассчитаем показатель качества рассматриваемого продукта: Отпускная цена нового продукта рассчитывается по формуле (6.13):
где Ц0 – цена программного продукта конкурента. Стоимость стандартной подписки приложения 1С:Бухгалтерия составляет 250$, рассчитаем отпускную цену в сравнении с ним: Стоимость стандартной подписки приложения Контур.Бухгалтерия составляет 80$, рассчитаем отпускную цену в сравнении с ним: Стоимость стандартной подписки приложения СБИС составляет 120$, рассчитаем отпускную цену в сравнении с ним: По результатам анализа конкурентов, среднее значение отпускной цены равно 267$, что составляет 900 белорусских рублей, это и является плановой величиной тарифа расширенной подписки программного продукта. 5.15 Вывод В ходе выполнения данного раздела были выполнены основные расчеты по дипломному проекту. В таблице 6.4 представлены результаты расчетов основных экономических показателей в краткой форме. Таблица 6.4 – Экономические показатели
Приложение разрабатывалось для потребления другими лицами. Полная себестоимость программного продукта составила 29840,51 руб. При появлении спроса на данный программный продукт у пользователей в магазинах приложений планируется получение прибыли от монетизации. Монетизация приложения будет происходить с помощью расширенной подписки по цене 900 руб. в месяц, рассчитанной на основе метода удельной цены при сравнении существующих аналогов. В качестве аналогов были рассмотрены следующие приложения: 1C:Бухгалтерия, Контур.Бухгалтерия, СБИС. Рассчитанная стоимость подписки оказалась выше, чем у аналогов. Это можно объяснить тем, что рассматриваемый программный продукт имеет более высокие показатели качества. Таким образом, можно сделать вывод о том, что разработанная система имеет положительный экономический эффект. Разработанный программный продукт может быть использован для ведения бухгалтерского учёта компьютерного и офисного оборудования. 6 Анализ информационной безопасности приложения 6.1 Выявление угроз В настоящее время существует явно выраженная тенденция к усилению значимости обеспечения должного уровня информационной безопасности систем связи и управления различной принадлежности и уровня подчиненности. При этом актуальность проблематики информационной безопасности определяется как переносом акцента в противоборстве различных сторон в информационную область. Для выявления угроз информационной системы необходимо понять какие из всех видов возможных угроз являются наиболее критичными для данной системы. Исходя из того, что наше приложение написано на Flutter то стоит выявлять угрозы, которые могут быть использованы как на Android приложение, так и на Web приложение. Так как в приложении используется Firebase, то нужно исключить ситуации с SQL инъекциями, так как Firebase использует NoSQL модель. Само приложение тоже может прекратить работу на устройстве. После выявления угроз необходимо узнать какие возможные причины возникновения проблем. Основными источниками внутренних отказов приложения являются: нарушение от установленных правил эксплуатации; вредоносное программное обеспечение; отказы программного аппаратного обеспечения. Были выявлены типовые угрозы для мобильных приложений, заключающие в себя: наличие отладочного кода; отсутствие проверок входящих данных; разрешения в файле манифеста. После работы с приложением пользователь оставляет в нем свои данные. Исходя из этого можно выделить угрозу конфиденциальности информации. Основными источниками отказов Web-приложения являются: XSS инъекции; LDAP инъекции; незащищенная авторизация; небезопасные прямые ссылки на объекты; неправильная настройка безопасности; подделка межсайтовых запросов (CSRF); непроверенные перенаправления. 6.2 Основные методы и средства защиты от выявленных угроз На стороне мобильных устройств необходимо использовать криптографические возможности устройств, шифрование критичных данных и при необходимости возможность удаленной очистки данных. Проводить анализ защиты приложения, который поможет выявить возможные утечки критичных данных и некорректность использования шифрования. Для защиты приложения от вредоносного программного обеспечения необходимо использовать программные средства защиты и повышать осведомленность, а также использовать приложения, только скачанные из проверенных источников. Защита от XSS и LDAP будет фильтрация входящих данных от пользователей. Так же поможет не возвращать HTML-теги клиенту. Это дает дополнительное преимущество защиты от внедрения HTML, аналогичная атака, при которой злоумышленник внедряет простой HTML-контент. Защита от доступа к объектам являются сессионные параметры для обозначения пользователя и игнорирование параметров передаваемых через CGI. Защита от CSRF является хранение секретного токена в скрытом поле формы, которое недоступно со стороннего сайта. 6.3 Межсайтовые сценарии Межсайтовые сценарии (XSS) — это уязвимость системы безопасности, которая позволяет злоумышленнику размещать сценарии на стороне клиента (браузера) на веб-страницах. Данный вид атак направлен на веб-приложения, которые отображают вводимые ранее пользователями данные. Вместо попытки получения контроля над базой данных, путем ввода вредоносного кода, злоумышленник пытается атаковать код самого веб-приложения, внедряя в него вредоносные скрипты, после выполнения которых может произойти кража пользовательских данных. Типичный пример XSS – добавление скрипта в комментарий или запись в гостевую книгу. С помощью этой атаки даже можно передавать куки с сайта в качестве параметра на какой-то другой вредоносный сайт [7]. Так как запросы в сценариях могут отправляться на другие домены, но ответ не может быть прочитан, в соответствии с политикой механизма безопасности CORS (Cross-origin resource sharing), придумали этот механизм. Суть атаки — если человек не может с другого домена получить данные, то он размещает вредоносный скрипт прямо в домене сайта, делает инъекцию вредоносного скрипта на доверенную веб-страницу, и тогда из домена уже может делать запрос внутри него и получать данные пользователя. Для защиты от этой атаки можно использовать следующие приемы: модификация заголовка content-security-policy; модификация заголовка x-xss-protection. |