Дипломная работа. Разработка виртуального лабораторного комплекса по дисциплине Методы оптимизации
Скачать 2.09 Mb.
|
3. ПРОЕКТИРОВАНИЕ ПРОГРАММНОЙ СИСТЕМЫ3.1. Средства разработки программного обеспеченияДля разработки дипломного проекта необходимо выбрать инструментальные средства для создания базы данных и программное обеспечение для разработки приложений с графическим интерфейсом. Для выбора средства разработки программы необходимо также определиться с языком программирования. 3.1.1. Средства реализации баз данныхСреди самых распространенных средств реализации баз данных можно выделить следующие сервисы: Microsoft Access, Oracle, Microsoft SQL Server, MySQL. Microsoft Access – является частью пакета Microsoft Office. Это файл-серверная СУБД, которая имеет широкий набор возможностей и функций, таких как: связанные запросы, связь с внешними таблицами и базами данных. Использует встроенный язык VBA. В самом Access можно писать приложения, работающие с базами данных корпорации Microsoft. В качестве движка базы данных используется Microsoft JetDatabaseEngine. Microsoft Access может быть задействован в приложениях, которыми одновременно пользуется небольшое количество пользователей и которые обрабатывают малые объемы данных. Невысокое допустимое количество возможных пользователей обусловлено тем, что в Access отсутствует ряд механизмов, например, тригеров, необходимых при работе в многопользовательских базах данных. При этом Access предоставляет выполнение следующих функций: Добавление, удаление и изменение информации в базе данных; Упорядочивание и просмотр данных разными способами, фильтрация данных; Работа с запросами; Обмен данными с помощью отчетов, сообщений электронной почты, внутренней (локальной) сети или Интернета. OracleDatabase – объектно-реляционная система управления базами данных компании Oracle. Имеет следующие отличительные черты: MVCC - многоверсионность данных для управления параллельными транзакциями; Автономные транзакции; Секционирование; Поддержка последовательностей; Автоматическое управление хранением файлов БД; OracleEnterpriseManager - набор инструментов для управления СУБД Oracle и серверов, на которых они установлены; Аналитические функции в SQL и др. MySQL – это свободная реляционная система управления базами данных, которая является решением для приложений небольшого масштаба. Из главных преимуществ: обеспечивает поддержку большого количества типов таблиц, а также переносима на множество платформ: Linux, macOS, OS/2 Warp, Solaris, Windows 95 и версий выше. Данная реляционная система имеет API и коннекторы для поддержки многих языков программирования: Delphi,языки семейства С, Java, PHP, Python, для языков платформы .NET. EntityFramework - объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Работает, используя запросы на языке SQL, который позволяет выполнять запросы к концептуальным моделям в Entity Framework. Поддерживает 3 подхода к разработке базы данных: CodeFirst, ModelFirst, Database First. Из них наиболее удобным и простым для разработки является модель ModelFirst, в которой сперва строится модель базы данных, а по ней автоматически генерируетя сама база данных и код. Из главных преимуществ: легкая интеграция с кодом, так как база данных встраивается в систему программным путем и не требует дополнительных подключений; быстродействие; доступность использования запросов. 3.1.2. Языки программированияЯзыки программирования, доступные для реализации проекта: C#; Java; Python. C# - объектно-ориентированный язык программирования, который служит для разработки приложений для платформы Microsoft .NET Framework. C# является языком со статической типизацией, поддерживает полиморфизм, обобщённые типы и методы, итераторы, перегрузку операторов, атрибуты, переменные, свойства и другое. Входит в семью языков с C-подобным синтаксисом, при этом наиболее близок к синтаксису C++ и Java. Выделяют несколько реализаций C#: Реализация C# в виде компилятора csc.exe, которая включена в состав .NET Framework; Реализация в составе проекта Rotor компании Microsoft; Проект Mono, который включает в себя реализацию C# с открытым исходным кодом и другие. Одно из главных преимуществ: быстродействие написанных на C# программ. Java - строго типизированный объектно-ориентированный язык программирования общего назначения. Основное преимущество этого языка состоит в том, что программы на Java транслируются в байт-код Java, который выполняется виртуальной машиной Java (JVM) - программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Достоинство подобного способа выполнения программ – это полная независимость байт-кода от операционной системы и аппаратного обеспечения (оборудования), что позволяет выполнять Java-приложения на любом устройстве с наличием подходящей виртуальной машины. Основные возможности и преимущества языка Java: Автоматическое управление памятью; Расширенные возможности обработки исключительных ситуаций; Наличие простых средств создания сетевых приложений; Унифицированный доступ к базам данных; Встроенные в язык средства создания многопоточных приложений, портирующихся на многие языки; Большой набор средств фильтрации для ввода-вывода; Набор базовых коллекций: массив, список, стек и другие. Наличие классов для выполнения HTTP-запросы и обрабатывать ответы. Python – это высокоуровневый язык программирования общего назначения, имеет динамическую типизацию и включает возможность автоматического управления памятью. При этом Pythonориентирован на повышение производительности разработчика, а также на обеспечение переносимости написанных на нём программ. Имеет минималистичный синтаксис языка: нет необходимости использовать символы «;», «{», «}», а вложенность обозначается отступами, что упрощает работу программиста с написанием кода, что значительно повышает качество и читаемость кода. Основные возможности и отличительные черты Python: Наличие модулей и пакетов, то есть возможность оформить приложение в виде модулей, которые в свою очередь могут быть собраны в пакеты; наличие сборщика мусора – автоматическое удаление ненужных объектов, и как следствие оптимизация использования памяти; интроспекция - для любого объекта можно получить всю информацию о его структуре; удобный возврат нескольких значений функций – перечисление их через запятую и автоматическое объединение в список; обработка исключений; привязка типа данных - тип данных привязан к значению, а не к переменной. То есть значение — это какой-то объект с атрибутами, которые определяют его тип и другие характеристики, а переменная — просто ссылка на этот объект. использование итераторов, генераторов, регулярных выражений и другое. Python позволяет работать как со стандартной библиотекой – в ней имеются средства для работы со многими сетевыми протоколами и форматами Интернета, с XML и другими, так и с расширенным набором пользовательских библиотек. Набор модулей для работы с операционной системой предоставляет возможность писать кроссплатформенные приложения. Так же имеются модули для работы с регулярными выражениями, текстовыми кодировками, модули для тестирования. 3.1.3. Среды разработки программного обеспеченияСреди самых распространенных интегрированных сред разработки можно выделить следующие сервисы: Visual Studio; PyCharm; IntelliJ IDEA. Visual Studio – это среда, которая включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать на двух уровнях: как отладчик исходного кода и как отладчик машинного уровня. Другие встраиваемые инструменты включают в себя: компиляторы, средства автозавершения кода, редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio предоставляет возможность создавать и подключать сторонние плагины для расширения функциональности практически на каждом уровне, в том числе добавление поддержки систем контроля версий исходного кода, добавление новых наборов инструментов или инструментов для прочих сторон процесса разработки программного обеспечения. В данной среде имеется широкий набор возможностей, оптимизирующий работу с кодом и повышающий эффективность разработки проектов: Обнаружение и обозначение ошибок в коде; Очистка кода – форматирование кода в одно нажатие, автоматические исправления кода в соответствии с параметрами; Рефакторинг - интеллектуальное переименование переменных, извлечение одной или нескольких строк кода в новый метод, изменение порядка параметров методов и другое; IntelliSense — это набор функций, отображающих сведения о коде непосредственно в редакторе и в некоторыхслучаях автоматически создающих небольшие отрывки кода; Поиск и навигация; CodeLens – нахождение ссылок на код, изменения кода, связанные ошибки и рабочее элементы и так далее. PyCharm - интегрированная среда разработки для работы с языком программирования Python. Включает в себя средства для анализа кода, графический отладчик, поддерживает веб-разработку. Данная среда является кроссплатформенной, совместима с Windows, macOS, Linux. Основные возможности PyCharm: Отладка кода при помощи PyDev; Рефакторинг кода; Поддержка Git, SVN, Mercurial и других систем контроля версиями; Автодополнение кода. Среда не ограничена набором стандартных библиотек и модулей, поддерживает добавление пользователями плагинов для расширения функционала. IntelliJIDEA – это интегрированная среда разработки программного обеспечения, поддерживающая большое число языков программирования, включая Java, JavaScript, Python. Позиционируется как одна из самых эффективных и удобных сред для разработки. IntelliJ IDEA поставляется для трех платформ: Windows, macOS, Linux. Основные преимущества и возможности данной среды разработки: Настраиваемость панели инструментов и окон; Навигация и поиск; Live Templates – сокращение времени на написание базовых конструкций кода; Smart completion – автопоиск наиболее подходящих фрагментов кода для контекста; Chain Completion – поиск методов и классов для контекста кода; Инструменты рефакторинга и другое. 3.1.4. Выбор средств для дипломного проектаДля дипломного проекта были выбраны следующие средства разработки: Язык программирования – C#. Выбор обусловлен тем, что C#, входя в состав языков семейства C, является наиболее простым для написания графических приложений языком. Он обладает доступным синтаксисом, включает широкий набор классов и методов для работы с математическими алгоритмами, задействованными в ходе разработки, позволяет эффективно и качественно оптимизировать весь код проекта. Также ключевым фактором является быстродействие программы. Оно при написании лабораторного комплекса на C#, по сравнению с двумя другими представленными вариантами, будет самым высоким, что является важным фактором при разработке программ с множеством функций обработки и вычислений алгоритмов. База данных – Microsoft SQL Server. Для разработки комплекса лабораторных работ и учета успеваемости студентов необходима простейшая база данных, позволяющая работать с основными элементами, такими как: таблицы, запросы. Доступ к базе данных осуществляется локально, и необходимости в многопользовательском формате нет. Кроме того, разработка такой базы данных наиболее проста и удобна, поэтому наиболее подходящим вариантом, сочетающим простоту, удобство и эффективность работы, является Microsoft SQL Server. Среда разработки программного обеспечения – VisualStudio. Эта интегрированная среда предоставляет удобный набор инструментов для работы с графическим интерфейсом, в частности позволяет работать с языком C# в WindowsForms – стандартными приложениями для операционной системы Windows. Выбор также обусловлен такими преимуществами данной среды как: настраиваемость окон и панелей инструментов, рефакторинг кода, автоматическое обнаружение ошибок в коде, поддержка технологии IntelliSense. 3.2. Диаграмма вариантов использованияДля выполнения всех функциональных требований к разрабатываемому программному обеспечению необходимо выявить основных пользователей системы. Наиболее удобный способ — это сделать – создать диаграмму вариантов использования, которая позволяет рассмотреть все варианты использования ПО. На рисунке 5 представлены два основных пользователя программы. Рисунок 5 – Пользователи системы Краткое описание акторов системы приведено в следующей таблице: Таблица 1 – Описание акторов
Далее в таблице 2 приведены все варианты использования системы акторами: Таблица 2 – Варианты использования
Объединяя акторов и варианты использования, получаем следующую схему (Рисунок 6): Рисунок 6. Схема Use-Case 3.3. Диаграмма «сущность-связь»Для проектирования базы данных и составления правильных связей в ней необходимо выявить сущности системы. Для этого удобно использовать ERD-диаграмму – «сущность-связь». В ходе анализа предметной области и изучения акторов системы были выявлены следующие основные сущности: Студент – пользователь, который проходит лабораторные работы в комплексе, заканчивая каждую из них тестированием; Преподаватель – пользователь, который может просматривать отчетность по успеваемости студентов. Таким образом, эти две сущности связаны модулем тестирования в лабораторном комплексе: студент проходит тест и получает баллы – преподаватель смотрит баллы студентов. Так как информация о преподавателе в системе не имеет никакого значения, а важны лишь баллы студента за тест, к которым преподаватель впоследствии просто получает доступ, второй сущностью будет являться «Результат лабораторных работ». Начальный вариант диаграммы ERD выглядит следующим образом: Рисунок 7 – Сущности Каждый студент регистрируется в системе один раз и при последующих входах проходит лишь авторизацию. И каждый студент имеет записи о результатах четырех лабораторных работах, представленных одной строкой, поэтому связь будет «Один к одному». Сущности «студент» и «результат», таким образом, могут быть объединены в одну. При этом объединенная сущность будет хранить следующие атрибуты: Id – ключ; ФИО студента; № группы студента; Логин – уникальное поле, не допускающее повторяющихся значений; Пароль; Лаб.работа №1; Лаб.работа №2; Лаб.работа №3; Лаб.работа №4; Рисунок 8 – Сущность студент 3.4. Архитектура программного обеспеченияВесь лабораторный комплекс состоит из нескольких модулей. Каждый модуль является отдельной формой, реализованной на языке C# в WindowsForms, имеющей расширение «.cs». Программа посредством языка запросов SQL взаимодействует с базой данной, созданной с помощью Entity Frameworks. Так как доступ к лабораторному комплексу происходит локально (с одного компьютера или в локальной сети), приложение является десктопным. При создании программы на раннем этапе необходимо заранее смоделировать работу пользователей. Для этого создается схема работы приложения, с помощью которой предусматриваются все сценарии действий пользователя – студента и преподавателя. Действия студента в лабораторном комплексе начинаются с регистрации, если он использует программу первый раз, или, в обратном случае, авторизации. Для регистрации студенту необходимо заполнить четыре поля с данными: Логин – это уникальное значение, которое не может повторяться другим студентом и присваивается только одному лицу; Пароль – набор цифр/букв/специальных символов; ФИО – фамилию, имя и отчество в полной форме; № группы. При авторизации студенту необходимо ввести только свой логин и пароль. После входа студент может выбрать лабораторную работу. При выборе открывается окно для ввода функции и входных переменных, которые затем обрабатываются согласно соответствующему номеру лабораторной работы алгоритму. Результаты обработки функции пошагово можно просмотреть в отдельном окне, наблюдая, как изменяются «x» на каждой итерации, а также значения вычисляемой функции и входных переменных. В конце каждой лабораторной работы студенту необходимо пройти тестирование, баллы за которое сохраняются в базе. Преподаватель при входе в систему должен ввести специальный код преподавателя, который задан программно. В перспективе развития и доработки лабораторного комплекса возможно добавление модуля администратора, который сможет настраивать код преподавателя, а также редактировать информацию о студентах, либо удалять ее. После ввода кода преподаватель в новой форме может просмотреть баллы за лабораторные работы всех студентов, зарегистрированных в системе, также отсортировав их по фильтру номера группы. Рисунок 9 – Пошаговая схема работы программы (студент) Рисунок 10 – Пошаговая схема работы программы (преподаватель) |