Автор статьи: Максим Рогоза

Я использую Архимейт в своей работе уже более 7 лет. Когда я познакомился с этим языком, то он привлек меня тем, что позволял изображать систему в динамике, то есть отображать не только структуру программы, но и бизнес-процессы, которые она автоматизирует, и средства, на которых она развернута. К тому же Архимейт казался очень простым — подумаешь, каких-то 10 стрелок и 20 компонентов. На тот момент я был уже очень опытным программистом и архитектором, у меня был огромный опыт проектирования систем и баз данных, также я на приличном уровне освоил несколько языков программирования. И казалось, что выучить такой простой язык — это дело нескольких часов.

Но как же я был не прав: приличные Архимейт модели у меня стали получаться только через 3 месяца, а спустя год я понял, что всё, что я рисовал ранее — хорошо бы перерисовать (справедливости ради, это был все-таки перфекционизм). Но вот почему Архимейт оказалось освоить совсем не так просто?

Несколько позже, когда я уже сам стал обучать других людей языку Ахимейт, то я понял, что с этой проблемой сталкиваются практически все, кто начинает погружаться в этот язык. Опытные разработчики легко запоминают все элементы языка, но вот как только дело доходит до моделирования — начинаются проблемы. Люди. Знакомые с UML изображают статичные архитектурные схемы — похожие на компонентные диаграммы UML. Специалисты, знакомые с BPML или другими нотациями описания бизнес-процессов, рисуют хорошие схемы, описывающие бизнес-процессы. Но вот объединить все в единую модель, как задумали создатели Архимейта, поначалу не получается ни у кого.

Понять, в чем причина, мне удалось благодаря тому, что на тот момент я увлекся изучением норвежского языка, и в процессе изучения мне удалось нащупать некоторые параллели. И ведь действительно, Архимейт — это язык, то есть сложная знаковая система, соотносящая понятийное содержание и типовое звучание (написание). Одним словом, такой же язык, как и те, что используют люди для письма. А ведь изучение любого языка — это не только изучение слов и грамматических правил. Чтобы изучить язык, обязательно нужна практика. С помощью практики мозг учится использовать языковые конструкции для описания мыслей и образов, которые существуют у человека в виде некого ментального представления. Невозможно перевести текст с одного языка на другой, просто подставляя слова одного языка на место слов другого. Даже перестроения фразы под новые грамматические конструкции будет недостаточно. Чтобы хорошо перевести текст с одного языка на другой, нужно прочитать фразу, осознать ее, и после построить новую, используя языковые конструкции второго языка. Ровно по этой же причине люди, знакомые с каким-то языком моделирования, не могут сразу начать полноценно моделировать на Архимейт. Архимейт может использовать похожие компоненты и связи, но структура языка получается другой, и модели другие.

У меня на изучение Архимейта до уровня, когда я смог сносно рисовать модели, ушло 3 месяца. Конечно, что-то я мог рисовать гораздо раньше, но вот именно сложные модели стали получаться за такой срок. Кстати говоря, норвежский на базовом уровне я смог освоить за такой же срок, так что процессы обучения новому языку происходят примерно одинаково. Оба языка я изучал полностью самостоятельно — то есть рисовал, ну или говорил, потом смотрел/слушал, исправлял, потом снова рисовал и так далее, пока не стало получаться хорошо. В последствии мне пришлось обучать Архимейту других людей и в построении обучения я начал использовать тот же подход — основной упор на практику и разбор ошибок.

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

Кстати сказать, в начале каждого курса у меня возникают моменты, когда студенты начинают просить показать серьезные модели или жалуются на то, что в качестве примера я показываю простые «синтетические» диаграммы. Им кажется, что это не серьезно. Но ведь и изучение иностранных языков все начинают с фраз типа My name is Vasya, а не с чтения поэм Шекспира. В начале обучения мозг не способен воспринимать сложные языковые конструкции — да, их можно запомнить, но понимания не будет, и не будет возможности на их основе строить что-то свое. Поэтому правильный подход к изучению любого языка (включая Архимейт) — это обучение от простого к сложному и обязательно практика, лучше в группе (аналог погружению в языковую среду). Тогда обучение получается легким и эффективным.

В заключение хотелось бы дать такой совет: если вы решили самостоятельно освоить Архимейт — не надейтесь, что вы сделаете это быстро, не пытайтесь искать в интернете схемы и их копировать — гораздо лучше начать потихоньку моделировать какие-то простые вещи, а потом самостоятельно и критически разбирать то, что получилось. Если есть возможность обратиться к коллеге или другу, знакомому с языком, то можете показывать свои модели для получения обратной связи и так, постепенно усложняя, вы обязательно освоите моделирование. Особенно, если у вас уже есть опыт использования других архитектурных языков. Если же есть возможность учиться в группе, то обучение для вас пройдет гораздо проще и быстрее. Если время и средства позволяют, не отказывайте себе в такой возможности — так вы потратите гораздо меньше своего времени, а результат будет несомненно лучше.

Первые шаги можно сделать, посетив открытый урок «Описание имплементации и внедрения на языке Архимейт». На нем изучим назначение слоя имплементации и внедрения, его назначение и практику применения. Записаться можно по ссылке.

Комментарии (6)


  1. SUNsung
    18.03.2024 21:16
    +6

    Для всех тех кто как я зантересовался наглой рекламой курса по открытому продукту Аrchimate.

    На хабре есть редкие статьи (зачастую такие же рекламные) с обзорами (обсерами) в коментариях.

    В интернете мнение не слишком отличается.

    .

    Это не золотая пуля и даже не простая удобная замена uml диаграм.

    Это нишевый инструмент для нишевых задач (я бы даже сказал решений).

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


    1. atshaman
      18.03.2024 21:16

      КМК не замена "набору диаграмм и текстовых пояснений". Скажем, интеграционный дизайн в достаточно крупных системах в archimate ложится сильно лучше, чем в классический UML или там C4 диаграммы.

      Правда есть у меня нехорошее ощущение, что в PowerPoint презенташке потребителям уровня "владельца системы" еще бы и лучше зашло, чем эти "20 типов стрелочек и куча квадратиков" - но рисовальщикам презентаций платят все-ж таки меньше :)


  1. hello_my_name_is_dany
    18.03.2024 21:16
    +2

    Так как всё же быстро выучить Archimate? Записаться на курс? )))


  1. peacemakerv
    18.03.2024 21:16
    +8

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


    1. AlexGorky
      18.03.2024 21:16
      +3

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


  1. Tzimie
    18.03.2024 21:16

    "Но как же я был не прав: приличные Архимейт модели у меня стали получаться только через 3 месяца, а спустя год я понял, что всё, что я рисовал ранее — хорошо бы перерисовать" - а стоит ли тогда заниматься этой неведомой хренью?