Диссертация (Методы и инструменты декларативного программирования динамических Web-узлов и приложений), страница 8
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и инструменты декларативного программирования динамических Web-узлов и приложений". PDF-файл из архива "Методы и инструменты декларативного программирования динамических Web-узлов и приложений", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "диссертации и авторефераты" в общих файлах, а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 8 страницы из PDF
Эти свойства должны быть либо явным образом указаныв программе на DSL, либо получены ею. Авторы работы наиболее детально анализируют методологию FODA (англ. Feature-Oriented Domain Analysis, особенностноориентированный анализ предметной области) [64]. Данная методологии подразумевает создание диаграммы особенностей, включающую общности (обязательные особенности) и разности (вариативные особенности). Модель методологии состоит из:– Диаграммы, отображающей иерархию особенностей и их характер: обязательные, вариативные, альтернативные;– Определения семантики особенностей;– Правил сочетания особенностей, описывающих какие сочетания являются допустимыми, а какие нет;Диаграмма особенностей наглядно отображает предметную область. Выявленныеобщности в последствии войдут в качестве встроенного функционала будущего язы-37ка, а разности, изменяющиеся во времени – в качестве примитивов, которыми будетоперировать разработчик на будущем языке.Тем не менее, диаграммы особенностей хороши больше при использовании на стадии проектирования, чем при анализе, т.к.
с помощью неё вариативность хотя и представляется достаточно наглядно, но, тем не менее, с потерей гибкости и простоты.Так, в работе [11] предлагается альтернатива – использование синтаксис-карт (англ. Syntax maps). Это легковесная нотация, предназначенная для мета-моделирования,позволяющая преобразовать конкретный синтаксис в классы абстрактного. И всё жетакая нотация тоже расположена ближе к проектированию. В работе [52] авторы вводят понятие «DSL-карты» (англ. DSL-maps), основанное на проверенном методе визуализации моделей – интеллект-картах (англ.
Mind maps). При этом снимается необходимость использования тяжеловесных и сложных нотаций, вроде UML [5]. В работе[71] интеллект-карты предлагается задействовать для сбора требований к программным системам с последующей автоматической транформацией в диаграмму классов.А в работе [72] данная техника апробирована, где показала хорошие характеристикипо затраченному времени.На DSL-карте отображаются основные требования к программным систем. На нейузлы представляют собой идеи. Корневая идея есть не что иное, как предметная область будущего языка. От корня обычно идут идеи, связанные с фундаментальными понятиями системы.
Рёбра на DSL-картах бывают двух типов: иерархические иссылочные. Иерархические рёбра соединяют родителей с потомками, образуя, такимобразом, дерево. Каждое такое ребро интерпретируется, как уточнение родительскойидеи с помощью потомков. Иерархические рёбра могут иметь поясняющие подписи освоих связях. Ссылочные рёбра могут соединять идеи из различных ветвей DSL-картыи тоже могут иметь подписи.
В то время, как иерархические ребра дробят основнуюидею на более мелкие, уточняющие детали, ссылочные рёбра показывают интероперабельность между различными ветвями карты. Авторы [52] также отмечают, что спомощью инструментальных средств DSL-карты могут быть преобразованы в вид,пригодный для использования на стадии проектирования.1.3.4Требования к стадии проектированияПодходы к проектированию DSL могут характеризоваться двумя параллельныминаправлениями: отношением разрабатываемого DSL к существующим языкам и фор-38мализованной природой проектного описания.
Это разделение отражено в таблице1.3.Таблица 1.3. Подходы проектированияПодходИспользованиеязыкаОписаниеРазрабатываемый DSL задействует уже существующие языки GPL или DSL. Важные субподходы:– Комбинированный: существующий язык частично задействован– Специализированный: существующий язык используется ограниченно– Расширяющийся: существующий язык расширен.Изобретение языкаНеформальнаяФормальнаяЯзык был спроектирован «с нуля» без каких-либо общих сущностей с существующими языками.Язык описан неформальным образом.Язык описан формальным образом с использованиемсуществующих методов описания семантики, такихкак грамматические атрибуты и абстрактные автоматы.Самым простейшим способом проектирования DSL является его базирование науже существующем языке.
Возможным преимуществом может послужить упрощённое внедрение, а также знакомые конструкции для пользователей. Хотя последнеесправедливо только в том случае, если пользователи также являются программистамина существующих языках. Существуют три модели проектирования DSL с использованием существующего языка. Первая — комбинированная — заимствует специфичныеособенности предметной области уже существующего языка.
Похожая модель ограничивает использование существующего языка и ориентирована на специализацию,сосредоточенную вокруг предметной области разрабатываемого DSL. Различие между этими двумя подходами зависит от того, насколько жёсткий установлен барьермежду DSL и остальной частью уже существующего языка. В любом случае, эти дваподхода используются тогда, когда нотация DSL уже широко известна. К примеру,многие DSL содержат арифметические выражения, как правило, написанные в инфиксной форме.39Другой подход заключается в том, что за основу берётся уже существующий язык ирасширяется новыми возможностями в понятиях своей предметной области. В большинстве случаев, существующие возможности языка также остаются доступными.Задача, решаемая в рамках этого подхода, состоит в том, чтобы безболезненно интегрировать необходимый предметно-ориентированный функционал.С другой стороны, DSL может быть таким, что его прототип не будет иметь никакого отношения ни к одному из существующих языков.
На практике, разработкатакого типа DSL может быть очень сложной задачей. Широко-известные принципыразработки языков общего назначения такие, как читабельность, простота и ортогональность, перечисленные в [49], актуальны и в предметно-ориентированных языках.Тем не менее, проектировщик должен понимать специализацию своего DSL а такжетот факт, что пользователи языка не обязательно должны быть программистами. После того, как отношение к существующим языкам определена, проектировщик DSLдолжен обратить внимание на спецификацию своего языка до стадии реализации.Различают формальное и неформальное проектирование.
В неформальном проектировании спецификация представляется на естественном языке, иногда включая набориллюстрирующих DSL программ. Формальное проектирование включает написаниеспецификаций, используя семантически-определённые методы. Наиболее часто подпонятием подразумеваются регулярные выражения и грамматики для спецификациисинтаксиса, а также атрибутные грамматики, абстрактные автоматы для семантической спецификации.Несомненно, неформальный подход предпочтителен для большинства людей, однако формальный подход нельзя сбрасывать со счетов. Разработка формального описания как синтаксиса, так и семантики может выявить проблемы до того, как DSLбудет внедрён на практике.1.3.5Требования к стадии внедренияКогда DSL уже разработан, необходимо выбрать наиболее подходящий подходвнедрения.
Возможно, это очевидно, но на практике это не так, т.к. многие методикивнедрения DSL несовместимы с методиками внедрения языков общего назначения.Эти методики, характерные для DSL, менее известны, но могут оказать большую помощь при разработке языка. В таблице 1.4 показаны подходы внедрения.40Таблица 1.4. Подходы внедренияПодходИнтерпретаторКомпилятор/ генератор приложенияПрепроцессорОписаниеКонструкции DSL распознаются и интерпретируются с использованием стандартного цикла «получитьраскодировать-исполнить».
Этот подход предпочтителен для языков, где скорость исполнения не является решающим фактором. Преимущества перед компиляцией — повышенная простота, хорошее управлениесредой выполнения и лёгкая расширяемость.Конструкции DSL транслируются в базовые языковыеконструкции и библиотечные вызовы. Полный статический анализ может быть выполнен в программе/спецификации DSL.
Компиляторы DSL также называются генераторами приложений.Конструкции DSL транслируются к конструкциямуже существующего базового языка. Статическийанализ проводится только процессингом кода базового языка. Важные субподходы:– Макропроцессинг: макроопределения расширены.– Преобразование «исходник-исходник»: исходный код на DSL преобразовывается (транслируется) в код на базовом языке.– Лексическая обработка: требуется только простейший обход лексем без сложного синтаксического анализа.ВстраиваниеРасширяемыйкомпилятор/интерпретаторГибридныйКонструкции DSL встраиваются в уже существующийязык общего назначения, определяя новые абстрактные типы данных и операторы. Прикладные библиотеки являются основной формой этого подхода.Компилятор языка общего назначения расширен специфичной для предметной области кодогенерацией. Вто время, как интерпретаторы, как правило, легко расширяемы, расширение компиляторов затруднительно,если в них нет технологического задела для этого.Комбинация всех вышеперечисленных случаев.На этом этапе особенно большое внимание уделяется переиспользованию существующего программного кода на языке общего назначения.
Даже на базе C++ присутствует механизм преобразования, реализуемый в шаблонах411.4Выводы по первой главеВ главе проведён обзор инструментов и технологий Web-разработки. Представлено сравнение существующих парадигм программирования, применимость языковобщего назначения (GPL) и предметно-ориентированных (DSL), показано место декларативных языков в отрасли, предложена гипотеза о применении декларативныхязыков на серверной стороне. Рассмотрены этапы формирования нового предметноориентированного языка.1.4.1Постановка цели и задач исследованияВ рамках выполнения диссертационной работы требуется уточнение и структуризация предмета исследования.
Исходя из вышеизложенного, большинство задач,решаемых в рамках Web-разработки можно свести к следующим типам:– Манипуляция с данными;– Авторизация пользователя и разграничение прав доступа к данным;– Клиент-серверное взаимодействие;– Конечное представление данных.Таким образом, исходя из вышеизложенного, требуется разработка языка, выполняющего вышеуказанные задачи. При этом данный язык должен отличаться низкимпорогом вхождения и возможностью быстрого освоения.
Именно по этой причиненаилучшим решением является разработка предметно-специфичного декларативногоязыка с элементами визуализации. При этом это будет самостоятельный интерпретируемый язык без привязки к существующим языкам.42Глава 2Разработка методикидекларативногопрограммирования Web-узлов иприложений2.1Разработка структуры методики и выявление базовых компонентовИсходя из исследований предметной области, проведённых в первой главе, комплекс задач на серверной части, требующих детального анализа и поиска эффективного решения, сводится к следующим:– Манипуляция данными– Валидация данных– Авторизация и разграничение прав доступа пользователей– Сопоставление запрошенного адреса URI динамической страницеБыла поставлена задача разработки новой методики построения логики работысерверной части в области Web-разработки, основанной на высокоуровневых сущностях и гармоничном распределении уровней абстракции между этими сущностями.43Становится понятно, что данная методика должна обладать высоким уровнем гибкости, низким порогом вхождения, высокой скоростью разработки.