Дипломная (вкр): Разработка программного продукта для автоматизации сбора данных из электронных архивов задач по программированию

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Разработка программного продукта для автоматизации сбора данных из электронных архивов задач по программированию

Содержание

Введение

. Постановка задачи

.1 Основные понятия и определения

.2 Общее описание разрабатываемого ПП

. Анализ методов и средств решения поставленной задачи

.1 Теоретические основы

.2 Аналитический обзор существующего ПО

. Анализ требований к ПП

.1 Анализ предметной области разработки

.2 Требования к интерфейсу

.3 Система приоритетов при разработке ПП

. Проектирование ПП

.1 Архитектура ПП

.2 Выбор инструментальных средств разработки

.3 Проектирование структур данных и алгоритмов

.3.1 Общий алгоритм программы

.3.2 Алгоритм работы отдельных стадий выполнения программы

.4 Проектирование пользовательского интерфейса

. Реализация ПП

.1 Особенности реализации системы

.2 Политика безопасности

. Тестирование ПП

.1 Обоснование методики тестирования

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

. Внедрение системы

.1 Действия с участниками.

.1.1 Добавление участника

.1.2 Загрузка сохраненного списка участников

.1.3 Удаление участников

.2 Действия с задачами.

.2.1 Добавление задач

.2.2 Загрузка сохраненного списка задач

.2.3 Удаление задач из списка

.3 Заполнение основных полей

.3.1 Поля "Дата"

.3.2 Поле "Язык"

.3.3 Поле "Сортировка"

.4 Получение отчета

.5 Расшифровка результатов отчета

Заключение

Список использованных источников

Введение

С течением времени дистанционное обучение становится более популярным. Этот нетрадиционный метод обучения имеет ряд преимуществ, такие как: экономия времени и денег, мобильность.

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

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

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

В рамках этой ВКР создается программа, решающая данную задачу.

1. Постановка задачи

.1 Основные понятия и определения


В данном дипломном проекте разрабатывается программный продукт (ПП), решающий задачу по автоматизации сбора данных, связанных с деятельностью кружка по программированию.

Курсы направлены на изучение и совершенствование навыков программирования на различных языках (С++, Java и пр.) среди студентов и школьников старших классов.

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

Так как участников кружка достаточно много (около 20 человек), удобно использовать Интернет-источники - электронные архивы задач, содержащих различные задания, в том числе и олимпиадного уровня.

Их преимущество состоит в том, что проверка решения происходит в онлайн-режиме (имеют встроенную проверяющую систему). Кроме того, есть возможность решения одной и той же задачи на различных языках программирования. Преподавателю достаточно лишь посмотреть профиль участника перед занятием, чтобы узнать статус задачи (решена/не решена), время решения и пр.

Но не всегда одного ресурса достаточно. Чаще всего используется 3-4 электронных архивов, что значительно усложняет проверку преподавателем, так как занимает большое количество времени.

1.2 Общее описание разрабатываемого ПП


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

Цель разработки - ускорить и сделать более удобным для преподавателя сбор данных из электронных архивов задач по программированию.

Данная программа будет ориентирована в основном на использование преподавателем для контроля успеваемости участников кружка.

Программа будет обладать следующими свойствами:

·        Простой и понятный интерфейс

·        Высокая скорость обработки информации (при быстром Интернет - соединении)

·        Удобство в использовании

·        Возможность расширения (добавление новых сайтов для получения результатов).

2. Анализ методов и средств решения поставленной задачи

.1 Теоретические основы


Парсинг (Parsing) - это принятое в информатике определение синтаксического анализа. Для этого создается математическая модель сравнения лексем с формальной грамматикой, описанная одним из языков программирования. Например, PHP, Perl, Ruby, Python. [6]

Программа (или скрипт), которая занимается этим, называется парсером. Его основное назначение - сбор контента с одного или нескольких сайтов, анализ и наполнение им своих проектов. Кроме того, часто используется парсинг результатов выдачи поисковых систем. В зависимости от поставленной задачи, контент может быть скопирован полностью или частично. Парсеры бывают узкоспециализированные и универсальные. Узкоспециализированные занимаются копированием текста или изображения, а универсальные могут скопировать и то и другое вместе.[6]

Как правило, алгоритм действия таких программ всегда схожий.

·        Выход в интернет.

·        Получение доступа к коду веб-ресурса, его скачивание.

·        Чтение и извлечение данных. Их обработка.

Удобство парсеров неоспоримо. Они способны перебрать большую часть ресурсов в поисках нужной информации за короткий промежуток времени. Кроме того, они автоматизируют ее. Например, парсинг используют программы автоматической проверки уникальности, сравнивая содержимое веб-страниц и предложенного текста. Также, его используют при заполнении однотипных характеристик товаров в интернет-магазинах.

Но не всегда такие программы используются в благих целях. Ведь они получают данные даже конфиденциального характера без согласия владельца. Часто администраторы сайтов парсят чужой контент для наполнения своих. Конечно, это оправдано, если требуется часто и быстро изменять их (например, обновлять новости). В ином случае, как правило, поисковые системы быстро находят такое нарушение.[6]

Еще одним примеров негативного использования таких программ является организация спам-рассылок по электронной почте или каналам мобильной связи. Парсятся социальные сети и собирается нужная информация (телефоны, адреса электронной почты и т.д.).

Парсеры пишутся на языках программирования, в которых предусмотрена возможность обработки строк. Основа работы парсера заключается в том, что предложенный текст сравнивается с тем, который находится на веб-страницах. И затем в зависимости от результата действует так, как прописано в его программе (командной строке). Эта командная строка называется регулярным выражением (конструкция, задающая принципы поиска и обработки информации) . [6]

Регулярные выражения - это набор определенных знаков, с помощью которых можно описать информацию, которую нужно найти. Можно задать поиск по определенному слову (или набору слов), по принципу их размещения, по дате и т.д.

2.2 Аналитический обзор существующего ПО


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

Datacol

Datacol является одним из популярнейших парсеров. В нем сочетается удобство функционала, а также быстрая скорость обработки информации. Кроме того, немаловажным является то, что с помощью Datacol есть возможность парсить сайты без навыков программирования. [3]

Программа обладает рядом преимуществ. Рассмотрим их подробнее.

·        Наличие демо-версии.

На мой взгляд, это является одним из главных преимуществ. Скачав какой-либо другой платный парсер, мы не можем быть уверены, что он сможет выполнить все те задачи, которые мы перед ним ставим. Кроме того, иногда подобная программа требуется для применения всего один-два раза. У Datacol существует и платная и бесплатная версия (демо-версия). Конечно, возможностей у платной версии гораздо больше, но не всегда эти возможности необходимы. Иногда демо-версии бывает достаточно. Кроме того, можно использовать бесплатную версию для ознакомления с ПП, чтобы удостовериться в необходимости покупки. В данном случае, у полной версии следующие достоинства: доступ в закрытый раздел форума, платные консультации по использованию, заказ платных настроек, заказ платных плагинов и количество собранных данных не ограничивается (в демо-версии до 25 результатов). Цена на момент написания ВКР: от 459 руб./мес.

·        Универсальность.

Большинство парсеров пишется под конкретные сайты. В Datacol есть возможность парсить почти все необходимые сайты.

·        Помощь при настройке.

Не все пользователи, при первом запуске программы могут сразу разобраться в ее работе. На официальном сайте Datacol (#"896880.files/image001.jpg">

3.3 Система приоритетов при разработке ПП


Перед началом проектирования, требуется расставить приоритеты при разработке ПП. Это позволит обратить особое внимание на те части ПО, которые влияют на выполнение той или иной приоритетной задачи. Правильная расстановка приоритетов систематизирует весь процесс разработки и определяет выбор технологий. Расставим их в порядке уменьшения значимости.

·        Удобство ввода данных.

Важно, чтобы пользователю было удобно вводить информацию. Для этого мы предусмотрим использование шаблонов, которые будут загружаться в программу. Это позволит сократить время ввода (например, ввод участников кружка).

·        Время реакции системы

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

·        Масштабируемость системы.

Возможность неограниченного наращивания данных также необходимо учитывать в нашей разработке. Количество участников кружка постоянно возрастает, а значит, система должна с легкостью добавлять (или удалять) в шаблон новых людей. Согласно техническому заданию, ПП рассчитан на то, что их число не превышает 20 человек. Кроме того, предусмотрено добавление новых курсов, в состав которых входит определенный перечень задач. А также можно редактировать старые курсы: добавлять или удалять задачи, занесенные в него ранее.

·        Надежность системы.

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

·        Время разработки и внедрения системы.

Время внедрения данного ПП минимально. Необходимо лишь загрузить его на компьютер преподавателя (приложение не требует установки), заполнить шаблоны и он готов к использованию. Таким образом, максимальное время внедрения - 3 месяца. Срок возрастает в связи с тем, что занятия кружка прекращаются на летнее время.

4. Проектирование ПП

.1 Архитектура ПП


Программный продукт будет представлять собой Jar файл, с множеством классов. Программу представим в виде слоев:

·        Интерфейс программы.

·        Контроллер.

·        Внутренняя логика.

4.2 Выбор инструментальных средств разработки


Выбор среды программирования может существенно сказаться на эффективности работы. Существует большое разнообразие подобных сред, но наиболее подходящей, на мой взгляд, является IntelliJ IDEA. Она обладает рядом несомненных преимуществ.

·        Наличие бесплатной версии (Community Edition). При желании можно приобрести и платную (Ultimate).

·        Бесплатная версия содержит весь необходимый функционал (для начинающего разработчика). Благодаря чему она может считаться полноценной IDE (интегрированной средой разработки).

·        Это интуитивно понятная среда разработки, она проста в использовании.

·        IntelliJ IDEA поддерживает большинство современных технологий.

·        Нет перегруженности, среда использует минимум диалоговых окон и выводит пользователю только строго необходимую информацию.

·        Существование горячих клавиш, которые позволяют выполнить некоторые функции быстрее.

Кроме всего вышеперечисленного, IntelliJ IDEA является "умной средой". Она "догадывается" о намерениях пользователя, подсказывает и помогает ему в работе, тем самым экономит затраты времени и сил. Единственным ее минусом, на мой взгляд, является то, что для новичка в программировании будет сложно разобраться с системой разработки GUI (графического интерфейса пользователя). В качестве языка программирования, IntelliJ IDEA, как правило, использует Java. [8]

Для создания графического интерфейса будем использовать приложение JavaFX Scene Builder, которое обеспечивает визуальную среду разработки. Оно запускается прямо из IntelliJ IDEA и позволяет проектировать пользовательский интерфейс для JavaFX без кодирования. Выбирается компонент и перетаскиванием добавляется на экран. Кроме того, можно легко изменять его свойства, применять таблицы стилей, а также, что немаловажно, интегрировать полученный код с логикой приложения. Приложение помогает быстро и легко создать удобный пользовательский интерфейс.[7]- это современная библиотека для создания GUI на языке Java.. Она используется для создания настольных приложений, запускаемых непосредственно из-под операционных систем, для интернет-приложений (RIA), работающих в браузерах, и для приложений на мобильных устройствах. Данная библиотека вытесняет другую графическую библиотеку SWING (также написана на Java), становясь все более популярной. Она позволяет создавать впечатляющие интерфейсы программ, имеет хорошую документацию и легка в освоении. [9]

Для обработки HTML файлов будем использовать библиотеку Jsoup. Она позволяет манипулировать данными (читать, разбирать и модифицировать), используя методы JQuery, CSS и DOM. Для анализа библиотеке можно предоставлять URL, строку или файл. Jsoup достаточно часто обновляется и, что немаловажно, поддерживает HTML5.

Отладку осуществляем в специальном режиме Debug. В окне отладчика можно увидеть стек вызовов функций и потоков, их состояние. Если выбрать контекст вызова функции, то можно проследить значение переменных, относящихся к данной функции. У отладчика среды IntelliJ IDEA есть следующие полезные функции:

·        Умный переход.

При пошаговой отладке иногда есть необходимость перейти не к следующему по порядку методу, а к какому-то конкретному. Для этого и существует умный переход. Необходимо лишь нажать горячую клавишу и выбрать из списка тот, который нужен. Это позволяет экономить затраты времени и сил разработчика. [12]

Источник: https://www.bibliofond.ru/detail.aspx?id=896880