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





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

Методика применения предметно-ориентированного подхода





  1. Сбор требований к будущей системе: опрос заказчиков, экспертов в предметной области, будущих пользователей системы, наблюдение и протоколирование процессов, которые предполагается автоматизировать, формулировка и согласование требований к будущей системе в виде текстов, схем, диаграмм. Поиск и анализ необходимых справочных сведений о предметной области (сведений, которые при формулировке задачи эксперты считают само собой подразумевающимися). Данный шаг хорошо описан в работе (3) в главе 36 «Карьер для добычи требований».

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

  3. Отделение бизнес-политики (требований к системе зависящих от текущей ситуации) от постоянных требований (тех, которые не будут меняться на протяжении всего времени эксплуатации системы). Этот шаг также хорошо описан в работе (3)в главе 36 «Карьер для добычи требований».

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

  5. Выбор базового синтаксиса предметно-ориентированного языка. Предлагается использовать в качестве базы синтаксис существующего языка программирования. Это облегчит задачупри создании лексического и синтаксического анализатора ПОЯ, так как можно будет использовать уже отработанные схемы. Кроме того, использование для записи, например, формул уже отработанной системы записи формул может быть привычно для участников проекта. Выбор базового синтаксиса определяет общие правила оформления программна ПОЯ, которым надо будет в дальнейшем следовать (определяется, каким правилам должны следовать идентификаторы, объявления новых функций, формул, условий, комбинирования понятий предметной области). Программу на предметно-ориентированном языке можно представить в виде дерева понятий и их параметров, а базовый синтаксис нужен для выделения из текста узлов этого дерева. Кроме того, базовый синтаксис, задаёт:

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

    2. Правила проверки грамматической правильности предметно-ориентированной программы. Выявления неопределённых идентификаторов.

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

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

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

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

В процессе реализации появляется возможность тестирования получаемого программного продукта. Возникает следующая проблема: мы можем тестировать программу только когда она корректно компилируется. Получается, что этап тестирования откладывается до реализации всех понятий ПОЯ. Для устранения этой проблемы предлагается автоматически создавать пустые реализации (не порождающие кода) для всех элементов предметно-ориентированного языка и отмечать их как нереализованные. Затем начинать реализацию с самых вложенных элементов, не требующих для своей работы, другие элементы уже работали. Если выделение таких групп элементов вызывает затруднения, следует применить методику модульных (unit) тестов, которая описана в книге (4). При этом выделяются небольшие кусочки кода на предметно-ориентированном языке. Эти кусочки упрощаются до такой степени, чтобы программист чётко понимал, что должно в итоге получится (мог сам наглядно посчитать ответ) и по каждому из них пишется модульный тест. При реализации такого подхода повторяются 3 шага:

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

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

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

  4. Весь набор тестов выполняется успешно. Если же нет, то мы возвращается на шаг 3 и исправляем ошибки в коде генератора.

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

  6. Весь набор тестов выполняется успешно. Генератор кода снова находится в согласованном состоянии и содержит четко осязаемое улучшение по сравнению с предыдущим состоянием.


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

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
Поиск