Scientific journal
Scientific Review. Technical science
ISSN 2500-0799
ПИ №ФС77-57440

DESIGN AND DEVELOPMENT OF THE PROGRAM PRODUCT «PERSONAL BLOCK FOR RECORDING THOUGHTS»

Slepov V.A. 1
1 Nizhny Tagil Technological Institute (branch) of Federal State Autonomous Educational Institution of Higher Education «Ural Federal University named after the first President of Russia B.N. Yeltsin»
1127 KB
The need to develop a personal notebook for recording thoughts is being updated. The stages of development of the proposed software product are determined: the study of user preferences, the definition of requirements for the program and design, the development of the graphical interface of the program, application development, design of the necessary documentation. To analyze user preferences, a variant of a set of questions of a sociological survey is proposed to determine the relevance of the development. The survey results were processed and demonstrated through diagrams. The formation of general requirements for a software product is shown using the use case diagram. The use case diagram defines the features of the software product, displays all the ways the user interacts: authorization in the application, creating, editing and deleting entries. An activity diagram is constructed that allows you to detail the features of the implementation of the software product operations and use cases. The graphical interface was created by means of the set of extensions of the Qt graphical framework for the Python programming language. The software product was tested, the test results showed the performance of the product, all the functions planned at the design stage are performed without errors. A project development option is proposed – the creation of a mobile version. The described example of application of product design and development technologies can be used to create similar software solutions.
software product
design
use case diagram
activity diagram
development
Python
PyQt

В настоящее время пользователи используют компьютеры для решения самых разнообразных задач: планирования дел, организации досуга, передачи нужной информации и др. Компьютер – это незаменимый помощник человека в быстром и эффективном выполнении его функций. При этом в процессе работы в Интернете часто пользователям необходимо сделать какие-то заметки, сохранить интересные цитаты, данные для доступа на тот или иной сайт и др. Существует ряд работ, посвященных проблеме определения функциональности программ, позволяющих вести записи, учет и планирование времени, выбора соответствующих технологий разработки. Автор [1] предлагает программу «Weekly planner», которая позволяет выполнять привязанные к календарю записи и предназначена для выполнения на смартфонах или планшетах. В работе [2] предлагается система «On-line ежедневник», доступ к которой возможен для нескольких пользователей с различными правами доступа: от простого просмотра до изменения и удаления записей. Особенностью предлагаемой в данной статье программы является возможность защищенного хранения важной информации. Кроме того, данное приложение может быть использовано в качестве ежедневника с функцией напоминания об определенном событии.

Цель исследования заключается в описании процессов проектирования, разработки и тестирования приложения для ведения заметок «Личный блокнот для записи мыслей». Программа должна быть разработана на языке программирования Python с использованием фреймворка Qt [3]. Отметим, что реализация действий на этапах проектирования, разработки и тестирования является универсальной и может быть интересна разработчикам любых программных продуктов.

Материалы и методы исследования

Решение данной задачи осуществлялось в несколько этапов, которые соответствуют требованиям ГОСТ [4; 5].

1. Изучить предпочтения пользователей.

2. Выполнить проектирование и определить требования к программе.

3. Разработать графический интерфейс для программы.

4. Разработать приложение.

5. Протестировать программу.

6. Оформить необходимую программную документацию.

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

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

Процесс разработки программы условно был разделен на два этапа: на первом этапе создавался интерфейс, а на втором – написан программный код. Для разработки программы использовался язык Python. В PyQt создавался интерфейс, затем он перекомпилировался в формат .py. Вся дальнейшая разработка осуществлялась на языке Python в интегрированной среде IDLE.

Далее программа была протестирована, результаты тестирования оформлены в виде тест-кейсов. Все ошибки, выявленные в процессе тестирования, были исправлены. На заключительном этапе был оформлен документ «Руководство пользователя».

Результаты исследования и их обсуждение

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

1. Пользуетесь ли Вы приложениями для ведения заметок?

2. Какие критерии важны для Вас при выборе приложения для ведения заметок?

Результаты распределения ответов на опрос представлены на рис. 1–2.

slepov1.tif

Рис. 1. Результаты ответа на вопрос «Пользуетесь ли Вы приложениями для ведения заметок?»

slepov2.tif

Рис. 2. Результаты ответа на вопрос «Какие критерии для Вас важны при выборе приложения для ведения заметок?»

Среди всех анкетируемых 45 % отметили, что они постоянно ведут ежедневник и/или составляют список дел. На основе полученных данных можно сделать вывод, что такое приложение будет пользоваться спросом у пользователей, тем более если оно будет установлено на компьютер или ноутбук, за которым человек проводит много времени.

Далее было выполнено проектирование для выделения основных функций будущего программного продукта, формирования требований, разработки концептуальной модели системы для ее последующей детализации [6–8], которые отображены с помощью диаграммы прецедентов (рис. 3). Диаграмма прецедентов может быть использована для определения способов использования программных продуктов, предназначенных для автоматизации задач из самых разнообразных предметных областей [9–11].

slepov3.tif

Рис. 3. Диаграмма прецедентов

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

Далее была создана диаграмма активности, которая позволяет детализировать особенности реализации программным продуктом операций и прецедентов. На рис. 4 показана детализация прецедента «Авторизация»: после запуска приложения пользователь видит окно для ввода логина и пароля, вводит соответствующую информацию. Если авторизация прошла успешно, пользователь может добавлять новые заметки, редактировать и удалять уже существующие.

slepov4.tif

Рис. 4. Диаграмма активности

slepov5.tif

Рис. 5. Структура программы

Этап проектирования позволил сформулировать набор функций программы:

- оформление заметок в различные дни, с привязкой к календарю;

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

- вывод информации о событиях;

- защита данных паролем.

Интерфейс программы был выполнен с помощью PyQt5 [12; 13]. Это набор библиотек для Python для создания графического интерфейса. Для его установки в командной строке необходимо набрать команду pip3 install pyqt5, далее запустить Designer и создать графический интерфейс пользователя. Графический интерфейс должен быть максимально удобным и понятным для пользователя. Отметим, что создание графического интерфейса посредством Designer предполагает работу с такими элементами, как диалоговые окна, кнопки, метки и поля. В дальнейшем, уже непосредственно в среде программирования для Python, к данному интерфейсу необходимо добавить функции обработки данных. Структура программного продукта представлена на рис. 5.

В папке dist находится исполняемый файл, чтобы не требовалось установки Python и библиотек для запуска приложения. Для компиляции в EXE файл использовалась библиотека Pyinstaller. В папке script расположены файлы интерфейса, импортированные в Python из Qt Designer с помощью pyuic5. В папке UI находятся исходные XML-файлы описания интерфейса, созданные в Qt Designer. В Diary.py прописан исходный код программы.

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

Интерфейс программы показан на рис. 6.

slepov6.tif

Рис. 6. Пример реализации в Python

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

Результаты тестирования программы

Вид теста

Содержание теста

Результат теста

Регистрация в программе

1. Нажать на кнопку «Регистрация».

2. Ввести необходимые параметры.

3. Нажать на кнопку «Сохранить».

4. Проверить вход в программу (см. п. «Организация входных данных»)

Выполнен

Организация входных данных

1. Ввести логин, который состоит из английских букв и цифр.

2. Ввести пароль, который включает только цифры.

3. Выполнить вход в программу.

4. Если программа выдает ошибку, вернуться к пункту 1

Выполнен

Открытие окна для создания заметок

1. Нажать на кнопку «Добавить новое».

2. Ввести информацию.

3. Нажать кнопку «Сохранить заметку»

Выполнен

Редактирование существующей заметки

1. Открыть существующую заметку.

2. Выбрать «Карандаш».

3. Внести изменения.

4. Сохранить изменения

Выполнен

Удаление заметки

1. Нажать на кнопку «Удалить заметку».

2. Подтвердить удаление заметки.

3. Нажать на кнопку «ОК».

4. Вернуться к полю для создания новой заметки

Выполнен

«Личный блокнот для записей мыслей» разработан с учетом пожеланий будущих пользователей. Он имеет предпосылки для дальнейшего развития, а именно планируется создание мобильной версии приложения. Кроме того, планируется доработать еще одну важнейшую функцию данного программного продукта – возможность сохранять в заметках фотографии.

Заключение

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