Sparx enterprise architect что это
Sparx Enterprise Architect — инструмент системного аналитика
Sparx Enterprise Architect (EA) — программный продукт австралийской компании Sparx Systems.
Sparx Systems — австралийская компания-разработчик программного обеспечения, основанная Geoffrey Sparks в 1996 в Австралии (Creswick, Victoria).
Sparx Systems специализуется на разработке визуальных инструментов планирования, дизайна и разработки программного обеспечения. Sparx Enterprise Architect — наиболее известный продукт компании (существует с 2000 года), признаваемый самым продвинутым инструментом моделирования на UML. В 2006 компания Sparx Systems была первой, кто поддержал OMG Systems Modeling Language (SysML). Sparx Systems — член консорциума Object Management Group (OMG).
Sparx Enterprise Architect наиболее распространен среди системных аналитиков, как инструмент создания спецификаций на доработку или интеграцию систем. В чем причины популярности продукта в России:
Таковы сильные стороны. Англоязычные аналитики в своих обзорах подчеркивают одно свойство: способность Sparx EA генерировать автоматически нужную документацию.
Наиболее сильная сторона — продукт ориентирован на UML во всём своём внутреннем строении. Шаблонов различных нотаций много (десятки), но чтобы их хотя бы немного изменить — придется фактически программировать новый шаблон на UML. Такая строгость нужна для того, чтобы по данным Sparx EA можно было бы автоматически генерировать полузаконченные куски программного кода. Однако, следует признать, что мы таких людей, генерирующих код из Sparx, не встречали на своем пути. То есть по факту наблюдаемой практики использования, Sparx — это не инструмент программиста, а инструмент аналитика. Остаётся понять, какого именно аналитика: бизнес-аналитика или системного?
Давайте вспомним, а чем собственно озабочен аналитик? С одной стороны — попыткой зафиксировать или смоделировать требования бизнеса. С другой стороны — выдать строгую спецификацию в адрес программистов. Побеждает конечно же бизнес-заказчик с требованиями нарисовать ему красивые диаграммы. Иначе требования не согласуют. Работая с фантазиями бизнеса, бизнес-аналитик будет выбирать Visio, как инструмент не только более гибкий, но и доступный бизнесу для понимания. Visio-файл бизнес-заказчик умеет открывать и комментировать, добавляя туда не только замечания, но и новые элементы на схему. Sparx тоже предлагает множество нотаций, но сложность кастомизации их шаблонов, строгость и костность шаблонов отталкивают пользователей. В лучшем случае Sparx всё же будет использован в качестве рисовалки диаграмм отдельными нердами команды, но не более того. Оправданием этих мучений станет автоматическое фомирование проектных документов, которые так не любят готовить дизайнеры систем. В результате, единственная надежная ниша для Sparx — это строгие шаблоны UML и возможность сгенерировать по ним документ типа Требование, Техническое Задание, Спека. Однако здесь нужно помнить, что ориентация проектирования на создание проектных документов уже надежно канула в лету, так как в погоне за формализмами документов проектировщики совершенно потеряли смысл проектирования, суть которого — поиск оптимальных системных решений.
Еще одна странность продукта от Sparx — это слово «Enterprise» в названии системы. Остаётся загадкой, что вкладывают в данное понятие разработчики из Sparx Systems. Наша гипотеза: «Enterprise» означает возможность применять продукт EA в каждом отделе предприятия, ведь для каждого отдела найдется хотя бы один нужный для него шаблон какой-либо нотации.
Однако модели Sparx EA, построенные по разным шаблонам, не совместимы и не связываются друг с другом. Поэтому даже несмотря на поддержку таких нотаций и методологий как TOGAF и Archimate, Sparx EA не в состоянии создать в своей базе полноценный архитектурный репозиторий, содержащий строгие реестры ABB (Architecture building block). Наш анализ внедрений EA в РФ показывает, что дублирование данных является основной проблемой таких внедрений, превращая Sparx-репозиторий в обычную свалку схем из различных проектов. Другой интересный вывод нашего исследования: системой Sparx EA ввиду сложности ее интерфейса пользуются только сотрудники ИТ-отделов. Бизнес-подразделения предпочитают более дружественные инструменты, не перегруженные ИТ-шной спецификой.
Последним недостатком Sparx, как инструмента Enterprise-класса, является полное отсутствие функций навигации в моделях. Если у вас более сотни систем, функций или объектов данных, будьте готовы выучить их наизусть или дублировать внутри проекта почаще, чтобы они были у вас всегда под рукой в нужном месте. Sparx EA позволяет организовать данные внутри своей модели только в виде одной иерархии вложенности объектов. Для крупных предприятий и масшабных проектов — это просто фатальное ограничение инструмента. Может быть поэтому типовой круг пользователей Sparx EA — это 1-2-3 человека, причем каждый использует однопользовательскую версию. О какой же групповой работе и тем более enterprise-архитектуре может идти речь?
Как итог, Sparx — отличный инструмент, облегчающий рутинные задачи системного аналитика по подготовке документов, специфицирующих работу создаваемого или изменяемого программного обеспечения. Для остальных задач, как то дизайн архитектуры ИТ или архитектуры предприятия, планирование трансформации, стоит поискать другие инструменты.
Sparx всё это делать не умеет. Цель Sparx — нарисовать схему. Цель QPR — создать репозиторий объектов. Поэтому для QPR не важно сколько в репозитории объектов — 100, 200 или тысячи. QPR их эффективно представляет для обзора и анализа. Sparx же практически ничего не может сделать без диаграммы, можно даже утверждать, что диаграмма является первичным артефактом моделирования. Нет диаграммы — нет и объектов в репозитории. Что, согласитесь, странно: сущности есть, но ввести их в систему можно только методом их рисования.
Более полное сравнение смотри во вложенном PDF-файле.
Иногда говорят, что строгость Sparx импонирует больше, чем свобода QPR. Но навести дисиплину в QPR все же возможно с помощью скриптов, а вот сделать Sparx свободным от его ограничений не получится никогда. Поэтому следует выбирать для работы то, что содействует вашему успеху и вашей эффективности, а не то, что просто стоит дешевле. Проектирование — это сегодня наиболее дорогой процесс, и любой инструмент, делающий проектирование эффективным, окупается именно через повышение производительности труда проектировщика (аналитик, архитектор, программист). Не говоря уже о том, что проектирование — это творчество, а творчество требует свободы!
СОДЕРЖАНИЕ
Обзор
База пользователей варьируется от программистов и бизнес-аналитиков до корпоративных архитекторов в различных организациях, от небольших компаний-разработчиков, многонациональных корпораций и государственных организаций до международных органов по отраслевым стандартам. Первоначально Sparx Systems выпустила Enterprise Architect в 2000 году. Первоначально разработанный как инструмент моделирования UML для моделирования UML 1.1, продукт эволюционировал и включил другие спецификации OMG UML 1.3, 2.0, 2.1, 2.3, 2.4.1 и 2.5.
Стандарты
Enterprise Architect поддерживает ряд открытых отраслевых стандартов для проектирования и моделирования программного обеспечения и бизнес-систем. Ниже перечислены основные поддерживаемые стандарты:
Enterprise Architect также поддерживает такие отраслевые инфраструктуры, как:
Enterprise Architect поддерживает фреймворки, поставляемые отраслевыми организациями:
Разработка стандартов
Модели, опубликованные органами по разработке отраслевых стандартов с использованием Enterprise Architect, включают:
Моделирование
Общие особенности
Управление требованиями
Общие функции управления требованиями, поддерживаемые Enterprise Architect, включают настройку документирования требований, привязку требований к деталям проектирования и реализации и обеспечение прослеживаемости требований на этапах проектирования и строительства. Эти требования могут быть предметом управления изменениями, обработки рабочего процесса, сравнения базовых показателей и аудита.
Бизнес-моделирование и анализ
Enterprise Architect поддерживает моделирование:
BPMN можно интегрировать с моделями DMN для моделирования. Это включает возможность генерировать исполняемый код из этих бизнес-правил. Бизнес-моделирование можно комбинировать с анализом пробелов, чтобы увидеть потенциальные пробелы в предлагаемых решениях.
Моделирование
Моделирование модели поддерживается для поведенческих диаграмм, включая: конечные автоматы, взаимодействия (диаграммы последовательности) и диаграммы активности. Для конечных автоматов и диаграмм действий поток выполнения определяется с помощью триггеров, средств защиты и эффектов. Моделирование поддерживает повторные запуски с изменением инициированных событий и поддерживает просмотр переменных, стека вызовов и установку маркеров отладки. Моделирование может взаимодействовать с эмулируемыми экранами пользовательского интерфейса, содержащими общие поля пользовательского интерфейса. Графические графики моделирования могут быть созданы.
Также имеется поддержка генерации исполняемого кода из State Machines как для моделирования, так и для использования в приложениях.
Модели BPMN (с использованием BPSim) можно моделировать, создавая табличные результаты для анализа. BPSim также поддерживает моделирование, основанное на вероятности Монте-Карло.
Моделирование SysML поддерживается для IBD и параметрических моделей с использованием Open Modelica или Matlab (с использованием Simulink и Simscape). Математические формулы во внутренних блок-схемах и параметрических моделях SysML можно моделировать для построения графиков, используемых в анализе.
Симуляция также поддерживается для DMN ( модель решения и нотация ). Моделирование включает создание кода, который можно использовать в приложениях, и поддерживает взаимодействие между моделями DMN и моделями BPMN с помощью BPSim.
Разработка системы
В соответствии с принципами разработки, управляемой моделями, Enterprise Architect предоставляет интегрированную среду разработки, которая поддерживает редактирование кода (с подсветкой синтаксиса и Intellisense ) для построения, отладки и тестирования кода изнутри модели.
Вайрфрейминг
Каркасное моделирование поддерживает использование шаблонов для моделирования внешнего вида диалогов, представляемых пользователям при взаимодействии с приложением. Поддерживаемые диалоговые окна устройств включают: экранные диалоги, веб-страницы, телефоны и планшеты Android, Apple и Windows 8.1.
Управление тестированием
Для тестирования на основе кода существует поддержка как xUnit Testing (это включает преобразование MDA классов в классы NUnit или Junit с возможностью генерировать модульные тесты из модели и автоматически записывать результаты по тестируемым классам). и Testpoint-тестирование (тестирование кода на основе модели. Оно аналогично тестовым контрактам, определенным в «Design by Contract», и выполняется с использованием определений отладки. Оба метода поддерживают определения тестов и результаты тестирования, которые регистрируются для связанных классов в модели.
Визуальный анализ исполнения
Системная инженерия
Моделирование данных
Enterprise Architect поддерживает моделирование данных от концептуального до физического уровней, прямое и обратное проектирование схем баз данных и преобразование MDA логической (независимой от платформы) в физическую СУБД (зависит от платформы).
Поддерживаемые типы диаграмм включают: нотацию DDL, нотацию ERD, нотацию IDEF1X, нотацию информационной инженерии.
Управление проектами и изменениями
Интеграция с другими инструментами
Pro Cloud Server Integration поддерживает интеграцию данных от внешних поставщиков, включая Application Lifecycle Management, Jazz (DOORS, Rhapsody DM, Team Concert CCM & QM), Jira, Confluence, TFS, Wrike, ServiceNow, Autodesk, Bugzilla, Salesforce и SharePoint.
Data Miner предоставляет средства извлечения данных из ряда внешних источников данных, включая: базы данных (ODBC, ADO, OLEDB, JET), текстовые файлы (XML, JSON, простой текст), Excel (xls, CSV) и онлайн-файлы. или URL-адреса.
Среди доступных надстроек есть интерфейсы к Microsoft Office и DOORS, а также надстройки сторонних производителей.
Готовим проект в Sparx Enterprise Architect. Наш рецепт
Дорогой Хабр, мы решили поделиться заметками и нашим базовым рецептом о приготовлении проектов в Sparx Enterprise Architect. Причем под проектом мы подразумеваем создание какой-либо информационной системы. Впереди вас ждет рассказ о том, как у нас все организовано – примеры диаграмм, структура проекта в Enterprise Architect, немного о требованиях, проектировании и постановках на разработку.
1. Вместо предисловия
1.1. Про начало
Давным-давно, в далёкой-далёкой галактике… Не, не то. Давным-давно, кажется, в прошлую пятницу мы решили, что, пожалуй, хватит ворда, бумаги, отдельных задач jira и т.п. – пора использовать что-то более подходящее. Стало неудобно, так как всё путалось в кросс-ссылках, в разных способах поддерживать историчность и нескольких подходах. Так начался наш путь к использованию Enterprise Architect (EA). Почему хватит? Причин очень много. У каждого из участников процесса она своя. Основная причина – абсолютная власть.
Дарт Сидиус проводит анализ влияния. Синим цветом показаны зависимости (кадр из фильма “Звёздные войны: Эпизод 3 – Месть Ситхов”)
Абсолютная власть в том смысле, что нам очень хотелось влиять на умы и править всеми понимать связи между элементами создаваемых информационных систем (элементы в широком смысле — не только то, что разрабатывается и работает потом, но и требования, и спецификации и прочее, что использовано при создании системы) и не просто понимать, а ещё и быстро эти самые связи находить, анализировать, показывать заказчику, для которого “любое изменение можно реализовать за один день и непонятно, почему вам нужно две недели”.
Совершенно справедливый вопрос — “Почему вы выбрали именно Enterprise Architect, а не любой другой инструмент?” На момент, когда процесс начался, в нашем активе были jira, confluence, MS office, SP, Sybase Power Designer (сейчас это SAP Power Desiner) и Sparx Enterprise Architect. Собственно, вопрос решили личные предпочтения и навыки EA на тот момент (это были 2011-2012 годы), а также люди, которые были первопроходцами и отдали сердца и умы Enterprise Architect. Возможно, это было ошибкой.
1.2. Немного капитанства
Основные этапы жизни проекта по созданию информационной системы (да и в целом, наверно, почти любого проекта с точностью до определения каждого этапа) вполне очевидны – как по ГОСТ, так и просто исходя из здравого смысла. Это:
Для концепций мы пока не применяем Enterprise Architect, так как обычно нужно все делать быстро, срочно, очень красиво. Так что это word, visio c различными расширениями или иные рисовалки (где ну вообще красота). Эскиз, к сожалению, заказчика не интересует, хотя мы бы и рады готовить его в EA. Два последние пункта – это или про ошибки (они решаются (во всяком случае у нас) иными средствами и инструментами) или про доработки, и тогда это всё заворачивается в пункты 3-5.
Поэтому поговорим про такие этапы, как техническое задание (сбор и выявление требований), техническое проектирование (разработка архитектуры), рабочее проектирование (разработка и дизайн).
1.3. Для тех, кому не терпится попробовать результат (спойлер)
Диаграмма компонентов (в данном случае каждый компонент – это один модуль развёртывания), связей между ними, базовых протоколов.
Диаграмма развёртывания общего программного обеспечения по узлам, с указанием основных связей
2. Про рецептуру
2.1. Ингредиенты
Вот основное, что вам нужно.
2.1.1. Про дискомфорт
2.1.2. Про метамодель
На наш взгляд, осознанно или подсознательно практически любая команда людей, вовлечённая в процесс создания чего-либо, может про это рассказать: что она создаёт, из чего это состоит, как работает и т.д. Может быть, не очень красиво или связно, может, с «дырами» в изложении. Но, тем не менее, может. Так и в случае с созданием информационной системы. На верхнем уровне мы наверняка все представляем, что есть требования – функциональные и какие-то ещё, важные и не очень, чёткие и размытые, есть что-то, что показывает базовые принципы воплощения этих требований – какие блоки в системе, какие основные технологии использованы, что систему окружает, как всё это между собой связано. Есть детализация и требований, и принципов реализации, описание структур данных и т.п. Все эти основные части и правила связи между ними мы и назвали «метамоделью».
Наша метамодель. Красавица!
В нашем рецепте метамодель достаточно фигуриста – наметим её контуры и дальше рассмотрим каждую часть чуть детальнее:
2.1.3. Про язык
Не можем похвастаться долгими муками выбора, так как мы практически сразу выбрали UML как наиболее распространённый вариант. Ну и «понеслась». Наверняка можно бы использовать различные связки различных языков и нотаций и, наверно, мы к этому придём, выбрав для каждой из частей метамодели свой, но пока мы счастливо избавлены и от мук выбора, и от скрещивания нотаций и языков.
2.1.4. Про знания Enterprise Architect
В самом начале знаний не было. В смысле, конечно, были, но фрагментарные, о том, как работать одному или как формировать простые документы. В общем, глядя назад, поражаешься нашим слабоумию и отваге уверенности в себе и скорости обучения. С тех пор, погружаясь всё больше в пучины Enterprise Architect, мы всё равно открываем для себя новые горизонты. Сейчас мы владеем следующими аспектами: работа с проектом EA и элементами, версионирование, разграничение доступа, генерация документов.
2.2. Готовка
Итак, у нас есть дискомфорт, метамодель, формальный язык, знания Enterprise Architect, дружная команда, лень, кофе, терпение и гибкость.
Теперь нужно взять EA, создать в нём проект, создать структуру согласно нашей метамодели и начать вносить элементы и связи.
Пробуем – смотрим на результат, оцениваем – понравилось, применяем дальше. Не понравилось – корректируем метамодель, обновляем элементы, связи и так пока не приготовим.
Как понять, что не понравилось? Вам не нравится, вам ещё больше неудобно, вы не ощущаете пользы. Как-то очень банально и неопределённо, да? Вы совершенно правы, дорогие читатели. Но каких-то очень чётких и строгих критериев для общего случая предложить сложно, да и, наверно, не нужно. Но мы, конечно, поделимся нашим опытом.
2.2.1. Про проект (который в EA)
Проект в Enterprise Architect состоит из набора корневых пакетов.
В свою очередь, каждый корневой пакет может содержать другие пакеты. А каждый обычный пакет – элементы (здесь под элементами подразумеваются элементы EA) и диаграммы.
Корневые каталоги могут быть размещены локально – в EAP файле, а могут – централизованно в базе данных. Кроме этого каждый пакет может быть сохранён в виде xml в репозиторий системы контроля версий.
С хранением проекта в БД мы не справились. Сначала это было классно – изменения отражались у всех, но спустя какое-то время у нас начались ошибки, какие-то непонятные ситуации с исчезновением элементов и т.п. В итоге мы плюнули это лечить и на время забыли. Но систему контроля версий мы потянули и прикрутили SVN.
Проект в Enterprise Architect
В самом примитивном варианте вы можете создать основные части вашей метамодели как корневые пакеты или пакеты первого уровня и получить структуру для хранения элементов модели и связей между ними. В нашем примере чуть сложнее, так как какие-то из этих частей размазаны по пакетам первого уровня. Но в целом принцип прослеживается. Кроме этого, «прикрутив» SVN мы получили возможность работы с ветками и релизами и разграничение доступа по принципу «один пакет – один владелец».
2.2.2. Про требования
Требование (как элемент EA) выглядит вот так:
Пример требования про обеспечение электронного взаимодействия
Так выглядит преобладающее большинство элементов EA для UML (так что видел один – видел и остальные).
Метамодель, в части требований, у нас достаточно скучная – ниже как раз эта часть более крупным планом.
В целом сказать чего-то особенного нечего – создаём требование, формулируем его и, при необходимости, связываем с другими требованиями. Но есть одно «но» – у нас требования в стадии активного выявления и сбора не прижились в EA. И мы шлёпаем их по старинке – напрямую в word.
Неоднократно задумывались, почему так происходит. На текущий момент мы пришли к следующим выводам.
2.2.3. Про структуру
Когда базовые требования были собраны, мы начали набрасывать проектные решения – структуру ИС, технологии, связи между компонентами, отдельные технические решения согласно вот этой части метамодели:
Это происходило так. Создавалась диаграмма для несуществующего пока решения. Благодаря этому мы накапливали в проекте Enterprise Architect элементы, описывающие систему и при формировании решений, в которых эти элементы были задействованы, мы просто повторно их использовали, перетаскивая на нужные диаграммы. В этом случае как раз и начинают работать связи, необходимые для анализа влияния.
Для описания структуры мы использовали четыре типа диаграмм – вариантов использования, компонентов, развёртывания и классов (для описания логической модели данных). Плюс к этому в ряде случаев в ход шли возможности EA по использованию внешних объектов – рисунков, файлов, rich-text документов.
Вот как, например, выглядит описания одного физического компонента (эквивалента модуля развёртывания) на диаграмме, в проекте EA и его связи, и ничего сложного.
2.2.4. Про постановки
После того, как базовые решения выработаны, можно приступать к дизайну и разработке программного кода, но для последнего нужны «постановки на разработку».
Постановка включает в себя описание того, как детально должна работать ИС в части какой-то функции или сценария работы, какие компоненты и методы в это вовлечены, какие сущности логической модели данных использованы.
На всякий случай – здесь и далее под функцией системы (описанной как пиктограмма варианта использования) подразумевается некий сложный процесс работы системы, например, обработка заявления на открытие накопительного счёта от пользователя может скрывать «развесистый» процесс взаимодействия нескольких системы или же частей одной системы.
На данном этапе функция системы – центр. Вокруг центра строятся следующие работы.
Сам процесс передачи организован через jira – создаётся задача, в ней указано место в проекте EA, где находится постановка, а также ветка SVN.
Постановка выглядит так:
2.2.5. Про дизайн
Дизайн включает описание базовых классов, программных интерфейсов, пакетов (в терминах java) и их связей с со структурой системы.
Помимо этого в дизайне у нас есть порядок взаимодействия компонентов и классов, показывающих реализацию функций системы.
Эту часть рецепта мы пока держим в секрете.
3. Вместо заключения
Пройдя несколько сумбурно описанные шаги нашего рецепта, мы получили наше блюдо – проект в EA.
Кому-то наш рецепт покажется странным, нелепым. Кто-то почерпнёт для себя новое. Кто-то начнёт готовить и будет рад результату, а кто-то нет.
И это нормально – ведь это только наш рецепт, для нашей IT-кухни.
Мы уверены надеемся, что наши заметки не будут приняты в штыки и что будет конструктивная критика и полезные вопросы, отталкиваясь от которых мы сможем подкорректировать наш рецепт и продолжить наши заметки про использование Enterprise Architect и их публикацию на Хабре.