Среда разработки для прикладного программирования




НазваниеСреда разработки для прикладного программирования
Дата конвертации24.06.2013
Размер94.7 Kb.
ТипДокументы

Среда разработки для прикладного программирования

Интегрированная инженерная среда разработки (ИИС)

Коллектив разработчиков


Работа ведется коллективом разработчиков, студентов Политихнического Университета:

Иванов Егор

Ершов Павел

Банькин Артем

Хавренко Сергей

Ефремов Влад

Описание работы


Проект представляет собой развитие среды программирования Eclipse. Целью разработки является написание плагина позволяющего интегрировать в программный код на языке java, математические выражения, подобно Maple, Pari-GP и Mathematica

Расширение подразумевает добавление нескольких функций:
-возможность ввода и исполнения математического псевдокода(x=log(2,5)^e) наряду с программным(после ввода, псевдокод распознается и транслируется в java код скрытый от пользователя)
-введеный псевдокод отображается для удобства пользователя в виде изображения(как в средах Maple,Mathematica)
-возможность вставки в комментарии любых изображений(например отражающих предмет вычислений)

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





ИИС

Содержание


Пример применения

Каков функционал?  Как это работает?  Как запустить?

Установка

Создание проекта

Работа с Java файлами

Работа с внутренним редактором

Возможности

Вставка изображений

Подсветка синтаксиса, фолдинг, автодополнение

Работа с математическими выражениями

Развитие

Редактор математических выражений

3D редактор

Защищенное распостранение исходного кода

Язык описания моделей (визуализатор диаграмм)

Пример применения


Зачастую в прикладном программировании инженеру приходится работать с большим объемом математической информации, результаты который затем используются в программном коде. Инженер встает перед выбором:

выполнять работу в нескольких средах, то есть математические вычисления производить в специализированных средах, таких как Maple, а программирование в IDE языков программирования;

реализовывать математические операции прямо в IDE, такой подход не только не удобен, но и практически всегда приводит к ошибкам в наборе математических выражений, которые очень сложно отследить;

реализовывать все в математической среде, в таком случае программный функционал очень сильно ограничен.

Каков функционал? Как это работает? Как запустить?


ИИС позволяет писать программу сразу на двух языках, главным языком является Java, для ввода математических выражений используется псевдоязык. При вводе математичесого выражения оно для удобства пользователя отражается в привычном формульном виде. Кроме того пользователь может иллюстировать свой код изображениями, расширенными комментариями, выполнять символьные преобразования.

ИИС является расширением для популярной среды разработке на Java - Eclipse. Для запуска достаточно установить Eclipse и расширение ИИС скопировав набор jar архивов в папку с плагинами вашего Eclipse. Фундаментальное расширение возможностей, которое предоставляет ИИС, результат консолидации работы по разным направлениям.

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

Установка


Для того чтобы использовать ИИС необходимо в первую очередь иметь рабочий Eclipse. Затем ИИС устанавливается как стандартный плагин.

Создание проекта


Для того чтобы использовать возможности ИИС нужно с помощью мастера создания проектов создать проект типа iee. После создания проекта перед вами будет вся необходимая для работы структура, а именно файл с расширением .java в котором можно начинать писать инженерную задачу. Предварительно нужно ассоциировать файлы с раширением java c редактором, поставляемым в плагине.


Работа с java файлами



Инженер программируя в разработанной IDE может наряду со специфическим функционалом, может пользоваться всеми возможностями среды Eclipse, включая фолдинг, автозаполнение, отладку, менеджер классов и многое другое.

Работа с внутренним редактором



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

Ниже приведен пример вызова математического редактора.


Возможности среды



Остановимся более подробно на возможностях среды, отдельно опишем и проиллюстрируем уже реализованные возможности, и то что должно быть сделано в ближайшем будущем.

Вставка изображений



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

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

В расширенни ИИС реализована вставка изображений в код. По сути изображения представляют собой комментарии специального вида, которые содержат идентификатор изображения которое должно быть вставленно в данное место.

Фоновый сканер редактора определяет комментарии-изображдения и представляет их пользователю на экране.

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

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



Подсветка синтаксиса, фолдинг, автодополнение


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

Настройка пользовательского фолдинга, а так же подсветки и автозаполнения доступны в меню.

Работа с математическими выражениями


Для удобства разработчика в расширение интегрирована возможность работы с символьной математикой. Процесс работы выглядит следующим образом:

  • пользователь переключается в режим работы с символьными выражениями с помощью нажатия клавиши на панеле инструментов;

  • автоматически генерируется окружение раздела символьных вычислений;

  • фокус переводится на внутренний редактор;

  • пользователь вводит математиское выражение на псевдоязыке, а так же операцию которую он хочет произвести (упростить, разложить, найти корни и многое другое);

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

Примеры:

Развитие


На данный момент разработанное расширение представляет собой платформу для дальнейшего расширения функциональности. В порядке уменьшения приоритета, мы предполагаем расширить функционал следующим образом:

  • Редактор математических выражений

  • 3D редактор

  • Защищенное распостранение исходного кода

  • Язык описания моделей (визуализатор диаграмм)

Остановимся подробнее на каждом из пунктов.

Редактор математических выражений


Редактор должен представлять собой встроенный редактор в который можно вводить математические выражения на псевдоязыке, которые будут отображаться в формульном виде и транслироваться в java код.

Такая возможность позволит инженерам сталкивающимся с математическим вычислениями в программном коде работать с ними значительно быстрее и удобней.

Это направление является основным для нас на данный момент.

Такое расширение позволит создавать такие структуры как например модели конечных элементов.

Метод конечных элементов (МКЭ) — численный метод решения задач прикладной физики. Метод широко используется для решения задач механики деформируемого твердого тела, теплообмена, гидродинамики и электродинамики.

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

3D редактора


Для визуализации моделей конечных элементов а так же их рассчета необходимо будет написать модуль трехмерного отображения и редактирования этих объектов.

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

Защищенное распостранение исходного кода


В наше время доступ к исходному коду практически равен влладению информацией, поэтому распостранение програмного продукта или рассчета с исходным кодом равносильно его свободному распостранению.

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

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

Злоумышленник, даже если он единожды приобрел код, не сможет распостранить его в дальнейшем, так как этот код заработает только на одном ПК.

Данное направление классифицируется нами как очень интересное, но пока существует только в формате тезисов.

Язык описания моделей


Технологии интеграции логических и математических языков в языки программирования являются очень перспективным напрвлением современных информационных технологий.

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

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

Формально говоря, куст событий представляет собой ациклический мультиграф , где:

  • V — произвольное непустое множество, называемое множеством событий;

  • E — семейство подмножеств множества , называемое семейством дуг куста событий;

  • S — произвольное непустое множество, называемое множеством меток куста событий;

  • p — функция , называемая функцией распределения вероятностей куста событий;

  • m — функция , называемая функцией маркировки дуг куста событий.

Обозначим через функцию, отображающую множество дуг куста событий во множество событий, являющихся для этих дуг «левыми концами», то есть множества вида . Аналогично определим right(e).

На практике распространение получили так называемые классические кусты событий, которые выражают сложные связи между событиями посредством конъюнкции и дизъюнкции. С помощью дизъюнкции реализуются высказывания вида «из x следует либо j1, либо j2, либо , либо jk», а с помощью конъюнкции — высказывания вида «если одновременно верно x и y, то верно a; в противном случае — верно b». Множество меток таких кустов состоит из двух элементов: . Функция маркировки ставит в соответствие метку по следующему правилу:



Дугу куста событий будем называть дугой ИЛИ-типа, если , и дугой И-типа, если . Для дуг ИЛИ-типа выполнено свойство

p(x) =



ji,

i

а для дуг И-типа — следующие два свойства:

Классические кусты легко рисовать: события изображаются прямоугольниками с текстом, поясняющим смысл этого события. Зависимости между событиями (то есть дуги) изображаются стрелочками двух типов: с точкой (ИЛИ-типа) и с правым поворотом (И-типа).

Байесовский вывод на кусте событий осуществляется с помощью сведения к задаче вывода в байесовской сети доверия.

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

Кусты событий применяются, в основном, при оценке рисков в науках о Земле.

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

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

Надеюсь наш амбициозный проект не оставит Вас равнодушными.

Контактные данные.

E-mail: egor7ivanov@gmail.com

телефон: +7 921 9361022

ICQ: 621768

Похожие:

Среда разработки для прикладного программирования iconИ нтегрированная среда программирования
Интегрированная среда программирования Delphi разработа­на фирмой Borland. Версия среды программирования Delphi 5, которая будет...
Среда разработки для прикладного программирования iconКнига представляет собой пособие по изучению языка программирования C#, который является одним из важных элементов
В формировании навыков разработки приложений в рамках парадигмы объектно-ориентированного программирования
Среда разработки для прикладного программирования iconУчебный курс Бельчусов Анатолий Александрович Москва
Тут обычные web редакторы не помогут! Нужна среда разработки, одновременно поддерживающая и стандартный web интерфейс, и позволяющая...
Среда разработки для прикладного программирования iconТема Эскизы страниц 11 Тема Ошибки в web-дизайне 15
Тут обычные web редакторы не помогут! Нужна среда разработки, одновременно поддерживающая и стандартный web интерфейс, и позволяющая...
Среда разработки для прикладного программирования iconОтчет по работе отдела прикладного программирования центра «тусур-телеком» за 2008 год
Кадровое обеспечение
Среда разработки для прикладного программирования iconУрок технологии 8 класс Тема: «Жанры декоративно-прикладного искусства»
...
Среда разработки для прикладного программирования iconУчитель информатики гимназии №1567
Название языка программирования basic – это первые буквы английских слов Beginner’s All-purpose Symbolic Instruction Code (многоцелевой...
Среда разработки для прикладного программирования icon  Программа  имеет  интуитивно  понятный  интерфейс,  позволяющий  без  знания  основ  программирования 
Программа  LanDrive Configurator  является Windows приложением  для  настройки,  программирования 
Среда разработки для прикладного программирования iconПолный обучающий курс 1 Turbo Pascal 1 Содержание 2 Ввод-вывод 6 Занятие Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль.
Занятие Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль. Основные понятия. Первая программа. Оператор...
Среда разработки для прикладного программирования iconТема: Шифрование файлов
Обеспечивающие средства: Персональный компьютер со следующим программным обеспечением: операционная система ms windows, среда разработки...
Разместите кнопку на своём сайте:
kak.znate.ru


База данных защищена авторским правом ©kak.znate.ru 2012
обратиться к администрации
KakZnate
Главная страница