Каковы преимущества и риски переезда в подход к создаваемой модели архитектуры?

StackOverflow https://stackoverflow.com/questions/2702206

  •  01-10-2019
  •  | 
  •  

Вопрос

Я работаю в компании с 350 сотрудниками, и мы находимся в процессе роста. Наша текущая кодовая база не очень хорошо структурирована, и мы смотрим как на то, как его немедленно улучшить (путем организации объектов в пространства имен, разделяющие проблемы и т. Д.) И переход к подходу архитектуры приводят к модуции, где мы моделируем и проектируем все сначала с UML Затем создайте код из этой модели. Мы тяжело смотрим на Sparx Systems Enterparty Architect (EA) (который является уменьшенным UML 2.0), и мы также рассматриваем инструменты в против 2010 года. Я знаю, что там есть другие инструменты (Rational Xde - один), но я действительно не Думаю, мы можем потратить $ 1500 + за лицензию в этот момент.

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

Это было полезно?

Решение

Наша текущая кодовая база не очень хорошо структурирована, и мы смотрим как в том, как его немедленно улучшить [...] и переходить к приводу в архитектуре, где мы смотрим и проектируем все сначала с UML, затем генерируйте код из этой модели.

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

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

Тогда, относительно MDA, важно отметить, что это требует некоторых дисциплина. Отказ В зависимости от вашей команды, первая часть вполне может работать над тем, что сначала в пути подготовить следующий шаг, который будет ввести MDA. Я говорю, что, потому что вы говорите, что у вас есть процесс «ковбоя», что означает, что люди, вероятно, используются для того, чтобы делать все, что они хотят - это бездействует MDA.

Затем приходит введение самого MDA. Есть различные способы сделать MDA (и я не буду расширяться в Thsat здесь), но все еще преобладающий способ сделать это, это так называемый туристическая инженерия. Отказ Тогда самая большая проблема состоит в том, чтобы сохранить модель и источник синхронизирован.

(Мое предложение - это то, что MDA приводит к положительному доступу от инвестиций только в том случае, если модель может быть повторно использована для нескольких проектов. Это означает, что вы, должно быть, выявили вещи, которые вы делаете снова и снова, и иметь достаточно четкого взгляда на проблему Будьте в состоянии создать достаточно полную модель и преобразование, которые вы можете повторно использовать в рамках проекта. Я не верю, что MDA работает, если каждый проект совершенно другой; время, потраченное на то, чтобы получить правильную модель и преобразование и т. Д. будет больше Работа только с кодом и документацией.)

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

Другие советы

Мы сделали это один раз с 3 MLOC Logistic Planner System, и она работала хорошо. Тем не менее, мы реализовали рано в том, что UML не будет достаточно. Просто слишком тупые для захвата уровня деталей, необходимых для спецификации. Лучший способ был на самом деле использовать псевдо-код (все все равно его используют для общения идей)! Вот как проводилась реализация. Использование UML чувствовала себя как шаг от ясности.

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

В конце концов, переход от модели к коду был очень гладкой. Действительно хорошая часть была, ИМХО, используйте VCS, которые позволили вам увидеть даже оригинальный псевдокод без коммутации среды.

Я написал свой бакалаторный тезис о разработке программного обеспечения модели, и я просто хочу предупредить вас, что действительно важно использовать хороший подход для выполнения того, что ваша компания намерена. Есть много вещей, которые могут пойти не так, например, например, для редактирования сгенерированного кода напрямую, с возможностью генерировать только один раз, Becaause вручную отредактированный код будет удален после поколения, вы должны сделать какой-то анализ домена для создания хорошей модели Meta и использовать хорошую Code General Framework ... Пожалуйста, не понимаете меня неправильно, я думаю, что MDSD отлично, но просто позаботься, как вы это сделаете. Оригинальные MDA и книги по этому поводу предложили очень плохие наступления, которые слишком дорого и слишком хрупкие. Я предлагаю вам взглянуть на веб-сайт Voelter.de, где вы можете найти документы, презентации и подкасты из Маркуса Воельтер, который является очень опытным консультантом в этой области.

Для меня ключевой аспект должен быть прагматичным иногда. Моделирование не должно быть логической активностью (мы не моделируем, либо не модель). Мы должны быть в состоянии адаптировать уровень / точность моделирования к характеристикам проекта (см. Например, что люди работают над гибким моделированием) и компании. Слишком мало или слишком много моделирования может быть проблематичным (с слишком мало вы не видите преимущества, слишком многое может быть перенесено для вашей компании, особенно если вы начинаете переход или у вас нет необходимых инструментов)

В моем портале / блоге (http://modeling-languages.com.) Мы часто обсуждаем о преимуществах моделирования или как можно использовать моделирование. Вы можете найти это интересно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top