Фрагмент для ознакомления
1
СОДЕРЖАНИЕ
Введение 3
РАЗДЕЛ 1. ПРОЕКТИРОВАНИЕ И ДИЗАЙН ИНФОРМАЦИОННОЙ СИСТЕМЫ 5
1.1 Техническое задание 5
1.2 Сбор данных и анализ аналогов 6
1.3 Информационная модель базы данных 7
РАЗДЕЛ 2. РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ 9
2.1 Подсистема безопасности 9
2.2 База данных (SQLite) 10
2.3 Интерфейс пользователя 10
2.4 Программирование модулей 11
РАЗДЕЛ 3. ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ 13
3.1 Проверка конфигурации на разных компьютерах 13
3.2 Проверка установки 13
3.3 Проверка связей (интеграционное тестирование) 14
3.4 Разработка тестовых сценариев 15
Заключение 17
Список использованных источников 18
Приложение А. Полный исходный код информационной системы 20
Приложение Б. Инструкция по установке и использованию 40
Приложение В. Результаты тестирования информационной системы 45
Фрагмент для ознакомления
2
В соответствии с заданием 2.2, мною была создана реальная база данных на основе схемы из задания 1.3 с использованием СУБД SQLite.
Код создания базы данных представлен в приложении А
2.3 Интерфейс пользователя
В соответствии с заданием 2.3, мною были разработаны экранные формы для информационной системы. Всего создано три основных окна.
Окно входа. Содержит поля для ввода логина и пароля, кнопку «Войти» для авторизации существующих пользователей и кнопку «Регистрация» для перехода к форме создания нового аккаунта. Поле пароля скрывает вводимые символы. При успешном входе открывается главное окно, при ошибке выводится сообщение.
Главное окно (основная форма). Состоит из нескольких функциональных блоков. В верхней части расположены кнопки управления: «Управление категориями» (только для администратора), «Экспорт в CSV», «График», «Выйти». Ниже расположена форма добавления расхода с полями: дата (автоматически подставляется текущая), сумма, категория (выпадающий список), комментарий. Далее расположен блок фильтрации с полями «Дата от», «Дата до» и «Категория», а также кнопкой «Применить фильтр». Центральную часть занимает таблица со списком всех расходов с колонками: ID, Дата, Сумма, Категория, Комментарий. В нижней части расположена кнопка «Удалить выбранный расход» и область отображения статистики с общей суммой расходов за последние 30 дней и топ-категориями.
Окно статистики (график). Открывается при нажатии кнопки «График» и отображает динамику расходов по дням в виде линейного графика с точками. На графике подписаны оси, есть заголовок и сетка для удобства анализа.
Все окна выполнены в едином стиле с использованием библиотеки ttkbootstrap и тёмной темы «darkly», что обеспечивает комфортную работу в вечернее время и современный внешний вид.
2.4 Программирование модулей
В соответствии с заданием 2.4, мною были разработаны три основных программных модуля, которые затем интегрированы в единую систему.
Модуль 1. Сохранение записи в базу данных. Данный модуль отвечает за добавление нового расхода. Он получает от пользователя дату, сумму, категорию, комментарий и документ, проверяет корректность введённых данных (сумма должна быть положительным числом), устанавливает связь с текущим пользователем, формирует SQL-запрос INSERT и выполняет его. После успешного сохранения модуль возвращает признак успеха для обновления интерфейса.
Модуль 2. Отображение списка записей. Данный модуль отвечает за получение данных из базы данных и их отображение в таблице. Он формирует SQL-запрос SELECT с возможными условиями фильтрации по дате и категории, выполняет его и возвращает полученные записи. Затем в основном коде эти записи добавляются в таблицу (Treeview) построчно.
Модуль 3. Расчёт итоговой суммы. Данный модуль отвечает за подсчёт статистики. Он формирует запрос на суммирование поля amount для записей текущего пользователя за указанный период (по умолчанию 30 дней) и возвращает общую сумму. Также модуль может возвращать топ категорий расходов.
Интеграция модулей. При нажатии кнопки «Добавить расход» вызывается Модуль 1, который сохраняет данные. После успешного сохранения вызывается Модуль 2 для обновления таблицы и Модуль 3 для обновления статистики. При нажатии кнопки «Применить фильтр» вызывается Модуль 2 с параметрами фильтрации. При нажатии кнопки «Удалить» вызывается функция удаления, после чего снова обновляются таблица и статистика. Такая архитектура обеспечивает слабую связанность модулей и упрощает тестирование и поддержку.
РАЗДЕЛ 3. ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
3.1 Проверка конфигурации на разных компьютерах
В соответствии с заданием 3.1, мною была проведена проверка работы информационной системы на различных компьютерах. Тестирование проводилось на трёх разных машинах: основном компьютере разработчика (Windows 11, Python 3.11), ноутбуке друга (Windows 10, Python не установлен) и виртуальной машине с Linux Ubuntu (Python 3.10).
Результаты тестирования. На основном компьютере программа запустилась и работала корректно, так как все необходимые библиотеки были установлены. На ноутбуке друга программа не запустилась с ошибкой «No module named ttkbootstrap», что соответствует ожиданию, так как Python был установлен, но библиотеки отсутствовали. После установки библиотек командой pip install ttkbootstrap matplotlib программа запустилась успешно. На виртуальной машине с Linux программа запустилась без дополнительных настроек после установки библиотек, так как Python является кроссплатформенным.
Вывод. Программа является кроссплатформенной и работает на Windows и Linux. Для запуска на новом компьютере требуется установка Python версии 3.8 или выше и библиотек ttkbootstrap и matplotlib. Файл базы данных создаётся автоматически при первом запуске.
Фрагмент для ознакомления
3
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Лутц М. Изучаем Python. – 5-е изд. – СПб.: Питер, 2019. – 1328 с.
2. Рамбо Дж., Блах М. UML 2.0. Объектно-ориентированное моделирование и разработка. – СПб.: Питер, 2019. – 544 с.
3. Грабер М. Введение в SQL. – М.: Лори, 2018. – 380 с.
4. Соммервилл И. Инженерия программного обеспечения. – М.: Вильямс, 2019. – 960 с.
5. Фаулер М. Рефакторинг. Улучшение существующего кода. – СПб.: Символ-Плюс, 2018. – 432 с.
6. Официальная документация Python. – Режим доступа: https://docs.python.org/3/ (дата обращения: 10.06.2026).
7. Документация SQLite. – Режим доступа: https://www.sqlite.org/docs.html (дата обращения: 10.06.2026).
8. Документация ttkbootstrap. – Режим доступа: https://ttkbootstrap.readthedocs.io/ (дата обращения: 10.06.2026).
9. Документация Matplotlib. – Режим доступа: https://matplotlib.org/stable/contents.html (дата обращения: 10.06.2026).
10. PEP 8 – Style Guide for Python Code. – Режим доступа: https://www.python.org/dev/peps/pep-0008/ (дата обращения: 10.06.2026).
11. Официальная документация DBML (Database Markup Language). – Режим доступа: https://www.dbml.org/docs/ (дата обращения: 10.06.2026).
12. Официальный сайт приложения Toshl. – Режим доступа: https://toshl.com/ (дата обращения: 10.06.2026).
13. Официальный сайт приложения Дзен-мани. – Режим доступа: https://zenmoney.ru/ (дата обращения: 10.06.2026).
14. ГОСТ 19.404-79. Единая система программной документации. Пояснительная записка. Требования к содержанию и оформлению. – М.: Стандартинформ, 2019.
15. ГОСТ 34.602-89. Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы. – М.: Стандартинформ, 2018.