Модули и библиотеки системы, Средства разработки, Javaparser - Система автоматизированного разделения кода прикладных программ
Средства разработки
В качестве целевого языка программирования была выбрана Java из-за ее распространенности.
Данная система разделения кода также написана на Java.
Для семантического разбора исходного кода была выбрана библиотека Javaparser, особенности которой описаны в разделе 3.2.
Сборка клиентского и серверного приложения будут осуществляться с помощью Apache Maven, так как данная система умеет обрабатывать зависимости и может загрузить недостающие библиотеки из центрального репозитория.
В качестве БД для тестирования системы была выбрана СУБД PostgreSQL. Данная система является свободно распространяемой и обладает большим функционалом, в том числе поддержкой процедур на высокоуровневых языках программирования.
Javaparser
Большая часть классов созданной системы так или иначе используют функциональность библиотеки Javaparser. Данная библиотека позволяет анализировать исходных код на Java, строит абстрактное синтаксическое дерево (АСД), позволяет модифицировать вершины этого дерева, а также создавать новые узлы пользуясь шаблонами конструкций.
Как было описано в предыдущей главе, наиболее крупной обрабатываемой структурой является единица компиляции, которая выстраивается на основе .java-Файла.
Парсер содержит классы для обработки всех конструкций языка, а также классы-визитеры (Visitor), в которых присутствуют методы для просмотра различных типов узлов (Node). Классы, представляющие конструкции языка, являются наследниками класса Node. Прямой переход между узлами невозможен, что в некоторых случаях осложняло задачу. Так, например, если в данный момент просматривается метод, то нельзя получить узел уровнем выше - то есть класс, в котором он содержится.
Для того, чтобы посетить узел какого-либо типа, необходимо создать класс-наследник одного из Visitor'ов и переопределить метод для соответствующего типа узлов.
Существуют несколько основных видов конструкций:
- - Объявление (Declaration) - для выражений import, объявления классов, полей, методов. - Выражение-конструкция (Statement) используется для условных операторов, блоков Try-catch, циклов и блоков выражений. Блоком выражений является, например, тело метода - Простое выражение (Expression) - бинарные и унарные операторы, вызов метода, доступ к полю, присваивание. Также, одно из наиболее полезных при генерации кода Name expression. В случае, когда часть какой-либо конструкции компоновать из объектов было достаточно сложно, часть выражения можно было заменить подобной конструкцией, использовав ее как выражение-строку.
Если в одном из методов, просматривающих узел, есть обработка конструкций какого-то вида, то переопределенные методы для этих конструкций не буду вызываться, если вызов не задан явно.
Javaparser изначально написан для версии языка 1.5, но также совместим с 1.6, грамматика Java 7 не поддерживается, это накладывает ограничение на код программы, которую необходимо разделить.
Похожие статьи
-
Актуальность разработки - Система автоматизированного разделения кода прикладных программ
В большинстве современных систем, работающих с БД, набор параметров к запросам не фиксирован, а потенциально создаваемая избыточность негативно повлияет...
-
Данная методика рассчитана на приложения с трехуровневой архитектурой: клиент - сервер приложений - сервер базы данных. Так как программа нацелена на...
-
Предпосылки: исходный код Основная идея, на которой строится данная система, заключается в том, что исходный код сервера приложений не оптимален и в нем...
-
Qure Optimizer компании DB Sophic - Система автоматизированного разделения кода прикладных программ
Qure Optimizer является частью системы Qure управления производительностью БД и приложений работающих с БД. Данный программный продукт производит анализ...
-
Схема работы системы - Система автоматизированного разделения кода прикладных программ
Система представляет из себя 2 модифицированные копии одной первоначально программы, расположенные на разных серверах. Вызовы методов, перенесенных на...
-
Обзор системы Основной задачей разрабатываемой системы является повышение производительности систем состоящий из сервера приложений и сервера баз данных,...
-
Данный программный продукт компании Dell собирает данные о выполняемых выражениях из Системной глобальной области в БД Oracle ( Англ. System Global Area,...
-
Завершив выбор схемы работы системы и общего принципа работы ее частей и выбрав тип базы данных, следует перейти к выбору языка программирования....
-
Введение - Система автоматизированного разделения кода прикладных программ
Множество современных приложений используют базы данных для накопления самых разных видов информации, которые могут включать пользовательскую статистику,...
-
При разработке Системы были использованы современные веб-технологии: AJAX, LAMP. Используемые программные средства, языки программирования, библиотеки:...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Задание на разработку - Система автоматизированного разделения кода прикладных программ
Ознакомиться с технологией принципами построения системы разделения кода "Pyxis", разрабатываемой группой из MIT и университета Cornell. Провести...
-
Модификация клиентской копии программы должна обеспечить согласование объектов-источников до выполнения удаленного запроса, а также предоставлять...
-
Выбор системы управления базами данных является одним из важных этапов при разработке автоматизированной системы расписания занятий. Выбранный...
-
2 вышеописанных класса и интерфейс имеют сходную структуру, поэтому процесс генерации всех 3 объектов выглядит следующим образом: A. Задать импорт...
-
Продукты компании Embarcadero - DB Optimizer и J Optimizer Есть категория приложений, в названии которых хоть и присутствуют слова "оптимизация" или...
-
Физическая модель базы данных определяет способ размещения данных в среде хранения и способ доступа к этим данным, которые поддерживаются на физическом...
-
Введение - Технология разработки программного обеспечения систем управления
С++ является языком объектно-ориентированного программирования (ООП). Объект - абстрактная сущность, наделенная характеристиками объектов реального мира....
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
Для работы с базами данных созданы системы управлением базами данных. Существует довольно большое количество СУБД, особенно предназначенных для работы с...
-
Серверная программа, Инструменты разработки - Визуализация графа цитирования
Серверная программа - это веб-сервер, необходимый для получения и хранения графов. Сервер может создавать графы цитрования из библиотеки IEEE Xplore...
-
Секционирование [4] - Система автоматизированного разделения кода прикладных программ
Секционирование - это разделение хранящихся в БД объектов, например, таблиц на несколько меньших частей, с разным физическим расположением на диске....
-
Существует множество различных способов улучшения производительности систем работающих с базами данных и самих баз данных. Так как цель разрабатываемой...
-
Общие сведения о тестировании Данный раздел посвящен проведению тестирования клиентского приложения. Тестирование для серверной части системы не...
-
При начале разработки после выбора технологического стэка необходимо определить сущности, с набором свойств, которые будут использоваться при дальнейшей...
-
2.1 Среды разработки для построения программных агентов Инструментальные средства разработки программных агентов формируют среду, которая оптимизирована...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Числовой массив блок используется для чтения или записи массив до 64 целых или отдельных значений с плавающей точкой точности. Входы / Выходы Блоки...
-
Учебный процесс в ННГАСУ сопровождается значительной информационной базой, развитием компьютерного парка и внедрением в образовательный процесс...
-
Позволяет настроить до десяти отдельных входов для расчета значения переменной (PV), которые можно масштабировать и смещать. Блок AUXSUMMER извлекает...
-
Пример конфигурации - Библиотека функциональных модулей системы EXP PKS
Пример конфигурации, в которой блок OVRDSEL используется для предоставления данный обратной связи подавления в вышестоящий блок PID, приведен на рис. 15...
-
Значение параметра для State, Статуса Выполнения, Команды, метода и свойства метода упомянуты ниже для быстрой ссылки. Таблица 47.1 PUSH блок Функция...
-
Требования к разрабатываемой системе Одной из целей преследуемых при проведении автоматизации ВУЗа является создание единой информационной системы....
-
Основные средства администрирования системы 1С:Предприятие реализованы в составе конфигуратора. Однако есть ряд механизмов и утилит, которые не входят в...
-
Кроме поддержки интерпретатора порождающих правил, описанного в главе 5, CLIPS обладает следующими функциональными возможностями: - для определения...
-
Для тех организаций, в которых необходимо поддерживать единую автоматизированную систему в нескольких территориально удаленных точках (подразделениях,...
-
Объектно-ориентированное программирование (ООП) является парадигмой программирования, которая представляет понятия, как "объекты", которые имеют поля...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
При разработке практически всех инструментальных средств за основу принимается методология автоматизации проектирования на базе использования прототипов....
Модули и библиотеки системы, Средства разработки, Javaparser - Система автоматизированного разделения кода прикладных программ