Файл: Перечень условных обозначений.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 83

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Для разработки серверной части приложения, которая содержит всё программную логику, не относящуюся к представлению данных, была использована платформа Node JS.

Node или Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API, подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel, low.js и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

В разработке я использовал несколько доступных парадигм программирования на Node JS. Среди них:

  • Асинхронное программирование

  • Объектно-ориентированное программирование

  • Событийно-ориентированное программирование

Асинхронное программирование реализовывалось как с помощью технологии Promises, так и с помощью async/await.

Для представления данных пользователю и создания внешнего вида приложения, мною была использована Java Script библиотека React JS.

React — JavaScript-библиотека с открытым исходным кодом для разработки пользовательских интерфейсов. React разрабатывается и поддерживается Facebook, Instagram и сообществом отдельных разработчиков и корпораций. React может использоваться для разработки одностраничных и мобильных приложений.

Одним из основных преимуществ React JS, помимо многократно улучшенного менеджмента компонентов, их свойств и состояний является возможность использования расширения файлов .jsx.

JSX – тип файлов приложения, позволяющий использовать программную логику (например условные методы Java Script) вместе с разметкой HTML. Таким образом, jsx позволяет отойти от статической природы HTML и динамически манипулировать внешним видом приложения в зависимости от внутренних процессов приложения или действий пользователя.


Например – при нажатии пользователем на кнопку изменить цвет окна, вывести дополнительные элементы, а другие – спрятать. Без jsx это потребовало бы манипуляций с классами CSS, что является время и ресурсозатратным, при этом отличаясь нестабильностью.

Проект является одностраничным, что делает React JS идеальным выбором для него.

Одностраничное приложение (англ. single page application, SPA) – приложение, которое в своей основе имеет лишь одну один файл, который содержит основные компоненты. При смене пользователем страницы, меняется наполнение этих компонентов, но сами они остаются на месте. Технически – смены страницы не происходит, лишь меняется её наполнение, хотя визуально пользователь видит это как смену страницы.

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

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

В качестве базы данных выступает СУБД MongoDB.

MongoDB — документоориентированная система управления базами данных с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, являет нереляционной и использует JSON-подобные документы и схему базы данных.

Т.к. MongoDB является нереяционной – она требует жёсткой структуры данных, хранящихся в ней, что означает:

  • Возможность хранить данные, не описанные в схемах

  • Расширяемость приложения

  • Меньший вес данных при том же количестве по сравнению с SQL

  • Большая скорость работы приложения

Для использования сторонних библиотек, призванных облегчить работу с указанными технологиями мною была использованная платформа npm – одна из главных функций node js.

NPM - менеджер пакетов, входящий в состав Node.js. Он предоставляет доступ к широчайшей библиотеке программных модулей, используемых в программировании на Node JS.

В проекте мною были использованы следующие модули.

  • Express JS – фреймворк web-приложений для Node.js, реализованный как свободное и открытое программное обеспечение под лицензией MIT. Он спроектирован для создания веб-приложений и API. Де-факто является стандартным каркасом для Node.js.

  • Mongoose – инструмент моделирования объектов MongoDB, разработанный для работы в асинхронной среде. Mongoose поддерживает как promises, так и callbacks. По сути Мongoose берёт на себя функцию связи с БД, формированию схем, коллекций и запросов, значительно упрощая работу с MongoDB и избавляя от необходимости самому писать запросы к базе.

  • Bcrypt JS — Bcrypt - адаптивная криптографическая хеш-функция формирования ключа, используемая для защищенного хранения паролей. Bcrypt JS является модулем, использующимся для работы с технологией Bcrypt.

  • Mocha – технология и модуль тестирования приложения путём написания модульных тестов


Здесь были перечислены основные npm модули. Остальные модули являются вспомогательными или утилитарными. Их количество в проекте насчитывает больше 50.

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

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

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

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

Для модульного тестирования были использованы модули:

  • Mocha – для глобального управления всеми написанными тестами

  • Chai – проверки результатов выполнения кода в тестах (например методы expect, should, be и т.д.)

  • Rewiremock – с целью перехватывать вызов некоторых частей кода и симулировать ответ от них

  • Sinon – также используется для эмуляции вызова. Заменяет отдельные методы объектов, которые в последующем вызываются в коде и возвращают нужный результат. Часто используется в комбинации с rewiremock

Результатом работы тестирования является список пройдённых или проваленных тестов (таблица 3.2.1). Если хоть один тест не завершился успешно, то тестирование не завершено и приложение работает не верно. Тестируются как положительные так и негативные аспекты работы приложения, например – ошибка авторизации при неправильном пароле должна проверяться тестами также, как и успешная авторизация.

Программный модуль

ER

AR

Авторизация

Успех

Успех

Авторизация (неверная)

Ошибка

Ошибка

Регистрация

Успех

Успех

Регистрация администратора

Успех

Успех

Регистрация (неверный формат email)

Ошибка

Ошибка

Запрос данных

Успех

Успех

Запрос данных (администратор)

Успех

Успех

Запрос данных студентом (свои)

Успех

Успех

Запрос данных студентом (чужие)

Ошибка

Ошибка

Добавление данных

Успех

Успех

Добавление данных (неверный формат)

Ошибка

Ошибка

Добавление данных (администратор)

Успех

Успех

Добавление данных (студент)

Ошибка

Ошибка

Импорт данных обследований

Успех

Успех

Импорт данных обследований (неверный формат)

Ошибка

Ошибка

Импорт данных студентов

Успех

Успех

Импорт данных студентов (неверный формат)

Ошибка

Ошибка

Анализ данных

Успех

Успех

Анализ данных (администратор)

Успех

Успех

Анализ данных (студент)

Ошибка

Ошибка

Анкетирование

Успех

Успех

Формирование отчёта

Успех

Успех

Формирование графика

Успех

Успех

Запрос учётных записей (администратор)

Успех

Успех

Запрос учётных записей (пользователь)

Ошибка

Ошибка

Запрос учётных записей (студент)

Ошибка

Ошибка

Изменение учётной записи

Успех

Успех

Удаление учётной записи

Успех

Успех


Таблица 3.2.1 – результаты тестирования

Объем кода был сведен к минимуму, согласно принципу DRY – Don’t Repeat Yourself, что сразу же сокращает возможность появления ошибки при использовании данного программного обеспечения.

3.3. Руководство пользователя

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

Прежде всего, для получения доступа к функциям приложения необходимо пройти процедуру аутентификации (рисунок 3.3.1)



Рисунок 3.3.1 – кнопка и форма входа

После успешной аутентификации пользователю открываться возможности приложения в зависимости от его уровня доступа. Всего их 3:

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

  • Пользователь – может просматривать все данные исследований и анализов, а также создавать новые

  • Администратор – может всё вышеперечисленное, при этом обладая возможностью управления учётной записью других пользователей

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

Для полноправного пользователя навигационная панели имеет вид:

Рисунок 3.3.2 – навигационная панель.

Графа ‘Исследования’ – выпадающее меню, содержащее ссылки на индивидуальные таблицы исследований (рисунок 3.3.3).



Рисунок 3.33 – выпадающее меню

Аналогичными меню являются две оставшиеся графы.

При выборе одного из пунктов, кроме последнего, пользователь будет перенаправлен на страницу, содержащую данные исследований в одной из областей (рисунок 3.3.4).

Рисунок 3.3.4 – страница исследований

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


Для добавления исследований и проведения анализа данных на странице исследования существуют две кнопки (рисунок 3.3.5).



Рисунок 3.3.5 – добавление исследования и анализ данных

Первая кнопка перенаправит пользователя на страницу, содержащую форму для создания новых исследований. Для каждой категории исследований форма индивидуальна (рисунок 3.3.6).



Рисунок 3.3.6 – форма добавления исследований

Вторая кнопка приведёт к анализу данных и составлению их в таблицы. Получить к ним доступ можно из графы ‘Анализы’.

Графа ‘Анализы’, также, как и предыдущая содержит ссылки на индивидуальные страницы (рисунок 3.3.7).



Рисунок 3.3.7 – данные анализа

Пользователи не имеют права изменять или удалять данные анализа. Их расчёт, добавление и хранение полностью автоматизированы.

Помимо данных, пользователь может получить аналитический отчёт о состоянии студента в этой области. Для этого необходимо нажать кнопку ‘Анализ’, показанную на рисунке 3.3.7. Отчёт будет представлен в виде всплывающего окна (рисунок 3.3.8).



Рисунок 3.3.8 – аналитический отчёт

Данные исследований, помимо ручного ввода могут быть получены путём импорта данных из excel. Для этого необходимо в графе ‘Исследования’ выбрать пункт ‘Импорт данных обследований’ (рисунок 3.3.9).



Рисунок 3.3.9 – импорт данных

Выбрав этот пункт пользователь будет перенаправлен на страницу импорта данных, где должен будет указать категорию импортированных обследований, дату обследований и выбрать Excel файл (рисунок 3.3.10).



Рисунок 3.3.10 – форма импорта

Файл excel должен соответствовать определённому формату. В случае, это достигнуто – произойдёт импорт, и пользователь увидит сообщение об успехе (рисунок 3.3.11) Иначе – сообщение об ошибке (рисунок 3.3.12).