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

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

}lastTdID = "name";[] taskNums = taskList.getAllTasks();(String task : taskNums) {newTd = createNewTemplateTd(task);.getElementById(lastTdID).after(newTd.toString());= task;

}

}void setThTemplate() {= table.getElementById("taskNum");.getElementById("taskNum").remove();

}void setTdTemplate() {= table.getElementById("td");.getElementById("td").remove();

}Element createNewTh(String taskNum) {newTh = headerTemplate.clone();.attr("id", taskNum);.html(taskNum);newTh;

}Element createNewResultRow(String id) {newRow = rowTemplate.clone();.attr("id", id);

}

}

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


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

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

·                                                                         Запрет ввода всех символов, кроме цифр в поля идентификаторов.

·        Запрет ввода всех символов, кроме цифр и разделителей в поля "Баллы", "Задачи".

·        Запрет ввода в поля "Дата" (только выбор из календаря).

При этом выполняются следующие проверки:

·                                                                         Соответствия количества баллов количеству задач.

·        Заполненности полей (кроме поля "Язык программирования").

·        Есть ли как минимум одна запись в каждой таблице.

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

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


Тестирование − это процесс выполнения программ или иная деятельность с программой и программными документами, осуществляемая в целях обнаружения факта наличия ошибок или аттестации программного продукта.[5]

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

Существует три стратегии тестирования по знанию внутренностей системы: "черный ящик", "белый ящик", а также комбинирование двух этих методов. Для нашей системы выберем стратегию "черного ящика" или тестирование с управлением по данным. Она обычно применяется для тестирования пользовательских интерфейсов. При этом требуется взаимодействие с системой: ввод данных и сбор результатов, но нет необходимости в знании ее внутреннего устройства. Цель такого тестирования - выяснить, при каких условиях и данных программа ведет себя не так, как прописано в спецификации. [11]

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

Функциональное тестирование включает следующие методы:

·        Эквивалентное разбиение.

Оно заключается в том, что все входные данные разбиваются на классы эквивалентности. Они объединяются по принципу того, что если набор какого-либо класса обнаруживает некоторую ошибку, то предполагается, что все другие тесты этого класса тоже обнаружат эту ошибку.

·        Анализ граничных значений.

Производится анализ значений, находящихся на границах классов эквивалентности. [11]

·        Анализ причинно-следственных связей.

В данном случае используется алгебра логики и понятия "причина" (входное условие, либо класс эквивалентности) и "следствие" (преобразование системы или выходное условие). Все следствия сопоставляются с причинами, уточняются причинно-следственные связи, строится таблица истинности с различными комбинациями причин.

·        Предположение об ошибке.

Он, как правило, используется программистами, обладающими большим опытом. Они составляют список возможных ошибок, которые могут быть не учтены при проектировании, а затем составляют тесты на основе этого списка. [11]

Для нашей системы рассмотрим следующий набор тестов.

Поле "идентификатор" (программа написана таким образом, что возможен ввод только цифр в поле):

·        Идентификатор участника должен быть положительным числом.

·        Идентификатор участника является отрицательным числом.

·        Идентификатора участника на сайте не существует.

·        Идентификатор не введен.

Поле "дата" (предусматривает выбор даты из календаря) :

·        Даты введены верно, есть промежуток между ними.

·        Даты перепутаны местами.

·        Введена одна и та же дата.

·        Дата не введена.

Поле "номера задач" (предусмотрен ввод только цифр):

·        Введены положительные номера задач.

·        Введены отрицательные номера задач.

·        Номер задачи не введен.

·        Номер задачи введен некорректно (несколько разделителей, лишний разделитель и т.д.).

Поле "язык программирования" (предусмотрен ввод языка только с заглавной буквы"):

·        Язык введен верно.

·        Язык введен не верно.

·        Ничего не введено.

Так как, для полей "сайт электронного архива задач" предусмотрен выбор из списка, то проведем следующие тесты.

·        Ничего не выбрано.

·        Выбран элемент списка.

Кроме того, у нас есть возможность загрузки шаблона участников и задач курса.

·        Загрузка пустого шаблона.

·        Загрузка шаблона некорректного формата.

·        Загрузка корректного шаблона.

Так как сайтов электронных архивов задач для отчета может быть несколько, логично добавить:

·        Не выбран ни один сайт для отчета.

·        Выбран один сайт.

·        Выбрано два разных сайта.

·        Выбрано два одинаковых сайта.

Чтобы протестировать поле "баллы" (предусмотрено только для сайтов #"896880.files/image003.jpg">

При необходимости можно отредактировать ее, дважды щелкнув на изменяемом поле.


После совершения изменений в поле нажмите "Enter".

Для сохранения списка участников откройте вкладку "Файл" и выберите "Сохранить список". Затем введите имя сохраняемого файла и укажите место сохранения.

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

Для загрузки уже сохраненного списка нажмите вкладку "Файл", а затем "Загрузить список". Выберите место и загружаемый файл.

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

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

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

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

Чтобы добавить задачи введите их номера в поле "Задачи" через запятую. Затем выберите сайт, с которого будет осуществляться сбор данных (#"896880.files/image007.jpg">

При необходимости можно отредактировать ее, дважды щелкнув на изменяемом поле.


После совершения изменений в поле нажмите "Enter".

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

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

Для загрузки уже сохраненного списка нажмите вкладку "Файл", а затем "Загрузить курс". Выберите место и загружаемый файл.

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

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

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

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

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


7.3.2 Поле "Язык"

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

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

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


Баллы для сайтов #"896880.files/image014.jpg">

При выборе сортировки по количеству решенных задач поле "Баллы" будет не активно.

7.4 Получение отчета

Для получения отчета нажмите кнопку "Получить отчет" и выберите место его сохранения. Затем откройте и оцените результаты.


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


·        Имя строки - имя участника кружка.

·        Имя столбца состоит из двух частей - название сайта, с которого собрана информация и номер задачи.

o   http://acm.timus.ru - "ti".

o   http://atpp.vstu.edu.ru - "at".

o   https://acmp.ru - "ac".

·        Последний столбец - "Место", в нем прописано место участника кружка в общем рейтинге.

·        Столбец "Баллы" показывает сумму баллов за решение всех задач, доступен только при сортировке по баллам.

·        Ячейка таблицы результатов может быть трех цветов:

o   Серая: нет решений за данный промежуток времени, но задача решена.

o   Зеленая: задача решена в заданный промежуток времени.

o   Красная: задача не решена.

·        Содержимое ячейки:

o   Число - количество попыток решения данной задачи за данный промежуток времени.

o   "+" - задача решена, "-" - задача не решена вообще.

Заключение

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

Разработанная программа полностью удовлетворяет требованиям функционала и расширяемости. Работа с ней интуитивно понятна. Она не требует установки, не требовательна к аппаратным ресурсам. Скорость обработки информации достаточно высокая (при быстром Интернет-соединении).

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

Программа может быть в дальнейшем модифицирована:

·        Добавлены новые сайты архивов задач.

·        Добавлены новые функции.

·        Доработан интерфейс, добавлены/удалены/заменены его элементы.

·        Увеличена скорость обработки информации.

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

1.      Сьерра, К. Изучаем Java / К. Сьерра, Б. Бейтс. - М. : Эксмо, 2015. - 720 c.

2.      Льюис, Д. Самоучитель Java 7: Пер. с нем. / Д. Льюис, П. Мюллер. - Санкт - Петербург: БХВ - Петербург, 2014. - 464 c.

3.      Datacol. Парсинг в интернете, 2011-2017 [Электронный ресурс]: офиц. сайт. - URL: http://web-data-extractor.net

4.      SBFactory - парсер контента, программа для наполнения интернет магазинов, 2017 [Электронный ресурс]: офиц. сайт. - URL: http://sbfactory.ru

5.      Сергушичева, А.П. Учебное пособие - Жизненный цикл программного продукта/ Сергушичева, А.П - Вологда: ВоГТУ, 2010. - 136с.

6.      Парсеры сайтов - что это такое?, 2014 [Электронный ресурс]: офиц. сайт. - URL : http://obzor-tyt.ru/parsery-sajtov-chto-eto-takoe

.        Software Informer, 2017 [Электронный ресурс] - URL : http://javafx-scene-builder.informer.com/2.0

.        Как просто! [Электронный ресурс] - URL : http://www.kakprosto.ru/kak-253156-kak-vybrat-java-ide

.        Википедия [Электронный ресурс] - URL : https://ru.wikipedia.org/wiki/JavaFX

.        Википедия [Электронный ресурс] - URL : https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D0%B8_%D1%87%D1%91%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D1%89%D0%B8%D0%BA%D0%B0

.        Методические рекомендации к выполнению лабораторной работы №6 "Методы тестирования" / Сост. А.П. Сергушичева. - Вологда: ВоГТУ, 2008. -31 с.

12.    Info.javarush [Электронный ресурс] -URL: http://info.javarush.ru/idea_help/2014/01/22/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-IntelliJ-IDEA-%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D1%87%D0%B8%D0%BA-.html

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