Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов





Скачать 356.11 Kb.
НазваниеИспользование предметно-ориентированных языков для повышения продуктивности создания программных продуктов
страница3/3
Дата публикации19.08.2013
Размер356.11 Kb.
ТипОбзор
100-bal.ru > Математика > Обзор
1   2   3

Сайт российского отделения Кенгуру


Рассмотрим применение вышеописанной методики на примере разработки сайта для российского отделения школьной математической олимпиады Кенгуру. В процессе работы с заказчиками – представителями оргкомитета олимпиады было составлено следующее техническое задание.

Необходимо разработать портал для проведения тестирования и оценки результатов тестирования.

Название сайта: “Портал олимпиады” Кенгуру для проведения тестирования и оценки результатов тестирования.

Технические характеристики

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

Тип приложения:Web

Язык серверной части: PHP

Языки клиентской части: HTML, CSS, JavaScript

Язык работы с БД: MySQL

Дизайн: только для удобства отладки

Составим Глоссарий проекта

Условия задач - PDF файл с условиями задач, напечатанный вариант выдается ученикам на время тестирования. В условии задач имеется набор задач, разбитых на несколько групп для удобства восприятия.

Условия задач: PDF-файл, на которой ссылка хранится в БД, его может загружать (обновлять) администратор сайта, вставлять ссылку на него на страницы участников и учителей. Файл может быть один или один за какой-то период (месяц, год, год и класс).

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

Тег: пометка для задачи, характеризующая умение, которое требуется для решения задачи

Атрибуты тэга:

  • id – идентификатор тэга

  • Название – непустая строка

Сопоставление тэгов и задач – без атрибутов (либо есть, либо нет). Такое сопоставление будет преобразовано в таблицу в БД состоящую из 2 столбцов id тега и id задачи, причём повторяющиеся строки запрещены.

Для редактирования используется таблица с пересечением Тегов и Задач, в каждой клеточке сначала пусто, при первом шелчке появляется “+”, при следующем опять пусто и т.д.

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

Правильный ответ - атрибут сущности “Условия задач”.

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

В интерфейсе администратора создаётся поле ввода с маской “Правильный ответ”, которое позволяет вводить только буквы ДН, разбивает их на группы, загружает текущее состояние и сохраняет после редактирования в БД.

Введём элемент предметно-ориентированного программирования MaskEdit с параметром разрешённые буквы - “ДН”.

Ответ ученика - строка из букв ДНх (да / нет / нет ответа). Количество букв совпадает с количеством задач в условии. Для удобства ввода и восприятия при отображении ответа ученика он разбивается на несколько групп, совпадающих с группированием задач в условии.

Ответ ученика - атрибут сущности “Ученик”.

В интерфейсе учителя для каждого ученика будет использоваться MaskEdit с параметром “ДНх”.

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

Класс соответствует учителю – отношение 1:1.

Ученик входит в класс (для ученика хранится id учителя).

Таблица результатов - содержит информацию о результатах решения задач в одном классе. В таблице построчно содержится информация о каждом ученике:

  1. Фамилия и имя

  2. Набранные баллы

  3. Оценка "удовлетворительно", "хорошо", "отлично"

  4. Для каждого из тегов выводится процент решенных задач с этим тегом

  5. Список ответов ученика

Эта же информация выводится отдельной строкой для среднестатистического ученика
Режимы на сайте - для учителя сайт может находится в одном из трех режимов

  1. Ввод списка учеников и решений (ответов) учеников.  В этом режиме учитель настраивает список учеников, которые участвуют в тестировании, и вводит данные ими ответы

  2. Обработка результатов. В этом режиме учитель видит только текст "Подождите, результаты вычисляются, оглашение произойдет в такой-то момент времени"

  3. Таблицы результатов. В этом режиме учитель видит таблицу результатов.

Роли на сайте

  1. Незарегистированныйучастик

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

      1. ФИО

      2. Логин. Произвольный набор символов, это не email. Подтверждения регистрации не высылаются

      3. Пароль и подтверждение пароля

      4. Email - для восстановления пароля и для обратной связи. Разные логины могут иметь одинаковыйemail

      5. Название или номер школы (в произвольной форме)

      6. Название класса (в произвольной форме)

    2. авторизируется, при этом он становится Учителем или Администратором

    3. просит выслать забытый пароль на e-mail. При этом высылаются все пароли, связанные с данным e-mail

  2. Учитель

    1. cкачивает PDF с условием задачи

    2. редактирует список имен учеников. Добавляет, удаляет, изменяет имена. В имени учитель вводит ФИО или ФИ, на свое усмотрение.

    3. редактирует ответы учеников

    4. смотрит таблицу результатов и печатает её (HTML с CSS-файлом для печати). Над таблицей результатов приведена дополнительная информация такая как правильные ответы к задачам, пояснения к тегам и другие организационные данные

  3. Администратор

    1. закачивает новый файл с условием задачи (*) 

    2. вводит список правильных ответов

    3. редактирует тексты на страницах, которые видит учитель (*)

    4. выкачивает в формате CSV (текстовый файл со значениями разделёнными ";") всю информацию о классах и ответах, данных учениками. Формат CSV описан в отдельном разделе

    5. Настраивает параметры для таблицы результатов:

      1. количество задач, и разбиение их на группы

      2. балл, начиная с которого выставляется оценка "отлично", "хорошо", "удовлетворительно". Это три целых числа

      3. список тегов с описаниями (возможно добавлять теги, удалять, редактировать имя)

      4. таблица тегов и соответствующих им задач

Действия администратора, помеченные (*) могут выполняться напрямую через ftp хостинга, без поддержки в веб-интерфейсе системы.

Формат файла с извлеченной из базы информацией

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

Первый CSV-файл содержит информацию об учителях. В каждой строке содержится информация:
[Номер учителя];[Логин];[ФИО];[E-mail];[Школа];[Класс]
Второй CSV файл содержит информацию об учениках и их решениях
[Номер ученика];[Имя];[Ответ - строка символов ДНх без пробелов];[Номер учителя]
Журнал в журнале

Система динамической геометрии
1. Собираем требования к будущей системе

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

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

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

Примеры геометрических задач на построение:

  • Дан треугольник, построить вписанную в него окружность.

  • Дан треугольник, построить описанную вокруг него окружность.

  • Дан выпуклый многоугольник, построить вписанную в него окружность.

  • Даны 3 касающиеся друг друга окружности, найти вписанную окружность, касающуюся 3-х данных.

2. Создание глоссария проекта

Общие понятия:

  • Задача на построение – задача имеет атрибуты:

    • Условие для ученика – текст условия, который будет показан ученику.

    • Дано – чертёж с начальным построением, на котором все объекты поименованы, чтобы на них можно было ссылаться в формальном условии

    • Построить – перечислены объекты, которые должен по условию задачи построить ученик;

    • Такие что – перечислены свойства, которыми эти объекты должны обладать.

    • Используя – перечислены инструменты (возможности программы), которые может использовать ученик при решении задачи.

Объекты для задач связанных с геометрией на плоскости (планиметрией):

  • Точка – задаётся 2 уравнениями , где и координаты точки;

  • Прямая – задаётся уравнением , конкретная прямая определяется тремя коэффициентами . Перпендикуляр к данной прямой ;

  • Отрезок – задаётся координатами вершин.

  • Луч – задаётся координатами точки начала и координатами одной точки лежащей на луче.

  • Окружность – задаётся уравнением , конкретная окружность определяется тремя коэффициентами . Две окружности одинаковы при совпадении всех коэффициентов.

  • Круг – задаётся неравенством , определяется и сравнивается как окружность.

  • Прямоугольник – задаётся координатами 4 вершин, сравниваются с точностью до перестановки вершин.

  • Треугольник– задаётся координатами 3 вершин.

  • Многоугольник

Предикаты:

  • Равенство” – для некоторых объектов (например, для точек) проверяется сравнением коэффициентов, для других же объектов (например, прямых), нужна специальная процедура сравнения.

  • Перпендикулярность” – отношение проверяемое для прямых или отрезков как равенство скалярного произведения соответствующих векторов нулю.

  • Параллельность” – можно применить только к прямым. У двух параллельных прямых заданных уравнениями вида коэффициенты и должны быть пропорциональны, т.е. удовлетворять уравнению

  • Пересечение” – два геометрических объекта имеют хотя бы одну общую точку.

  • Касание” – два геометрических объекта имеют ровно 1 общую точку.

  • Вписанная” (окружность) – окружность максимально возможного радиуса, расположенная внутри фигуры и касающаяся окружности.

  • Описанная” (окружность) – окружность минимально возможного радиуса, расположенная так, что фигура располагается целиком внутри и касается окружности.

  • Прямоугольный” (треугольник) – вид треугольника, у которого один из углов прямой

Инструменты

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

  • Линейка без делений – можно строить прямые, проходящие через 2 точки, а также отрезки от точки до точки, а также строить касательные к окружности проходящие через заданную точку.

  • Линейка с делениями – можно измерять расстояния и откладывать произвольные расстояния от произвольных точек (расстояния вводятся).

  • Угольник – можно построить перпендикуляр к прямой или отрезку в заданной точке

3. Отделение бизнес-политики (требований к системе зависящих от текущей ситуации) от постоянных требований

Рассмотрим требование: “в системе должен быть вход для учителя с паролем и для ученика (без пароля)”. Это требование, скорее всего, со временем изменится, появится несколько учеников и учителей, нужно будет ввести пароль для ученика. Так что это требование можно отнести скорее к бизнес-правилу.

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

При установке создаётся два пользователя:

  • пользователь с ролью учитель, именем teacher и паролем

  • пользователь по умолчанию с ролью ученик, именем student и без пароля.

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

4. Выделение из постановки задачи на естественном языке элементов предметно-ориентированного языка

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

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

Дано: треугольникX

Построить: окружностьP

Такие что:P вписано в X.

Инструменты: циркуль, линейка без делений

5. Выбор базового синтаксиса предметно-ориентированного языка.

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

Внутрь ячейки Задачавложены ячейки:

  • Условиедля ученика, в которую вложены две ячейки:

    • с константной строкой “Условие для ученика”

    • строкой для редактирования условия задачи.

  • Данос вложенным списком ячеек с начальным построением. Эта ячейка заполняется при помощи графического редактора, в котором можно сделать начальное геометрическое построение, текст в ячейке появляется автоматически при построении чертежа. Прямо на чертеже можно давать объектам имена.

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

  • Такие что, в которой можно выбирать предикаты из глоссария и выбирать объекты (либо на чертеже, либо имя объекта из выпадающего списка) по отношению к которым надо применить данный предикат.

  • Инструменты, в которую можно добавлять и удалять элементы из глоссария “инструменты”.

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

Описание задачи хранится в древовидной структуре данных в памяти и преобразуется в XML-формат при сохранении на диск (один из стандартных подходов).

Названия и свойства конкретных понятий будут в описании древовидной структуры данных, которая сама будет описана на языке Java. Для описания названия понятия из глоссария введём специальный атрибут GlossaryName. Для определения принадлежности к определённому типу понятий будет существовать несколько базовых абстрактных классов:

GeomObject – геометрический объект на плоскости;

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

Tool – базовый класс для всех инструментов.

6. Перевод постановки задачи с естественного языка на предметно-ориентированный язык.

На этом этапе создаются пустые объявления (так называемые “заглушки”) для всех необходимых классов и методов. Затем происходит реализация общего механизма редактирования, показывающего окно для ввода задачи, и позволяющего вводить, на первом этапе, строку с условием задачи. Затем реализуется механизм связи с механизмом построения чертежей, чтобы при выборе фигуры на чертеже её имя добавлялось в текущую активную ячейку в условии задачи. Этот механизм будет использоваться при добавлении фигур в ячейку “дано” и при составлении предикатов.

Во всех ячейках устроенных как вложенные клетки показывается специальная пустая ячейка в которую можно записать.

Дальше для реализации применяется метод “разработка управляемая тестами” рассмотренный в разделе методика.

Дальнейшие шаги


Развитие системы.
    1. Список литературы (библиография)


  1. (5)

  2. Дмитрий Кириллов. Ориентация на язык //Компьютерра (14 марта 2006)http://www.rsdn.ru/article/philosophy/LOP.xml

  3. (6)

  4. M. Ward. Language Oriented Programming. Software - Concepts and Tools, 15, 147-161  1994, http://www.dur.ac.uk/martin.ward/martin/papers/middle-out-t.pdf

  5. ЛайзаКриспин, ДжанетГрегори Гибкое тестирование: практическоеруководстводлятестировщиков ПО и гибких команд = Agile Testing: A Practical Guide for Testers and Agile Teams. — М.: «Вильямс», 2010. — 464 с. — (Addison-Wesley Signature Series). — 1000 экз. — ISBN 978-5-8459-1625-9

  6. Кент Бек. Экстремальное программирование: разработка через тестирование. — «Питер», 2003. ISBN 5-8046-0051-6, ISBN 0-321-14653-0

  7. Александров А.Д., Вернер А. Л., Рыжик В. И., Ходот Т.Г. Геометрия. 7-9 класс: учебник для общеобразовательных школ. – СПб: Просвещение. – 2003 – 272 с.

  8. DomainSpecificLanguage в своем приложении - это просто – http://igor.quatrocode.com/2008/10/domain-specific-language.html



Список литературы


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   2   3

Похожие:

Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconКомпьютерное тестирование
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconТест «Компьютерная грамотность»
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconОбразовательная программа «Школьный университет»
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconТема: Алюминий и его соединения
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconРуководство пользователя стр. Содержание
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconС. В. Ахмадуллиной (должность, Ф. И. О., ученая степень, звание автора(ов) программы)
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconЗадание к лабораторной работе №1 по дисциплине «Специальные разделы информатики» Выбор
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconОсобенности хранения и шифрования данных в web-системах обработки информации
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconМосковский государственный университет экономики, статистики и информатики...
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconТесты по предметам школьной программы, вузовским дисциплинам, тесты...
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconПроектирование подсистемы «Тестовые задания» учебного ресурса по...
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconКоличество заданий в тест-билете – 9 Количество вариантов тест-билетов...
На данный момент существует достаточно большое количество программных продуктов для создания тестовых и контролирующих заданий. Обзор...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconПлан проведения мероприятий на Предметной неделе мо учителей естественных...
Мо учителей естественных наук и мо учителей предметно – ориентированных дисциплин
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconИспользование спо на уроках информатики
Что, впрочем, и понятно: пока есть возможность использования привычных программных продуктов переход к другой ос, другим пакетам...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconСодержание Введение 6 Положения, выносимые на защиту 13 Глава Обзор...
Структура и объем диссертации. Диссертация состоит из 120 страниц текста, содержит введение, четыре главы, заключение, список литературы...
Использование предметно-ориентированных языков для повышения продуктивности создания программных продуктов iconКонспект урока по биологии с мультимедийной поддержкой Тема урока...
Тема урока: «Искусственные системы. Агроценозы, факторы повышения их продуктивности»


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск