Главная страница
Навигация по странице:

  • Актор Краткое описание

  • Основной актор Наименование Формулировка

  • Дипломная работа. Разработка виртуального лабораторного комплекса по дисциплине Методы оптимизации


    Скачать 2.09 Mb.
    НазваниеРазработка виртуального лабораторного комплекса по дисциплине Методы оптимизации
    АнкорДипломная работа
    Дата03.06.2022
    Размер2.09 Mb.
    Формат файлаdocx
    Имя файлаbakanina_diplom.docx
    ТипДиплом
    #567993
    страница4 из 8
    1   2   3   4   5   6   7   8

    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. Среды разработки программного обеспечения


    Среди самых распространенных интегрированных сред разработки можно выделить следующие сервисы:

    1. Visual Studio;

    2. PyCharm;

    3. IntelliJ IDEA.

    Visual Studio – это среда, которая включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать на двух уровнях: как отладчик исходного кода и как отладчик машинного уровня.

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

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

    В данной среде имеется широкий набор возможностей, оптимизирующий работу с кодом и повышающий эффективность разработки проектов:

    1. Обнаружение и обозначение ошибок в коде;

    2. Очистка кода – форматирование кода в одно нажатие, автоматические исправления кода в соответствии с параметрами;

    3. Рефакторинг - интеллектуальное переименование переменных, извлечение одной или нескольких строк кода в новый метод, изменение порядка параметров методов и другое;

    4. IntelliSense — это набор функций, отображающих сведения о коде непосредственно в редакторе и в некоторыхслучаях автоматически создающих небольшие отрывки кода;

    5. Поиск и навигация;

    6. CodeLens – нахождение ссылок на код, изменения кода, связанные ошибки и рабочее элементы и так далее.

    PyCharm - интегрированная среда разработки для работы с языком программирования Python. Включает в себя средства для анализа кода, графический отладчик, поддерживает веб-разработку.

    Данная среда является кроссплатформенной, совместима с Windows, macOS, Linux.

    Основные возможности PyCharm:

    1. Отладка кода при помощи PyDev;

    2. Рефакторинг кода;

    3. Поддержка Git, SVN, Mercurial и других систем контроля версиями;

    4. Автодополнение кода.

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

    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 – Пошаговая схема работы программы (преподаватель)
    1   2   3   4   5   6   7   8


    написать администратору сайта