суббота, 7 марта 2015 г.

Архитектурные описания в Capella в соответствии со стандартом 42010

Capella - это пример каркаса и языка архитектурного описания в одном флаконе, позволяющая выполнять архитектурные описания систем в соответствии со  стандартом 42010 по выполнению архитектурных описаний.

В стандартной модели Capella создаются несколько view, соответствующие точкам зрения: Operational Analysis, System Analysis, Logical Architecture, Physical Architecture, EPBS Architecture.


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


Созданные в модели представления (диаграммы, ...) можно просмотреть отсортированными по категориям. 
- View
   - Тип представления ((диаграмма, таблица, пользовательские представления)
         - Конкретное представление 


Состав viewpoints, доступных в Capella, а также средства языка моделирования могут расширяться с помощью технологий Sirius и Kitalpha

Архитектурные описания по стандарту 42010

Чтобы лучше понимать архитектуру моделей Capella необходимо познакомиться со стандартом
ISO/IEC/IEEE 42010:2011 Systems and software engineering - Architecture description.
В данном стандарте определяются правила как необходимо структурировать архитектурные описания систем и ПО, чтобы они были понятны и востребованы различными заинтересованными сторонами. Архитектурные описания, рассматриваемые в стандарте, применимы на уровне организационных систем, технически систем и ПО.

В этом стандарте четко даются такие определения, как
- архитектура
- архитектурное описание
- каркас архитектурных описаний (пример, DoDAF, ToGAF, Capella)
- язык архитектурного описания (пример UML, SysML, Capella)
- заинтересованная сторона (stakeholder)
- интерес (concern)
- точка зрения (viewpoint)
- view

У этих определений все связаны друг с другом. Архитектура - является свойством системы. Архитектурное описание выполняется с целью ее описания. У пользователей архитектурных описаний есть различные потребители (Stakeholders) со своим набором интересов (concerns). Архитектурные описания должны выполнять с учетом этих потребителей и их интересов. Каркас архитектурных описаний задает состав потребителей и их интересов, определяет набор их точек зрения на архитектуру (viewpoints). Каждый viepoint определяет некую точку зрения на архитектуру системы, которая интересна определенным потребителям архитектурных описаний, задает состав информации, которая должна быть представлена для данного viewpoint.  View - это часть архитектурного описания, выполненная в соответствии с одним viewpoint.  View содержит информацию о ВСЕЙ системе с определенной точки зрения (viewpoint). В случае геометрических моделей 2D View является проекцией 3D модели на выбранную плоскость, при этом может отображать только часть элементов 3D модели.

Информация во view может быть представлена с использованием формального архитектурного языка описания. Данные языки обычно имеют формальную мета-модель и визуальную нотацию. В этом случае viewpoint задает состав типов моделей (в стандарте model kinds) или в терминах Sirius - отдельных представлений (диаграмм, таблиц, деревьев), которые могут использоваться для архитектурного описания для данного viewpoint.

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

Язык Capella одновременно включает и каркас архитектурного описания и язык. Чего нельзя сказать об UML/SyML, которые являются универсальными языками, которые можно использовать в рамках различных каркасов архитектурных описаний. В этой "универсальности" - их основной недостаток.

пятница, 6 марта 2015 г.

Пример модели для Capella

На этой неделе выложили первую модель для Capella под названием In-Flight Entertainment System. Модель  доступна со страницы Getting Started. (вкладка SAMPLE MODEL на странице).  Доступно также краткое и подробное описание модели в виде документов.

Генерация документации из Capella с помощью Acceleo

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

Удалось на практике использовать Acceleo для генерации документов и отчетов на основе моделей в Capella. Для использования Accelo необходимо описание мета-модели (схемы) языка в формате ecore. Эти мета-модели оказались доступны в составе исходного кода Capella в git репозитории (в составе 2 плагинов). Для обращения к элементам модели при разработке шаблонов генерации документов в Accello.  Тут осталось некая тонкость с зависимостями мета-модели от файлов Kitalpha (см. форум). Нужно еще немного времени, чтобы разобраться как правильно подключать мета-модели.

В ближайшее время должны выложить выложить плагин для Capella (для Eclipse), который публикует модель в виде интерактивного html документа. Но это не заменит Acceleo. Также есть потенциальная возможность использовать Eclipse Birt для генерации документации на основе Capella. Birt я ранее уже использовал для генерации отчетов с другими инструментами. Но пока не пробовал подключить его к Capella.

Расширение Capella с помощью Kitalpha

В предыдущем посте я писал, что у меня остался вопрос о возможности расширять мета-модель языка Capella, добавляя новые элементы к существующим. Все это оказалось возможным и даже больше с помощью инструмента Eclipse Kitalpha. Kitalpha позволяет добавлять новые определения к мета-модели языка, добавлять новые диаграммы к Capella, а также наследовать существующие определения диаграмм Capella, добавляя на них новые элементы.

Kapella позволяет описывать на текстовом DSL мета-модель языка, viewpoints и представления (диаграммы) для Sirius. Можно основывать свои расширения на существующих мета-моделях языка (например, Capella), а также на существующих определениях Viepoints и диаграмм. На существующие диаграммы можно добавлять новые элементы и связи, определенные в определенных расширениях мета-модели. На выходе Kitalpha генерируются расширения для Eclipse, которые можно обычным способом установить в Capella. Данные расширения используют технологию Sirius. Видео демонстрация на 5 минут доступна по ссылке.

Руками пока Kitalpha не попробовал. На форуме Capella мне рассказали, что в ближайшие дни выйдет вариант Kitalpha под названием Capella Studio. Именно данный инструмент демонстрируется в виде выше. С ним будет гораздо легче начать заниматься расширением Capella, чем используя текущую версию Kitalpha.