Скачать 356.11 Kb.
|
Сайт российского отделения КенгуруРассмотрим применение вышеописанной методики на примере разработки сайта для российского отделения школьной математической олимпиады Кенгуру. В процессе работы с заказчиками – представителями оргкомитета олимпиады было составлено следующее техническое задание. Необходимо разработать портал для проведения тестирования и оценки результатов тестирования. Название сайта: “Портал олимпиады” Кенгуру для проведения тестирования и оценки результатов тестирования. Технические характеристики Разрабатываемая система является веб-приложением, реализуется на языке PHP с использованием базы данных MySQL. Система не имеет оформления, т.е. таблицы стилей для генерируемых веб страниц создаются только чтобы задать расположение элементам, удобное для целей отладки. Тип приложения:Web Язык серверной части: PHP Языки клиентской части: HTML, CSS, JavaScript Язык работы с БД: MySQL Дизайн: только для удобства отладки Составим Глоссарий проекта Условия задач - PDF файл с условиями задач, напечатанный вариант выдается ученикам на время тестирования. В условии задач имеется набор задач, разбитых на несколько групп для удобства восприятия. Условия задач: PDF-файл, на которой ссылка хранится в БД, его может загружать (обновлять) администратор сайта, вставлять ссылку на него на страницы участников и учителей. Файл может быть один или один за какой-то период (месяц, год, год и класс). Теги - пометка для задачи, характеризующая умение, которое требуется для решения задачи. Теги имеют названия, например "задача на вычисления". Каждая задача помечается несколькими тегами. Сопоставление тегов и задач происходит в виде таблицы, в ее строках написаны теги, по столбцам - задачи, и в ячейке ставится плюс, если задаче соответствует тег Тег: пометка для задачи, характеризующая умение, которое требуется для решения задачи Атрибуты тэга:
Сопоставление тэгов и задач – без атрибутов (либо есть, либо нет). Такое сопоставление будет преобразовано в таблицу в БД состоящую из 2 столбцов id тега и id задачи, причём повторяющиеся строки запрещены. Для редактирования используется таблица с пересечением Тегов и Задач, в каждой клеточке сначала пусто, при первом шелчке появляется “+”, при следующем опять пусто и т.д. Правильный ответ - строка из букв ДН. Количество букв совпадает с количеством задач в условии, для удобства ввода и восприятия при отображении правильного ответа он разбивается на несколько групп, совпадающих с группированием задач в условии. Правильный ответ - атрибут сущности “Условия задач”. Строка, которая при изменении своего значения проверяет, что в неё входят только буквы ДН. В интерфейсе администратора создаётся поле ввода с маской “Правильный ответ”, которое позволяет вводить только буквы ДН, разбивает их на группы, загружает текущее состояние и сохраняет после редактирования в БД. Введём элемент предметно-ориентированного программирования MaskEdit с параметром разрешённые буквы - “ДН”. Ответ ученика - строка из букв ДНх (да / нет / нет ответа). Количество букв совпадает с количеством задач в условии. Для удобства ввода и восприятия при отображении ответа ученика он разбивается на несколько групп, совпадающих с группированием задач в условии. Ответ ученика - атрибут сущности “Ученик”. В интерфейсе учителя для каждого ученика будет использоваться MaskEdit с параметром “ДНх”. Класс - несколько учеников, для которых учитель единовременно проводит тестирование. При регистрации на сайте одна регистрация соответствует одному классу. Статистика по решенным задачам вычисляется и выводится для всех классов независимо. Класс соответствует учителю – отношение 1:1. Ученик входит в класс (для ученика хранится id учителя). Таблица результатов - содержит информацию о результатах решения задач в одном классе. В таблице построчно содержится информация о каждом ученике:
Эта же информация выводится отдельной строкой для среднестатистического ученика Режимы на сайте - для учителя сайт может находится в одном из трех режимов
Роли на сайте
Действия администратора, помеченные (*) могут выполняться напрямую через ftp хостинга, без поддержки в веб-интерфейсе системы. Формат файла с извлеченной из базы информацией Вся обработка результатов тестирования производится вне разрабатываемой системы, для передачи информации из Базы Данных используется два файлы в формате CSV, т.е. таблицы со значениями в строках, разделенных символами точка с запятой. Первый CSV-файл содержит информацию об учителях. В каждой строке содержится информация: [Номер учителя];[Логин];[ФИО];[E-mail];[Школа];[Класс] Второй CSV файл содержит информацию об учениках и их решениях [Номер ученика];[Имя];[Ответ - строка символов ДНх без пробелов];[Номер учителя] Журнал в журнале Система динамической геометрии 1. Собираем требования к будущей системе Для формулировки геометрических задач в языке должны присутствовать геометрические примитивы и отношения между ними. С точки зрения аналитической геометрии все геометрические объекты задаются одним или несколькими уравнениями и, возможно, каким-то количеством неравенств. Для объектов конкретного типа уравнения и неравенства заданы в общей форме. Конкретный объект определяется его типом (например, точка, прямая, отрезок, луч) и значениями коэффициентов уравнений и / или неравенств. Условие задачи должно быть написано как на предметно-ориентированном языке для автоматической проверки решения учащегося в создаваемой системе, так и на естественном языке для отображения учащемуся (дело в том, что восприятие даже на предметно-ориентированном языке затруднено). В системе должен быть вход для учителя с паролем и для ученика (без пароля). Примеры геометрических задач на построение:
2. Создание глоссария проекта Общие понятия:
Объекты для задач связанных с геометрией на плоскости (планиметрией):
Предикаты:
Инструменты
3. Отделение бизнес-политики (требований к системе зависящих от текущей ситуации) от постоянных требований Рассмотрим требование: “в системе должен быть вход для учителя с паролем и для ученика (без пароля)”. Это требование, скорее всего, со временем изменится, появится несколько учеников и учителей, нужно будет ввести пароль для ученика. Так что это требование можно отнести скорее к бизнес-правилу. А постоянное требование будет звучать так: должна быть система авторизации пользователей с двумя ролями: ученики и учителя. Для роли можно установить параметр – требуется ли пароль для входа. По-умолчанию для роли учитель нужен пароль, а для роли ученик – нет. Также можно задать пользователя по умолчанию, все данные которого при загрузке системы будут уже введены. При установке создаётся два пользователя:
Теперь требование описывает более гибкую систему, готовую к изменениям этого пункта бизнес-политики. 4. Выделение из постановки задачи на естественном языке элементов предметно-ориентированного языка Прежде всего, в предметно ориентированном языке будут использоваться понятия из глоссария, и они будут скомпонованы внутри понятия задача: Условие для ученика:Дан треугольник, построить вписанную в него окружность пользуясь только циркулем и линейкой. Дано: треугольникX Построить: окружностьP Такие что:P вписано в X. Инструменты: циркуль, линейка без делений 5. Выбор базового синтаксиса предметно-ориентированного языка. При редактировании предметно-ориентированная программа выглядит как набор вложенных прямоугольных ячеек для редактирования. Ячейка, которая включает в себя все остальные соответствует задаче. Внутрь ячейки может быть вложен список ячеек определённого типа и дерево ячеек (в дереве родительский узел контролирует возможные типы вложенных ячеек). Внутрь ячейки Задачавложены ячейки:
Поскольку задача сразу же хранится в памяти в виде дерева, этап лексического разбора текста отсутствует. Описание задачи хранится в древовидной структуре данных в памяти и преобразуется в XML-формат при сохранении на диск (один из стандартных подходов). Названия и свойства конкретных понятий будут в описании древовидной структуры данных, которая сама будет описана на языке Java. Для описания названия понятия из глоссария введём специальный атрибут GlossaryName. Для определения принадлежности к определённому типу понятий будет существовать несколько базовых абстрактных классов: GeomObject – геометрический объект на плоскости; Predicate – базовый класс для всех предикатов, каждый предикат должен сообщать к каким классам объектов он применим. Для описания применимости то или иного предиката по отношению к определённому геометрическому объекту; Tool – базовый класс для всех инструментов. 6. Перевод постановки задачи с естественного языка на предметно-ориентированный язык. На этом этапе создаются пустые объявления (так называемые “заглушки”) для всех необходимых классов и методов. Затем происходит реализация общего механизма редактирования, показывающего окно для ввода задачи, и позволяющего вводить, на первом этапе, строку с условием задачи. Затем реализуется механизм связи с механизмом построения чертежей, чтобы при выборе фигуры на чертеже её имя добавлялось в текущую активную ячейку в условии задачи. Этот механизм будет использоваться при добавлении фигур в ячейку “дано” и при составлении предикатов. Во всех ячейках устроенных как вложенные клетки показывается специальная пустая ячейка в которую можно записать. Дальше для реализации применяется метод “разработка управляемая тестами” рассмотренный в разделе методика. Дальнейшие шагиРазвитие системы.
Список литературы1. Кириллов, Дмитрий.Ориентация на язык // Компьютерра (14 марта 2006). 2006. 2. Языково-ориентированное программирование: следующая парадигма. Дмитриев, Сергей. 5, Санкт-Петербург : RSDN Magazine, 2005 г. 3. Эндрю Хант, Дэвид Томас.Программист-прагматик. Путь от подмастерья к мастеру. Санкт-Петербург : "Питер Пресс", 2007. 4. Бек, Кент.Экстремальное программирование: разработка через тестирование. Санкт-Петербург : Питер, 2003. 5-8046-0051-6, 0-321-14653-0. 5. Себеста, Роберт У.Основные концепции языков программирования // = Concepts of Programming Languages / Пер. с англ. Москва : Вильямс, 2001. ISBN 5-8459-0192-8 (рус.), ISBN 0-201-75295-6 (англ.). 6. Literate programming. E., Knuth Donald.б.м. : The Computer Journal, 27, 97-111, May 1984., 1984 г. 7. Языково-ориентированное программирование: следующая парадигма. Дмитриев, Сергей. 1Рефакторинг – улучшение структуры программного проекта без изменения его функций (например, изменение названий модулей на более подходящие по смыслу) 2 Реинжиниринг – переосмысление, перепроектирование и переписывание программного кода 3GWT – GoogleWebToolkit - |
Компьютерное тестирование На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | Тест «Компьютерная грамотность» На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | ||
Образовательная программа «Школьный университет» На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | Тема: Алюминий и его соединения На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | ||
Руководство пользователя стр. Содержание На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | С. В. Ахмадуллиной (должность, Ф. И. О., ученая степень, звание автора(ов) программы) На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | ||
Задание к лабораторной работе №1 по дисциплине «Специальные разделы информатики» Выбор На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | Особенности хранения и шифрования данных в web-системах обработки информации На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | ||
Московский государственный университет экономики, статистики и информатики... На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | Тесты по предметам школьной программы, вузовским дисциплинам, тесты... На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | ||
Проектирование подсистемы «Тестовые задания» учебного ресурса по... На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | Количество заданий в тест-билете – 9 Количество вариантов тест-билетов... На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор... | ||
План проведения мероприятий на Предметной неделе мо учителей естественных... Мо учителей естественных наук и мо учителей предметно – ориентированных дисциплин | Использование спо на уроках информатики Что, впрочем, и понятно: пока есть возможность использования привычных программных продуктов переход к другой ос, другим пакетам... | ||
Содержание Введение 6 Положения, выносимые на защиту 13 Глава Обзор... Структура и объем диссертации. Диссертация состоит из 120 страниц текста, содержит введение, четыре главы, заключение, список литературы... | Конспект урока по биологии с мультимедийной поддержкой Тема урока... Тема урока: «Искусственные системы. Агроценозы, факторы повышения их продуктивности» |