Чтобы научиться говорить на новом языке не достаточно изучить грамматику, нужно начинать говорить. Так и с языком моделирования - нужно учиться описывать различные системные конфигурации с использованием данного языка.
Я планирую делать и выкладывать само-говорящие микро примеры по использованию языка Capella. Микро примеры позволяют не углубляясь в теорию кратко проиллюстрировать возможности языка. Микро примеры не потребуют от меня больших усилий и позволят не откладывать на потом передачу знаний, полученных мною при изучении Capella при создании "больших" моделей.
Первый микро пример иллюстрирует следующие функциональные взаимодействия:
- функциональное взаимодействие человека с воздухом в помещении
- функциональное взаимодействие человека с диваном и откидным стулом
- функциональное взаимодействие дивана и стула с основанием и стеной
Зелеными прямоугольниками на рисунке изображены функции. Синими/голубыми - компоненты. Компоненты выполняют функции, которые находятся внутри.
На диаграмме состояний для человека показаны состояния человека и возможные переходы между состояниями. В каждом состоянии указаны функции, которые человек выполняет в данном состоянии. Например, в состоянии Сидение - человек выполняет функцию Сидеть на стуле. В верхнем состоянии человек выполняет функцию Дышать.
четверг, 25 января 2018 г.
Видео демонстрация учебной модели
Доступна видео демонстрация модели
Управление железнодорожным переездом для Capella
https://www.youtube.com/watch?v=4jSoVNb4gaQ
Управление железнодорожным переездом для Capella
https://www.youtube.com/watch?v=4jSoVNb4gaQ
Размещение функции по компонентам структуры в Capella
Сделал небольшую презентацию которая иллюстрирует как выглядят функциональныные/структурные описания в Capella.
Презентация
после чего выполняется структурная декомпозиция системы и функционал накладывается на структурные компоненты системы.
Отдельное описание функционала и структуры позволяет для одного и того же
функционала принимать различные решения по его реализации в структуре. Например, примерно один и тот же функционал для жизни семьи реализуется и однокомнатной квартирой и домом. Основные отличия этих реализаций - в различных не функциональных требованиях: больше места, лучшая изоляция, .... При проектировании структуры учитываются функциональные и не функциональные требования.
Создания описания функционала, отдельного от структуры, позволяет переиспользовать
результаты в будущем. Можно создавать новые системы, по разному перераспределяя
функции по компонентам.
Возможность исполнения/анимации разрабатываемых моделей и инструментов
http://gemoc.org/ - фреймворк для разработки языков/инструментов моделирования, позволяющий добавить возможность исполнения/анимации к разрабатываемым моделям/инструментам.
С помощью данного фреймворка можно доработать существующие статические инструменты моделирования, добавив в них возможность исполнения моделей
По ссылке презентации об исполнении моделей Capella
http://gemoc.org/pub/anr/finalworkshop/2016-03-anr-gemoc-workshop-final-experimentations.pdf
С помощью данного фреймворка можно доработать существующие статические инструменты моделирования, добавив в них возможность исполнения моделей
По ссылке презентации об исполнении моделей Capella
http://gemoc.org/pub/anr/finalworkshop/2016-03-anr-gemoc-workshop-final-experimentations.pdf
понедельник, 22 января 2018 г.
Ускоряем контекстное меню в Capella Project Explorer
В последних версиях Capella Project Explorer контекстное меню, используемое для создания элементов и диаграмм, стало работать ну очень медленно. Пришлось искать решение. И решение было быстро найдено.
Замедление меню имеет место в Capella версий 1.1.x (Eclipse Mars) и 1.2.x (Eclipse Neon).
Разработчики Capella быстро отреагировали и нашли решение для ускорения меню.
https://bugs.polarsys.org/show_bug.cgi?id=1916
В моем случае работа меню была восстановлена после следуюших действий:
- Обновление Java 8 Update 151 to Java 8 Update 161
- Добавление дополнительного флага в eclipse.ini
В Eclipse Mars и Neon есть проблема со скоростью работы динамических меню. Пока в Eclipse реализован workaround. Для его применения в текущей версии Capella необходимо добавить в файл eclipse.ini флаг:
-Declipse.workaround.bug467000=true
В результате eclipse.ini для Capella 1.2.0 должно выглядеть вот так:
Замедление меню имеет место в Capella версий 1.1.x (Eclipse Mars) и 1.2.x (Eclipse Neon).
Разработчики Capella быстро отреагировали и нашли решение для ускорения меню.
https://bugs.polarsys.org/show_bug.cgi?id=1916
В моем случае работа меню была восстановлена после следуюших действий:
- Обновление Java 8 Update 151 to Java 8 Update 161
- Добавление дополнительного флага в eclipse.ini
В Eclipse Mars и Neon есть проблема со скоростью работы динамических меню. Пока в Eclipse реализован workaround. Для его применения в текущей версии Capella необходимо добавить в файл eclipse.ini флаг:
-Declipse.workaround.bug467000=true
В результате eclipse.ini для Capella 1.2.0 должно выглядеть вот так:
-startup
plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711. jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1. 401.v20161122-1740
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Declipse.workaround.bug467000=true
-Xms1000m
-Xmx3000m
-Xss4m
Данный workaround будет включен в следующей версии Capella, а пока нужно добавлять вручную.
Поддержка клавиатуры для создания элементов модели Capella
Реализовал поддержку клавиатуры для создания новых элементов модели в Capella Project Explorer.
Давно мучился от того, что в менеджере модели Capella нельзя было создавать элементы модели с использованием клавиатуры, а только с помощью контекстного меню.
Создавать элементы с помощью контекстного меню само по себе медленно, а тут еще возникла проблема, что контекстное меню стало очень долго появляться. Как оказалось, проблема производительности возникла из-за Java 151 updata. Обновление до Java 161 решило проблему.
Но благодаря этой проблеме, я наконец-то реализовал поддержку клавиатуры для создания элементов модели в Capella Project Explorer.
Вот так это теперь выглядит
Выложил update site с плагином по ссылке (версия 0.2)
https://yadi.sk/d/IOs23v7q3RgFjg
В данной версии доступны следующие команды с клавиатуры:
- Ins - добавить элемент\пакет того же типа после выбранного элемента\пакета
- Alt-Ins - добавить дочерний элемент\пакет того же типа для выбранного элемента\пакета
- Ctrl-Ins - добавить элемент с типом по-умолчанию в выбранный пакет
Но есть и недоделка. Фокус выбора элемента должен перемещаться на вновь созданный элемент. После этого можно нажать F2 для его переименования. В данной версии фокус остается на исходном элементе и для переименования необходимо предварительно выбирать новый элемент:
- если новый элемент находится на том же уровне, то достаточно нажать клавишу вниз и затем нажать F2
- если новый элемент создан внутри выделенного элемента и это первый элемент, то тоже достаточно нажать клавишу вниз и нажать F2
Надо будет еще добавить команды повышения и понижения уровня элементов в иерархии модели. Но даже уже сейчас использование клавиатуры для создания элементов делает работу намного производительней.
Разработчики пишут, что в Thales для создания модели использую диаграммы, а браузер модели не используют. Мне это не понятно и кажется не правильным. Однако, после выкладывания начальной версии плагина, разработчики Capella написали мне, что в будущем можно будет интегрировать мой код по поддержке клавиатуры в Capella.
Давно мучился от того, что в менеджере модели Capella нельзя было создавать элементы модели с использованием клавиатуры, а только с помощью контекстного меню.
Создавать элементы с помощью контекстного меню само по себе медленно, а тут еще возникла проблема, что контекстное меню стало очень долго появляться. Как оказалось, проблема производительности возникла из-за Java 151 updata. Обновление до Java 161 решило проблему.
Но благодаря этой проблеме, я наконец-то реализовал поддержку клавиатуры для создания элементов модели в Capella Project Explorer.
Вот так это теперь выглядит
Выложил update site с плагином по ссылке (версия 0.2)
https://yadi.sk/d/IOs23v7q3RgFjg
В данной версии доступны следующие команды с клавиатуры:
- Ins - добавить элемент\пакет того же типа после выбранного элемента\пакета
- Alt-Ins - добавить дочерний элемент\пакет того же типа для выбранного элемента\пакета
- Ctrl-Ins - добавить элемент с типом по-умолчанию в выбранный пакет
Но есть и недоделка. Фокус выбора элемента должен перемещаться на вновь созданный элемент. После этого можно нажать F2 для его переименования. В данной версии фокус остается на исходном элементе и для переименования необходимо предварительно выбирать новый элемент:
- если новый элемент находится на том же уровне, то достаточно нажать клавишу вниз и затем нажать F2
- если новый элемент создан внутри выделенного элемента и это первый элемент, то тоже достаточно нажать клавишу вниз и нажать F2
Надо будет еще добавить команды повышения и понижения уровня элементов в иерархии модели. Но даже уже сейчас использование клавиатуры для создания элементов делает работу намного производительней.
Разработчики пишут, что в Thales для создания модели использую диаграммы, а браузер модели не используют. Мне это не понятно и кажется не правильным. Однако, после выкладывания начальной версии плагина, разработчики Capella написали мне, что в будущем можно будет интегрировать мой код по поддержке клавиатуры в Capella.
пятница, 19 января 2018 г.
1С: Enterprise Development Tools основана на Eclipse, EMF, Xtext
Новая среда разработки для 1C Предприятия основана на Eclipse и технологиях EMF и Xtext!
Язык программирования 1С в редакторе ниже реализован с использованием EMF и XText
Обзор среды разработки 1С: Enterprise Development Tools
http://v8.1c.ru/overview/release_IDE/
Статья на Хабре про технологии Eclipse для 1С: Enterprise Development Tools
https://habrahabr.ru/company/1c/blog/323508/
Язык программирования 1С в редакторе ниже реализован с использованием EMF и XText
Обзор среды разработки 1С: Enterprise Development Tools
http://v8.1c.ru/overview/release_IDE/
Статья на Хабре про технологии Eclipse для 1С: Enterprise Development Tools
https://habrahabr.ru/company/1c/blog/323508/
среда, 17 января 2018 г.
Интеграция стандартных/DSL языков в редакторы на основе технологии языковых серверов
Технология языковых серверов позволяет разрабатывать стандартные/DSL текстовые языки один раз и использовать их в различных редакторах, таких как Eclipse, Visual Studio Code и т.д. Технология языковых серверов изначально разработана Microsoft, сделана open source, и поддержана в других проектах.
Microsoft разработала новый редактор Visual Studio Code, который изначально основан на технологии языковых серверов.
https://code.visualstudio.com/
Это позволяет использовать в редакторе любой DSL, для которого есть языковый сервер.
Интеграция с языковым сервером нового DSL позволяет получить в редакторе следующие стандартные возможности, которые ранее поддерживались только для нэйтивных языков редатора:
- подсветка слов
- авто-завершение
- контекстная подстказка
- отображение документации
- навигация по документа на основе мета-информации
- отображение результатов валидации документа
- отображение структуры документа в иерархическом виде (в соответствии с мета моделью)
- ...
На следующей странице доступен список языков, для которых реализованы языковые сервера. Список достаточно внушителен.
https://langserver.org/
Примечательно, что над разработкой редактора Visual Studio Code работает Erich Gamma, один из ключевых разработчиков Eclipse.
Технология языковых серверов теперь поддержана и в Eclipse в рамках проекта LSP4E
https://projects.eclipse.org/projects/technology.lsp4e
Пока это версия 0.4, версия 1.0 ожидается летом 2018 года.
Например, в результате данной поддержки в Eclipse становится возможным использовать Net языки, такие как C#
https://marketplace.eclipse.org/content/acute-c-edition-eclipse-ide-experimental
Ранее я писал про технологию Xtext, которая позволяет создавать собственные DSL и редакторы для них. Ранее речь шла от редакторах в рамках Eclipse. Теперь же применение данных DSL расширяется.
Возможность генерации языковых серверов для собственных DLS теперь включена и в средства разработки Xtext. Это позволяет разрабатывать собственные DSL, доступные как в Eclipse, так и в Visual Studio Code
https://www.eclipse.org/community/eclipse_newsletter/2017/may/article5.php
Microsoft разработала новый редактор Visual Studio Code, который изначально основан на технологии языковых серверов.
https://code.visualstudio.com/
Это позволяет использовать в редакторе любой DSL, для которого есть языковый сервер.
Интеграция с языковым сервером нового DSL позволяет получить в редакторе следующие стандартные возможности, которые ранее поддерживались только для нэйтивных языков редатора:
- подсветка слов
- авто-завершение
- контекстная подстказка
- отображение документации
- навигация по документа на основе мета-информации
- отображение результатов валидации документа
- отображение структуры документа в иерархическом виде (в соответствии с мета моделью)
- ...
На следующей странице доступен список языков, для которых реализованы языковые сервера. Список достаточно внушителен.
https://langserver.org/
Примечательно, что над разработкой редактора Visual Studio Code работает Erich Gamma, один из ключевых разработчиков Eclipse.
Технология языковых серверов теперь поддержана и в Eclipse в рамках проекта LSP4E
https://projects.eclipse.org/projects/technology.lsp4e
Пока это версия 0.4, версия 1.0 ожидается летом 2018 года.
Например, в результате данной поддержки в Eclipse становится возможным использовать Net языки, такие как C#
https://marketplace.eclipse.org/content/acute-c-edition-eclipse-ide-experimental
Ранее я писал про технологию Xtext, которая позволяет создавать собственные DSL и редакторы для них. Ранее речь шла от редакторах в рамках Eclipse. Теперь же применение данных DSL расширяется.
https://www.eclipse.org/community/eclipse_newsletter/2017/may/article5.php
Учебная модель управления железнодорожным переездом для Capella
Новая учебная модель Level Crossing Traffic Control для Capella доступна по ссылке.
Данная модель ииспользуемая для иллюстрации Arcadia в книге
Model-based System and Architecture Engineering with the Arcadia Method
Данная модель описывает систему управления железнодорожным переездом и включает все уровни описания : от операционного анализа до организационного (EPBS). Это самая большая и наиболее полная модель Capella, доступная в открытом доступе. Рекомендую.
Данная модель ииспользуемая для иллюстрации Arcadia в книге
Model-based System and Architecture Engineering with the Arcadia Method
Данная модель описывает систему управления железнодорожным переездом и включает все уровни описания : от операционного анализа до организационного (EPBS). Это самая большая и наиболее полная модель Capella, доступная в открытом доступе. Рекомендую.
среда, 10 января 2018 г.
Вышли две книги по Capella и Arcadia
В ноябре 2017 года вышли обещанные две книги по Capella и Arcadia.
По ссылкам ниже можно познакомиться с отдельными главами книг на books.google.com
Подписаться на:
Комментарии (Atom)



