СОДЕРЖАНИЕ 1.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ……………………………………………... 5 1.1 Введение………………………………………………………………… 5 1.2 Цели и задачи программного продукта…………...…………………... 7 1.3 Требования к программному продукту……………………….……..... 9 1.4 Выбор СУБД………………………………………………………….… 13 1.5 Выбор среды разработки программы…………………………………. 15 2.ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ ………………………………………… 18 2.1 Разработка и реализация структуры базы данных…………………… 18 2.2 Определение атрибутов сущностей модели данных……………….… 22 2.3 Составление реляционных отношений……………………………..… 25 2.4 Концептуальное проектирование…………………………………........ 27 2.5 Логическое проектирование………………………………………....… 29 2.6 Физическое проектирование…………………………………….……... 31 3.ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ…………..… 34 3.1 Описание компонентов программы…………………………………... 34 3.2 Описание порядка работы с программным продуктом……………… 42 3.3 Защита данных и программного продукта…………………………… 51 3.4 Тестирование программного продукта……………………………….. 52 ЗАКЛЮЧЕНИЕ…………………………………………………………….. 55 СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ …………………………... 4 56 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 1.1 Введение Строительный комплекс Российской Федерации занимает одну из ключевых позиций в экономике страны. В деятельности современных строительных организаций информационные технологии играют значительную роль, способствуя повышению производительности труда и улучшению качества принимаемых решений. Разработано большое число программных систем, используемых на различных стадиях строительного процесса, в организациях, представляющие разные звенья договорных отношений, специалистами различного профиля. Программное обеспечение многократно повышает производительность труда строителей, позволяет отражать результаты выполнения строительномонтажных работ, формировать отчетные документы с минимальными затратами времени, контролировать исполнение строительных смет. Программное обеспечение для календарного планирования широко используется при управлении строительными проектами и позволяет внести значительные изменения в организацию процесса строительства. Специализированное программное обеспечение позволяет осуществлять учет, анализ, отчетность в условиях строительной отрасли. Специалисты проектировщики широко применяют системы, как общего назначения, так и узкоспециализированные для проектирования. Сложность задачи создания информационных систем в строительстве определяется многообразием компонентов строительных программных систем (сегодня на рынке представлено множество вариантов программного обеспечения для тех или иных задач, например, для сметных расчетов или 4 управления строительными проектами), необходимостью их интеграции, требованием учета специфических особенностей строительной отрасли. Таким образом, проблема анализа потребительского качества информационных систем строительных организаций является актуальной. 5 В то же время, пока не разработано единого комплекса моделей и методов для оценки потребительского качества информационных систем строительных организаций, учитывающего специфику строительной отрасли. Проблема приложения математических и инструментальных методов к оценке потребительского качества информационных систем строительных организаций нуждается в дальнейшей разработке. Эти обстоятельства обусловили выбор темы выпускной квалификационной работы, предопределили его цель, задачи и структуру. Любой программный продукт обладает своими особенностями и подходами к решению вопросов. Именно поэтому руководство предприятий часто сталкивается с проблемой выбора информационной системы, которая смогла бы с наибольшим успехом решать поставленные задачи и оправдала бы инвестиции на свое внедрение. Однако часто происходит, что ни одна из предложенных систем не способна полностью подстроиться под нужды предприятия. В таком случае самым оптимальным решением становится разработка собственной системы. 6 1.2 Цели и задачи программного продукта Строительный сектор постоянно развивается, и для успешного функционирования компаний необходимо оптимизировать процессы и повышать эффективность работы. Одним из способов решения этих задач является использование специализированного программного обеспечения. Актуальность темы выпускной квалификационной работы «Разработка автоматизированной информационной системы для магазина стройматериалов» обусловлена необходимостью модернизации и использования современных информационных технологий для облегчения и ускорения работы и развития строительного магазина. Автоматизированная информационная система позволит улучшить учёт товаров и повысить эффективность продаж, что особенно важно для малого бизнеса в сфере розничных продаж. Целью данной выпускной квалификационной работы является проектирование программного продукта для автоматизации процессов строительного магазина. В ходе работы будут рассмотрены основные этапы проектирования, включая анализ требований, разработку архитектуры, реализацию функционала и тестирование. Задачами данной выпускной квалификационной работы является: 1. Анализ предметной области и существующих информационных систем для магазинов стройматериалов. 2. Определение требований к разрабатываемой системе, включая функциональные и нефункциональные требования. 3. Разработка функциональной схемы системы. 4. Создание структуры данных и проектирование базы данных. 5. Разработка пользовательского интерфейса и экранных форм для ввода и просмотра информации. 6. Реализация основных функций системы, таких как оформление заказов, управление персоналом и финансами. 7 7. Тестирование и отладка разработанной системы, устранение ошибок и оптимизация производительности. Для решения поставленных задач выполнены следующие этапы: - выбор СУБД (моделирование Lucidchart, СУБД Microsoft SQL); - разработка БД; - создание оболочки для базы данных - проектирование структуры базы данных; - создание интерфейса пользователя; - реализация таблиц базы данных; В результате выполнения выпускной квалификационной работы будет создан программный продукт, который позволит оптимизировать процессы строительного магазина, повысить эффективность работы сотрудников и улучшить качество обслуживания клиентов. 8 1.3. Требования к программному продукту Основные требования к программному продукту - это функциональные и эксплуатационные требования, которые определяют характеристики разрабатываемого программного обеспечения. Функциональные требования к программному продукту - это требования, которые определяют поведение системы и описывают, какие функции она должна выполнять. В данном разделе содержится информация, которой должна обладать информационная система для данной организации, а именно совокупность предположений относительно свойств, атрибутов, функционала и качества информационной системы в деятельности организации. Функциональные требования: - Программное обеспечение должно быть написано на языке программирования С#. Также необходимо использовать библиотеки для обработки и анализа данных. - Информационная система позволяет пользователю просматривать информацию. - Программная функция в информационной системе позволяет персоналу(администратору) добавлять в базу данных новую информацию, а также редактировать её. - Обеспечить добавление, поиск, удаление, редактирование, сохранение изменений, и сохранение информации в PDF формате записей из базы данных, - Удобное расположение и полнота информации в БД. - В базе данных должно быть не менее четырех таблиц, приведенных к 2-й нормальной форме. Нефункциональные требования - это требования, определяющие свойства, которые система должна демонстрировать, или ограничения, которые она должна соблюдать, не относящиеся к поведению системы. В данном подраз- 9 деле содержится перечень нефункциональных требований к возможностям информационной системы. Перечислим основные нефункциональные требования: Нефункциональные требования к программному продукту включают: 1. Доступность - степень работоспособности и доступности решения для использования, выражается в процентах времени. 2. Совместимость - степень успешности взаимодействия решения с другими компонентами. 3. Функциональность - степень соответствия функций решения потребностям пользователей. 4. Ремонтопригодность - лёгкость изменения решения или его компонента для улучшения, исправления ошибок или адаптации к изменениям. 5. Эффективность работы - способность решения выполнять свои функции с минимальным потреблением ресурсов. 6. Надежность - способность решения выполнять требуемые функции в определённых условиях в течение определённого периода времени. 7. Масштабируемость - способность решения расти или развиваться по мере роста объёмов данных и количества пользователей. 8. Расширяемость - возможность добавления новых функциональных возможностей в решение. 9. Переносимость - лёгкость переноса решения или его компонента из одной среды в другую. 10. Безопасность - защита данных и компонентов решения от случайного или злонамеренного доступа, неправомерного использования, разрушения или раскрытия. 11. Удобство использования - лёгкость взаимодействия пользователя с решением. 12. Производительность информационной системы важна для эффективного решения задач в минимальные сроки с учётом выделенных ресурсов. 10 Оценка производительности производится заказчиком исходя из вложенных в разработку средств и соответствия системы его ожиданиям. Требования к интерфейсу 1.Программный продукт должен иметь простой и понятный пользовательский интерфейс, который будет состоять из следующих компонентов: 2.Главное окно: основное окно программы, в котором пользователи будут видеть список загруженных данных, а также инструменты для обработки и анализа данных. 3.Панель инструментов: панель с основными инструментами для обработки данных. 4.Меню настроек: меню для настройки параметров программного обеспечения, таких как параметры экспорта, интеграция с внешними системами и т. д. Требования к безопасности Программное обеспечение должно обеспечивать следующие меры безопасности: 1.Аутентификация пользователей: пользователи должны проходить аутентификацию перед доступом к данным и функциям программного обеспечения. 2.Ограничения доступа: пользователи должны иметь доступ только к тем данным и функциям, которые им разрешены. Требования к производительности Программное обеспечение должно обеспечивать следующие показатели производительности: 1.Время загрузки данных: программное обеспечение должно загружать данные из различных источников за разумное время. 2.Время обработки данных: программное обеспечение должно обрабатывать данные с определённой скоростью, чтобы пользователи могли быстро получать результаты. 11 3.Время экспорта данных: программное обеспечение должно экспортировать данные в нужные форматы за разумное время. Требования к тестированию и отладке Перед выпуском программного обеспечения необходимо провести следующие виды тестирования: 1.Функциональное тестирование: проверка того, что программное обеспечение выполняет все заявленные функции. 2.Нефункциональное тестирование: проверка производительности, безопасности, надёжности и удобства использования программного обеспечения. 3.Тестирование совместимости: проверка совместимости программного обеспечения с различными операционными системами. Требования к документации Необходимо подготовить следующую документацию: 1.Руководство пользователя: подробное описание интерфейса программного обеспечения и его функций. 2.Техническая документация: описание архитектуры программного обеспечения, используемых технологий и подходов. Требования к программному продукту являются важным аспектом его разработки и определяют ожидания пользователей от функционала и возможностей системы. Процесс сбора и анализа требований включает технико-экономическое обоснование, сбор требований от пользователей и создание спецификации требований к программному обеспечению (SRS). После утверждения требований проводится проверка на соответствие и реализация проекта. 12 1.4. Выбор СУБД Системы управления базами данных (СУБД) - это совокупность программных и лингвистических средств, обеспечивающих управление созданием и использованием баз данных. Они включают ядро, процессор языка базы данных, подсистему поддержки времени исполнения и сервисные программы. СУБД классифицируются по модели данных (иерархические, сетевые, реляционные, объектно-ориентированные, объектно-реляционные), степени распределённости (локальные, распределённые) и способу доступа к базе данных (файл-серверные, клиент-серверные, встраиваемые). В выпускной квалификационной работе используется СУБД Microsoft SQL Server 2019 - это надёжная, эффективная и интеллектуальная платформа управления данными, совместимая с операционными системами Windows и Linux, а также с контейнерами Docker. Она предназначена для работы в сложных бизнес-приложениях и сокращает затраты на разработку и обслуживание систем. Среди возможностей SQL Server 2019: кластеры больших массивов данных, виртуализация информации по алгоритму Polybase, интеллектуальная обработка запросов, гибридный буферный пул, сокращение повторяющихся компиляций, поддержка кодировки UTF-8 и новый протокол SDK для языка программирования JavaScript. SSMS позволяет управлять серверами, базами данных, выполнять скрипты и разрабатывать приложения на языке Transact-SQL. Она также предоставляет графический интерфейс для работы с объектами SQL Server, такими как таблицы, представления, процедуры и функции. SSMS поддерживает все версии SQL Server, включая локальные и удаленные экземпляры, а также облачные базы данных SQL Azure. Преимущества SQL Server 2019: 1. Высокая производительность и безопасность; 2. Сокращение затрат на обслуживание существующих систем и разработку новых приложений; 13 3. Возможности интеллектуальной аналитики данных; 4. Улучшенная совместимость на платформах Windows, Linux и в контейнерах; 5. Технология для отправки запросов в другие базы данных; 6. Анализ разных типов данных с помощью встроенных возможностей SQL и Spark; 7. Интеллектуальная обработка запросов и поддержка устройств постоянной памяти; 8. Выбор платформы и языка; 9. Запуск SQL Server в контейнерах Linux с поддержкой Kubernetes и в Windows; 10. Масштабируемость и производительность для стабильности и быстрого отклика базы данных; 11. Высокая доступность для критически важных приложений и хранилищ данных. Таким образом, проанализировав имеющиеся преимущества, Microsoft SQL Server 2019 была выбрана как инструментальное средство для разработки базы данных. 14 1.5. Выбор среды разработки программы Выбор среды разработки программы является важным этапом в процессе создания программного обеспечения. Различные среды имеют свои преимущества и недостатки, и выбор зависит от конкретных задач, языка программирования и предпочтений разработчика. При выборе среды разработки учитывается следующие факторы: 1. Язык программирования: выбор среды, подходящую для языка программирования. 2. Задачи: определяем, какие функции нужны для разработки, и выбираем среду, которая предлагает нужные инструменты. 3. Платформы: убеждаемся, что среда разработки совместима с операционной системой и устройствами, на которых будет использоваться программа. 4. Цена: следует оценить стоимость платных версий сред разработки и выбрать ту, которая соответствует бюджету. 5. Поддержка и сообщество: нужно проверить наличие поддержки и активного сообщества пользователей для выбранной среды разработки. Бесплатные и платные среды разработки предлагают различные функциональные возможности и поддержку языков программирования. Выбор среды должен быть основан на оценке требований проекта, совместимости с операционной системой и наличии необходимых инструментов для разработки. Важно также учитывать опыт и предпочтения разработчика, так как выбор среды может повлиять на скорость и удобство работы. Однако ключевым фактором является соответствие среды разработки поставленной задаче и обеспечение эффективного процесса разработки программного обеспечения. Программируемый программный продукт, предназначен для настольного приложения с пользовательским интерфейсом. Это позволяет нам использовать и вносить изменения более удобным способом в базу данных. Программный продукт был написан на языке программирования C#. Для реализации интерфейса использовалось приложение Visual Studio. 15 Visual Studio Линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментов. Данные продукты позволяют разрабатывать как консольные приложения, так и игры и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, UWP а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, .NET Core, .NET, MAUI, Xbox, Windows Phone .NET Compact Framework и Silverlight. На сегодняшний день работа в Visual Studio является самым популярным методом создания приложений для Windows. Выделяются следующие основные аспекты: - Удобство визуальной среды разработки, скорость работы приложения и компилятора -быстрый откликом программ и подпрограмм; - мощностью языка программирования и его гибкость -наличие поддерживаемых средой разработки шаблонов проектирования. Удобный компилятор позволяет разрабатывать программное обеспечение наиболее качественно, поскольку допускает многократное внесение необходимых изменений в исходную программу, с последующим тестированием. Вследствие этого возникает весьма эффективная разработка ПО. Низкая скорость компилятора показывает низкий уровень функционала из-за этого замедляется работа разработчика, поскольку внесение и исправление информации занимает больше времени и сил, а разработка ПО в следствии узкого функционала становится менее эффективным. Поэтому это является важным аспектом в выборе приложения для создания приложения и ПО. Преимущества, достигаемые за счет повышенной эффективности работы программ, очевидны. В любом случае, чем быстрее работает программа, тем лучше и быстрее разрабатывается проект. 16 Все вышеперечисленное дает возможность создания программного продукта с удобным интерфейсом и получение необходимых результатов от проекта. 17 2. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ 2.1. Разработка и реализация структуры базы данных Разработка и реализация структуры базы данных включает создание схемы базы данных и определение требуемых ограничений целостности. Процесс начинается с проектирования структурной организации данных, на основе которой формируются программы и реализуются операции по управлению данными. Базы данных классифицируются по типам, таким как иерархические, сетевые, реляционные и объектно-ориентированные. Для создания информационной системы необходимо: 1. Проанализировать соответствующую предметную область. Анализ предметной области программного продукта необходим для: 1.1 Изучения и осмысления всех аспектов проекта, таких как требования к продукту, взаимодействие с пользователем, методы хранения данных и реализация. 1.2 Выделения сущностей предметной области и определения первоначальных требований к функциональности. 1.3 Определения границ проекта и формирования документа, в котором будет храниться и поддерживаться информация о модели предметной области. 1.4 Формирования пользовательских требований на основе обсуждения задач с пользователями и разработки моделей и прототипов. 1.5 Документирования пользовательских требований, учитывая ясность и понятность документа. 1.6 Детализации требований пользователей, формируя более точные и подробные системные требования. 2. Построить информационную модель и правила - означает создать графическое представление работы будущей системы или её части с помощью диаграмм, определить структуру информационной системы, связи между данными и характеристики сущностей (атрибуты). Это поможет понять, как 18 должна работать система, определить функциональность для обработки данных и взаимодействовать с коллегами и заказчиками. 3. Создать структуру базы данных - означает определение таблиц, их полей и связей между ними. Это основа для хранения и организации данных в базе данных. 4. Реализовать базу данных на языке SQL. Реализовать базу данных на языке SQL означает создать и настроить реляционную систему управления базами данных (СУБД), такую как SQL, используя язык структурированных запросов (SQL). Этот процесс включает выполнение следующих действий: 4.1 Создать новую базу данных с помощью оператора SQL CREATE DATABASE. 4.2 Создать таблицы в созданной базе данных, используя операторы SQL CREATE TABLE. 4.3 Вставить данные в таблицы, применяя операторы SQL INSERT INTO. 4.4 Обновить существующие данные с помощью операторов SQL UPDATE. 4.5 Удалить данные из таблиц, используя операторы SQL DELETE. 4.6 Выбрать данные из таблиц, применяя операторы SQL SELECT. 4.7 Настраивать работу сервера СУБД, например, устанавливать параметры конфигурации, управлять пользователями и привилегиями. 5. Разработать и реализовать функциональное и интуитивно понятное приложение для доступа к данным. Разработать и реализовать функциональное и интуитивно понятное приложение для доступа к данным означает создание приложения, которое будет предоставлять пользователям удобный и простой способ получать информацию из различных источников. Основные этапы разработки такого приложения: 5.1 Определение требований и целей приложения. 5.2 Выбор подходящей технологии или инструмента для разработки. 19 5.3 Проектирование архитектуры и структуры приложения. 5.4 Разработка пользовательского интерфейса 5.5 Реализация основных функций и модулей приложения, таких как поиск, отображение данных и т. д. 5.6 Тестирование приложения на соответствие требованиям и обнаружение возможных ошибок. 5.7 Поддержка и обновление приложения после его выпуска, учитывая отзывы пользователей и изменения на рынке. Создание базы данных необходима для хранения, управления и обработки информации, связанной с деятельностью предприятия. Она позволяет автоматизировать процессы управления, оптимизировать работу с клиентами и партнерами, контролировать выполнение задач и многое другое. База данных также обеспечивает защиту информации от несанкционированного доступа, а также возможность быстрого поиска и анализа данных. Данная база данных должна содержать в себе следящую информацию: В любой организации имеется база данных, куда вносится информация о новых материалах, клиентах, сотрудниках, пунктах выдачи и их данные, нужные организации для оформления заказа. Предметной областью данной работы является процесс реализации строительного магазина. У модели существует 8 сущности: Users, Material, Pynkt, Zacaz, Sotrydniki, Reviews, Item, Clients. Каждая сущность имеет атрибуты, являющиеся фактами. Сущность Пользователь не имеет связей с другими таблицами базы данных и используется исключительно для хранения учетных записей пользователя программы (см. рис.1). 20 Рис. 1. ER-модель. Такое представление повышает удобство использования базы данных, в данном случае ввод информации сведется к выбору необходимых сведений из списка, где это возможно, что, безусловно, повысит скорость ввода информации и поможет избежать неверных входных данных. 21 2.2. Определение атрибутов сущностей модели данных Атрибуты сущностей модели данных определяют характеристики и свойства каждой сущности. Они представляют собой отдельные элементы информации, связанные с определённым объектом или классом объектов. Атрибуты описывают состояние, поведение и отношения между объектами. Атрибуты могут быть простыми или составными. Простые атрибуты состоят из одного компонента, например, код материала в магазине или количество материала. Составные атрибуты включают несколько простых атрибутов. Атрибуты также могут быть однозначными, многозначными или произвольными. Однозначные атрибуты содержат только одно значение для сущности. Многозначные атрибуты могут содержать несколько значений. Произвольные атрибуты формируются на основе значений других атрибутов. Для определения атрибутов сущностей необходимо дать полное описание каждой области ER-диаграммы. Определение атрибутов сущностей используется в составлении реляционных отношений. Таблица 1. Описание атрибутов сущностей Сущность Описание Material поле id_materiala – идентификатор материала поле nazvanie – название поле price – цена поле kolichestvo – количество поле photo – фото поле id_pynkta – идентифика- Pynkt тор пункта выдачи. поле address – адрес. 22 поле id_zacaza – идентифика- Zacaz тор заказа. поле data_zacaza – дата заказа поле symma – сумма поле skidka – скидка. поле kod_polych – код получения поле id_clienta - идентификатор клиента. id_sotrydnika – идентификатор сотрудника. поле id_pynkta – идентификатор пункта выдачи. поле id_item – идентификатор Item содержимого. поле id_tovara – идентификатор товара. поле id_zacaza – идентификатор заказа. поле login – логин Users поле password – пароль. поле rolle – роль. 23 поле id_clienta – идентифика- Clients тор клиента. поле lastname – Фамилия поле firstname – Имя поле middlename – Отчество поле telephone – телефон id_sotrydnika – идентификатор Sotrydniki сотрудника. поле lastname – Фамилия поле firstname – Имя поле middlename – Отчество поле position – должность поле telephone – телефон поле passport – паспорт поле id_review – идентифика- Reviews тор отзыва. поле text – текст поле id_zacaza – идентификатор заказа. 24 2.3. Составление реляционных отношений Реляционные отношения - это двумерные таблицы, содержащие данные об объектах предметной области. Они состоят из заголовка (атрибутов) и тела (кортежей). Атрибуты характеризуют объекты, а кортежи содержат информацию о них. Порядок кортежей и атрибутов в таблице не определён. В основе проектирования базы данных лежит составление реляционных отношений. При составлении реляционных отношений необходимо определить первичные и вторичные ключи. Также нужно определить атрибуты и их типы данных для каждой сущности модели. Таблица 2. Структура таблицы Material Поле id_materiala Допустимость Тип данных значения NULL int NOT NULL nvarchar(50) NOT NULL price float NOT NULL kolichestvo int NOT NULL VARBINARY(MAX) NOT NULL nazvanie photo Ключ PRIMARY KEY Таблица 3. Структура таблицы Pynkt Поле Допустимость Тип данных значения NULL id_pynkta INT NOT NULL address VARCHAR(50) NOT NULL Ключ PRIMARY KEY Таблица 4. Структура таблицы Zacaz id_zacaza int NOT NULL data_zacaza date NOT NULL symma float NOT NULL skidka float NOT NULL 25 PRIMARY KEY kod_polych int NOT NULL id_clienta int NOT NULL FOREIGN KEY id_sotrydnika int NOT NULL FOREIGN KEY id_pynkta int NOT NULL FOREIGN KEY Таблица 5. Структура таблицы Item id_item int NOT NULL PRIMARY KEY id_materiala int NOT NULL FOREIGN KEY id_zacaza int NOT NULL FOREIGN KEY Таблица 6. Структура таблицы Users login nvarchar(20) NOT NULL password nvarchar(20) NOT NULL int NOT NULL rolle 26 2.4. Концептуальное проектирование Концептуальная модель данных - это общая информационная модель предметной области, которая охватывает вопросы классификации, структуризации и семантической целостности данных. Она разрабатывается независимо от ограничений, вытекающих из моделей данных, поддерживаемых той или иной системой управления базами данных (СУБД). Концептуальная модель данных используется для предварительного описания предметной области перед проектированием базы данных. Создание концептуальной схемы данных происходит на основе представлений о предметной области перед проектированием базы данных. Концептуальная схема представляет собой описание основных сущностей (таблиц) и связей между ними без учета принятой модели БД и синтаксиса целевой СУБД. Часто на такой схеме отображаются только имена сущностей (таблиц) без указания их атрибутов. Основными конструктивными элементами моделей являются сущности, связи между ними и их атрибуты. Сущность - это любой однозначно идентифицируемый конкретный или абстрактный объект, включая события и связи между объектами, информация о котором хранится и обрабатывается в базе данных (БД). ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями (отношение сущности, содержит атрибуты (столбцы), описывающие сущность (объект). Атрибуты, которые однозначно определяют объект, называются ключом). Совокупность схем, используемых для представления информации, называются схемой базы данных, а текущие значения соответствующих отношений - базой данных. 27 ER-диаграмма концептуальной модели автоматизированной информационной системы представлена на рисунке 2. Диаграмма содержит в себе 8 сущностей. Рис. 2. Концептуальная модель данных. 28 2.5. Логическое проектирование Логическая модель данных - это усовершенствованная модель концептуальной модели данных, в которой сущности, атрибуты и связи дополнительно детализированы и организованы. На этом этапе определяются дополнительные ограничения и правила, а элементы данных организуются в таблицы и столбцы. Логическое проектирование включает два этапа: 1.Составление списка всех полей (данных) для описания предметной области и их характеристик, включая наименования, имена, типы и размеры полей. 2.Установление логических связей между полями, составление графа связей, образование групп полей и выделение ключей. После этого составляется графическое и словесное описание логической структуры данных, описываются логика взаимосвязи полей и содержание полей. Затем проводится документирование в соответствии с принятыми соглашениями или ГОСТ. Логическая модель данных является основой физической модели данных, которая фокусируется на фактических деталях реализации в конкретной СУБД. В выпускной квалификационной работе используется реляционная модель базы данных. На данном этапе проектирования АИС построим логическую модель БД. Для этого необходимы следующие действия: преобразование концептуальной модели данных в логическую мо- дель, а потом в физическую. проверка модели данных с помощью последовательности норма- лизации; На базе концептуальной модели была составлена логическая модель при помощи программы для моделирования баз данных. Представлена логическая модель базы данных, содержащая 8 сущностей: «Material», «Zacaz», «Pynct», 29 «Users», «Items», «Client», «Sotrydniki», «Reviews» связанных между собой связями один-ко-многим. Логическая модель представлена на рисунке 3. Рис. 3. Логическая модель данных. 30 2.6. Физическое проектирование Физическая модель данных - это представление структуры и организации данных в базе данных, которое отражает их физическое хранение и доступ к ним. Она описывает, как данные физически организованы в среде хранения, такой как сервер базы данных, и как они связаны друг с другом. Физическая модель данных включает информацию о структуре таблиц, индексах, связях между таблицами, типах данных и других физических характеристиках. Она используется при разработке и реализации базы данных и является основой для создания прикладных программ, работающих с этой базой данных. В качестве реализации физической модели в данной выпускной квалификационной работе использовалась программа Lucidchart данная программа реализует графический интерфейс модели с наибольшим набором информации, наглядным и понятным отображением связей между сущностями. Физическая модель данных представлена в рис. 4. Согласно физической модели данных, база данных состоит из 8 таблиц: «Material», «Zacaz», «Pynct», «Users», «Items», «Client», «Sotrydniki», «Reviews». Таблица «Material» содержит поля: «id_materiala» (Первичный ключ, тип данных – целочисленный); «nazvanie» (тип данных – строковый) «price» (тип данных – числовой); «kolichestvo» (тип данных – целочисленный); «photo» (тип данных –для хранения двоичных данных); Таблица «Zacaz» содержит поля: «id_zacaza» (Первичный ключ, тип данных –целочисленный); «data» (тип данных –дата); «symma» (тип данных –числовой); «skidka» (тип данных – числовой); «kod_polych» (тип данных – целочисленный); 31 «id_clienta» (тип данных – целочисленный); «id_sotrydnika» (тип данных – целочисленный); «id_pynkta» (тип данных – целочисленный); Таблица «Pynct» содержит поля: «id_pynkta» (Первичный ключ, тип данных – целочисленный); «address» (тип данных – строковый); Таблица «Users» содержит поля: «login» (тип данных – строковый); «password» (тип данных – строковый); «rolle» (тип данных – целочисленный); Таблица «Items» содержит поля: «id_item» (Первичный ключ, тип данных – целочисленный); «id_materiala» (тип данных – целочисленный); «id_zacaza» (тип данных – целочисленный); Таблица «Client» содержит поля: «id_clienta» (Первичный ключ, тип данных – целочисленный); «lastname» (тип данных – строковый) «firstname» (тип данных – строковый); «middlename» (тип данных – строковый); «telephone» (тип данных – строковый); Таблица «Sotrydniki» содержит поля: «id_sotrydnika» (Первичный ключ, тип данных – целочисленный); «lastname» (тип данных – строковый) «firstname» (тип данных – строковый); «middlename» (тип данных – строковый); «position» (тип данных – строковый); «telephone» (тип данных – строковый); «passport» (тип данных – строковый); Таблица «Reviews» содержит поля: 32 «id_review» (Первичный ключ, тип данных – целочисленный); «text» (тип данных – строковый); «id_zacaza» (тип данных – целочисленный); Описание типов данных: Строковый тип данных - предназначен для хранения текстовых значений (NVARCHAR, CHAR, NCHAR). Числовой тип данных-используется для хранения и обработки чисел с плавающей точкой (FLOAT). Целочисленный тип данных - представляет собой все целые числа в определённом диапазоне реализации и может содержать как положительные, так и отрицательные значения (INT). Взаимодействие с интерфейсом происходит при помощи таблиц в SQL Server Management Studio. Рис. 4. Физическая модель данных. 33 3. ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ 3.1. Описание компонентов программы Компоненты программы - это базовые элементы, из которых состоит программное обеспечение. Программное обеспечение ориентировано на работу с базой данных материалов и заказов. В этой связи программу можно условно разбить на следующие функциональные блоки: - главное окно программы; - модуль каталога материалов - модуль формирования заказа - модуль авторизации. Главное меню содержит пункты для доступа к основным модулям программы и инструментам для работы с каталогом программы. Рис. 5. Главная форма. Функционал главного окна программы реализован в модуле «Form1.cs», основные методы которого вызывают формы соответствующих пунктов главного меню. Функционал блока позволяет администратору проводить все необходимые функции для работы с БД: 34 просмотр данных; поиск данных; добавление данных; удаление данных; редактирование данных. Внесение изменений Добавление фото Содержимое базы данных выдается администратору в виде окон программы размеры и содержание которых выбрано таким образом, чтобы выводить полную и удобную для просмотра порцию информации. Благодаря реализуемым связям БД в одном окне отображаются данные из нескольких таблиц, что исключает избыточность информации. Этот блок содержит 1 программный модуль в Form1.cs. Рис. 6. Окно с материалами. К основным методам модуля «Form1.cs» относятся: - private void button1_Click – вызов формы добавления нового материала; - private void button2_Click – метод производит удаление записи текущего материала; - private void button3_Click – редактирование текущей записи материала; - private void button4_Click – сохранение изменений в БД; 35 - private void button5_Click – возможность редактирования записей в БД; - private void button6_Click – добавляет фотографию материала; -bindingNavigator1– позволяет пользователям перемещаться по записям данных и взаимодействовать с ними; - private void заказToolStripMenuItem1_Click – используется для создания меню в приложении; - private void добавитьКЗаказуToolStripMenuItem_Click_1- используется для добавления выбранного клиентом материала к заказу. Модуль «Form3.cs» предназначен для добавления нового материала содержащая список всех строк таблицы БД «Материал». Рис. 7. Окно с добавления материала. К основным методам модуля «Form2.cs» относятся: - private void button1_Click –добавление нового материала; - private void button2_Click – метод производит отмену добавления. Модуль «Form3.cs» предназначен для отображения, редактирования, создания талона таблицы БД «Заказ», содержащей полную информацию о заказе. 36 Рис. 8. Окно заказ. К основным методам модуля «Form3.cs» относятся: - private void button1_Click – отображение редактирования записей заказа; - private void button2_Click – отображение внесения изменений; - private void button3_Click – закрывает текущую форму; - private void button4_Click – создает талон в формате PDF; -bindingNavigator1– позволяет пользователям перемещаться по записям данных и взаимодействовать с ними. Модуль «Form4.cs» предназначен для отображения и редактирования таблицы БД «Пункт выдачи», содержащей полную информацию о пункте выдачи. 37 Рис. 9. Окно пункт. К основным методам модуля «Form4.cs» относятся: - private void button1_Click – отображение внесений изменений; - private void button2_Click – закрывает текущую форму; -bindingNavigator1– позволяет пользователям перемещаться по записям данных и взаимодействовать с ними. Модуль «Form5.cs» предназначен для отображения и редактирования таблицы БД «Клиент», содержащей полную информацию о клиенте. Рис. 10. Окно клиенты. 38 К основным методам модуля «Form5.cs» относятся: - private void button1_Click – отображение внесений изменений; - private void button2_Click – закрывает текущую форму; -bindingNavigator1– позволяет пользователям перемещаться по записям данных и взаимодействовать с ними. Модуль «Form6.cs» предназначен для отображения и редактирования таблицы БД «Сотрудники», содержащей полную информацию о сотруднике. Рис. 11. Окно сотрудники. К основным методам модуля «Form6.cs» относятся: - private void button1_Click – отображение внесений изменений; - private void button2_Click – закрывает текущую форму; -bindingNavigator1– позволяет пользователям перемещаться по записям данных и взаимодействовать с ними. Модуль «Form7.cs» предназначен для написания в таблице БД «Отзывы» новых отзывов. 39 Рис. 12. Окно написать отзыв. К основным методам модуля «Form7.cs» относятся: - private void button1_Click – добавляет новый отзыв; - private void button2_Click – закрывает текущую форму. Модуль «Form8.cs» предназначен для отображения и написания в таблицу БД «Отзывы» полную информацию о отзыве. Рис. 12. Окно посмотреть отзывы. К основным методам модуля «Form7.cs» относятся: - private void button1_Click – вызов формы добавления нового материала; 40 - private void button2_Click – закрывает текущую форму; -bindingNavigator1– позволяет пользователям перемещаться по записям данных и взаимодействовать с ними. Модуль «Form9.cs» предназначен для входа в систему при помощи логина и пароля для администратора чтобы редактировать изменения. Так же есть возможность «войти как гость» только для просмотра и оформления заказа. Рис. 13. Окно авторизации. К основным методам модуля «Form9.cs» относятся: - private void button1_Click – войти как гость; - private void button2_Click – войти в систему; - private void button3_Click – закрывает текущую форму. 41 3.2 Описание порядка работы с программным продуктом При запуске программного продукта появляется форма «Авторизация», где нужно ввести логин и пароль для получения доступа к информации и возможности к нее редактированию. Мы можем зайти как администратор, гость, клиент или менеджер. (см. рис.14) Рис. 14. Форма авторизации. При авторизации, как администратор появляется форма «Материал», где представлено меню ИС. При помощи кнопок «Заказ», «Пункт выдачи», «Клиенты», «Сотрудники», «Написать отзыв», «Посмотреть отзывы» расположенных сверху формы. Окно «Материал» содержит кнопки: добавить фото, добавить, удалить, редактировать, сохранить изменения, поиск, закрыть расположенные в соответствующих GroupBox. Вся информация о материале отображается в DataGridView (см. рис.15). 42 Рис. 15. Форма материалы. При нажатии кнопки «Добавить» на форме «Материал» появляется форма (см. рис. 16). Которая используется для добавления нового материала и внесения информации о нем в базу данных. Добавление информации производится при помощи кнопки «Ок», расположенной в нижней части формы. Рис. 16. Форма добавления материала. Для добавления новой фотографии товара на форме «Материал» нужно выбрать нужный товар и нажать кнопку «Добавить фото» выбор картинки осуществляется из документов компьютера. Данная кнопка нужна для визуального восприятия товара (см. рис. 17) 43 Рис. 17. Добавление фото на форме материал. Для удаления информации на форме «Материал» нужно выделить устаревшие данные и нажать на кнопку «Удалить» после чего появляется всплывающее уведомление для безопасности от случайных удалений. Нажимаем кнопку «Да» для полного удаления устаревшей информации, как из оболочки программы, так и из базы данных (см. рис.18). Рис. 18. Удаление материала. 44 Поиск нужной информации на форме «Материал» выполняется по названию товара. Для этого нужно заполнить соответствующий textbox и нажать на кнопку «Поиск». При поиске интересующего материала данные ищутся из уже существующих данных в базе данных (см. рис.19) Рис. 19. Поиск материала. Для устранения орфографических ошибок в данном программном продукте предусмотрены кнопки «Редактировать» и «Внести изменения» расположенные на форме «Материал» в компоненте GroupBox, который называется «Основные действия». При редактировании нужно нажать на запись с замеченной ошибкой и нажать кнопку «Редактировать» (см. рис.20) после чего, исправляем запись и нажимаем кнопку «Внести изменения» (см. рис.21). Рис. 20. Редактировать материал. 45 Рис. 21. Внести изменение. При просмотре списка материалов пользователь может выделить материал, по нажатию правой клавиши мыши вызвать контекстное меню с командой «Добавить к заказу» (см. рис.22). При нажатии на команду происходит формирование заказа и добавление в заказ выбранной позиции в количестве 1 единицы (см. рис.23). Рис. 22. Добавить к заказу. 46 Рис. 23. Добавление заказа. При нажатии кнопки «Талон в PDF», у нас появляется страница, содержащая информацию о содержимом заказа в формате PDF (см. рис.24). Рис. 24. Талон PDF. При помощи кнопок «Заказ», «Пункт выдачи», «Клиенты», «Сотрудники», «Написать отзыв», «Посмотреть отзывы» расположенных сверху формы, можем получить доступ ко всем формам приложения и ознакомиться с информацией хранящиеся в них (см. рис.25 - 27). 47 Рис. 25. Форма пункт выдачи. Рис. 26. Форма клиент. 48 Рис. 27. Форма сотрудники. При нажатии кнопки «Написать отзыв» на форме «Материал», появляется форма (см. рис. 28). Предназначенная для написания отзыва клиентами. Добавление отзыва производится при помощи кнопки «Отправить», расположенной в нижней части формы. Рис. 28. Написать отзыв. 49 При нажатии кнопки «Посмотреть отзывы» на форме «Материал», появляется форма (см. рис. 29). Предназначенная для просмотра и написания отзывов клиентами. Рис. 29. Посмотреть отзыв. При входе «как гость» на форме «Авторизация» доступно только формирование своего заказа и поиск нужного материала (см. рис. 30). Рис. 30. Посмотреть отзыв. 50 3.3 Защита данных и программного продукта Защита данных и программного продукта - это комплекс мер, направленных на предотвращение несанкционированного доступа, использования, распространения, изменения и создания аналогов программного продукта. Защита включает в себя правовые, технические и организационные меры, направленные на обеспечение конфиденциальности, доступности и целостности данных и программного обеспечения. В данном программном продукте защитой данных является авторизация пользователей. Авторизация – это предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки данных прав при попытке выполнения этих действий. Авторизация в данной программном продукте нужна для обеспечения защиты базы данных от несанкционированного доступа. Для обеспечения защиты базы данных в программе предусмотрен вход от разных лиц. Можно войти в систему либо от имени «администратора» при помощи логина и пароля для редактирования всех данных, находящихся в программном продукте, либо «войти как гость», только для выбора материала и оформления заказа. Так же предусмотрено всплывающее окно, которое не говорит о том, где именно была сделана ошибка при входе в систему. Это сделано для того, чтобы снизить риск подбора пароля или логина. При неправильном вводе данных программа выводит сообщение об ошибке, представленное на рис. 31. Рис. 31. Ошибка авторизации. 51 3.4 Тестирование программного продукта Тестирование программного продукта - это процесс проверки и контроля качества программного обеспечения, направленный на обнаружение и исправление ошибок, а также на обеспечение соответствия продукта требованиям и ожиданиям пользователей. Тестирование проводится на всех этапах разработки программного обеспечения, включая проектирование, кодирование, интеграцию и тестирование системы. Тестирование программного продукта выполняется в несколько этапов: 1. Работа с требованиями: знакомство с требованиями заказчика, обсуждение функционала продукта и выявление противоречий и потенциальных дефектов. 2. Разработка стратегии тестирования: оценка сроков, выбор видов тестирования, анализ сред и ресурсов, определение приоритетов и составление плана тестирования. 3. Создание тестовой документации: написание сценариев для проверки функционала, отчётов об ошибках и результатов тестирования. 4. Тестирование прототипа: выявление основных отклонений от ожидаемого результата, соответствие с бизнес-стратегией и исправление ошибок. 5. Основное тестирование: формирование репортов о найденных дефектах, выполнение тестовых сценариев и создание тестовой среды. 6. Стабилизация: завершение работы с пожеланиями заказчика, фиксация найденных багов и связь команды тестирования с командой разработчиков. 7. Эксплуатация и поддержка: тестирование продукта в продакшн-среде, учёт пожеланий пользователей и устранение дефектов. Тестирование программного продукта на C# может включать следующие виды тестирования: 1. Модульное тестирование: проверка отдельных модулей или функций кода на корректность работы с использованием фреймворков, таких как Google Test или Catch. 52 2. Интеграционное тестирование: проверка взаимодействия между различными модулями и компонентами системы с использованием фреймворков, например, Boost.Test. 3. Системное тестирование: охватывает весь программный продукт в целом и проверяет его соответствие требованиям, включая тестирование пользовательского интерфейса, производительности, безопасности и других аспектов. Для тестирования используются инструменты статического и динамического анализа кода, такие как Clang Static Analyzer, Cppcheck, Valgrind и AddressSanitizer. Также применяются инструменты автоматизации тестирования, например, CMake и Continuous Integration. Тестирование программного продукта строительного магазина через модульные тесты включает проверку отдельных модулей или компонентов программы, таких как функции, методы, классы или объекты. Цель модульного тестирования - убедиться, что каждый модуль работает правильно и соответствует спецификациям. Основные принципы модульного тестирования включают изоляцию, автоматизацию, маленькие объёмы, покрытие и независимость тестов. Модульное тестирование часто используется в сочетании с другими методами тестирования, такими как интеграционное и системное тестирование, для обеспечения качества программного продукта. В процессе модульного тестирования выбираются модули для тестирования, разрабатываются тестовые случаи, выполняются тесты и устраняются найденные ошибки. Преимущества модульного тестирования включают раннее выявление и исправление ошибок, улучшение качества программного обеспечения и повышение надёжности продукта. Пошаговое создание модульных тестов на C#: 1. Создайте новый проект C# в Visual Studio. 53 2. Добавьте новый тестовый проект, выбрав «Visual C#» → «Test» в меню «Добавить» и нажав «Новый проект тестирования модуля». 3. Добавьте ссылку на проект, который хотите протестировать, выбрав его в контекстном меню и нажав «Добавить ссылку». 4. Создайте метод тестирования, используя ключевое слово TestMethod. 5. Внутри метода тестирования создается код для проверки поведения тестируемого объекта, используя утверждения (например, Assert.AreEqual). Запустите тесты, выбрав «Тест» → «Выполнить все тесты» или нажав клавишу F5. Для выполнения тестирования приложения были разработаны модульные тесты для подключенной библиотеки классов. Перечень разработанных unit-тестов: ‒ AnalizeTestBat ‒ AnalizeTestBat ‒ AnalizeTestT Рис. 32. Успешное тестирование программы. 54 ЗАКЛЮЧЕНИЕ В заключении выпускной квалификационной работы на тему «Разработка автоматизированной информационной системы для магазина стройматериалов» можно отметить, что был разработан программный продукт, который обеспечивает автоматизацию процессов управления и учёта товаров в строительном магазине. Программный продукт включает в себя следующие основные функции: учёт товаров, формирование заказов, работа с клиентами и кассовые операции. Также были рассмотрены вопросы информационной безопасности и защиты данных. В результате проектирования и разработки программного продукта были достигнуты следующие цели: повышение эффективности работы магазина, улучшение качества обслуживания клиентов, снижение вероятности ошибок и потерь данных, а также упрощение процесса управления магазином для персонала. Применение современных технологий и подходов к проектированию и разработке программного обеспечения позволило создать эффективный и удобный инструмент для автоматизации работы строительной фирмы, повышая качество предоставляемых услуг и упрощая работу сотрудников. Таким образом, разработанный программный продукт является актуальным и востребованным решением для автоматизации работы строительного магазина, способствуя успешному развитию предприятия и удовлетворению потребностей клиентов. 55 СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 1. Петкович, Д. Microsoft SQL Server 2008. Руководство для начинающих / Д. Петкович. - М.: БХВ-Петербург, 2019. - 752 c. 2. Петкович, Душан Microsoft SQL Server 2019. Руководство для начинающих / Душан Петкович. - М.: БХВ-Петербург, 2018. - 889 c. 3. Послед, Б.С. Access 2000. Базы данных и приложения. Лекции и упражнения / Б.С. Послед. - К.: DiaSoft, 2020. - 512 c. 4. Сафонов, В. О. Параметризованные типы данных. История, теория, реализация и применение / В.О. Сафонов. - М.: Издательство Санкт-Петербургского университета, 2020. - 116 c. 5. Секунов, Н. Самоучитель C# / Н. Секунов. - М.: БХВ-Петербург, 2021. - 576 c. 6. Селко, Джо Стиль программирования Джо Селко на SQL / Джо Селко. - М.: Русская Редакция, Питер, 2019. - 196 c. 7. Станек, У.Р. Microsoft SQL Server 2008. Справочник администратора / У.Р. Станек. - М.: Русская Редакция, 2020. - 280 c. 8. Ульман, Дж. Основы систем баз данных / Дж. Ульман. - М.: Финансы и статистика, 2022. - 292 c. 9. Фримен, Адам ASP.NET 4.5 с примерами на C# 5.0 для профессионалов / Адам Фримен. - М.: Вильямс, 2020. - 923 c. 10. Фримен, Адам ASP.NET MVC 3 Framework с примерами на C# для профессионалов / Адам Фримен , Стивен Сандерсон. - М.: Вильямс, 2019. - 672 c. 11. системы, Открытые Открытые системы. СУБД №04/2011 / Открытые системы. - М.: Открытые Системы, 2019. - 398 c. 12. Дейтел, П. Как программировать на Visual C# 2012 / П. Дейтел. - М.: Питер, 2019. - 2180 c. 13.Рихтер, Джеффри CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# / Джеффри Рихтер. - М.: Питер, 2019. - 896 c. 56 14. Культин, Н. С# в задачах и примерах / Н. Культин. - М.: БХВ-Петербург, 2020. - 1293 c. 15. Биллиг В.A. Основы объектного программирования на С# (C# 3.0, Visual Studio 2008) [Электронный ресурс] : учебное пособие / В.A. Биллиг. Электрон. текстовые данные. - Москва, Саратов: Интернет-Университет Информационных Технологий (ИНТУИТ), Вузовское образование, 2017. - 583 c. 16. Дейт, К. Дж. SQL и реляционная теория. Как грамотно писать код на SQL / К.Дж. Дейт. - М.: Символ-плюс, 2017. - 0 c. 17. Джеймс, Р. Грофф SQL. Полное руководство / Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель. - М.: Вильямс, 2019. - 960 c. 18. Дунаев, В. В. Базы данных. Язык SQL для студента / В.В. Дунаев. М.: БХВ-Петербург, 2017. - 288 c. 19. Карвин, Билл Программирование баз данных SQL. Типичные ошибки и их устранение / Билл Карвин. - М.: Рид Групп, 2018. - 336 c. 20. Аллен, Г. Тейлор SQL для чайников / Аллен Г. Тейлор. - М.: Диалектика, Вильямс, 2018. - 416 c. 21. Хайруллин Р.С. Программирование на C#: учебное пособие / Р.С. Хайруллин. – Казань: Изд-во Казанск. гос. архитект.-строит. ун-та, 2017. – 153 с. 57