Наша текущая кодовая база не структурирована
очень хорошо, и мы смотрим как на
как улучшить это немедленно [...]
и перейти к модели, управляемой
архитектурный подход, где мы моделируем
и спроектировать все сначала с помощью UML,
затем сгенерируйте код из этой модели.
Во-первых, замечательно, что вы и ваша компания понимаете, что в вашем процессе разработки программного обеспечения есть некоторые недостатки и существует желание улучшить .
Однако кажется, что перед вами довольно много работы и много вещей, которые можно улучшить в разных направлениях. Мой первый совет - не пытаться изменить все сразу. Люди обычно неохотно идут на изменения, и каждому нужно время, чтобы переварить новые изменения. Также очень важно создать общее понимание того, что необходимо настроить. Это общее понимание не будет создано за один день. Такое изменение требует среднесрочного или долгосрочного обязательства .
Затем, что касается MDA, важно заметить, что для этого требуется некоторая дисциплина . В зависимости от вашей команды, первая часть может хорошо поработать над этим, чтобы подготовиться к следующему шагу, который будет представлять MDA. Я говорю это, потому что вы говорите, что у вас есть «ковбойский» процесс, что означает, что люди, вероятно, привыкли делать все, что хотят, - это отсутствие права на MDA.
Затем следует введение самого MDA. Существуют различные способы сделать MDA (и я не буду подробно останавливаться на этом), но все еще преобладающим способом является так называемая технология туда-обратно . Самая большая проблема заключается в том, чтобы поддерживать синхронизацию модели и источника.
(Я полагаю, что MDA приводит к положительному возврату инвестиций только в том случае, если модель можно использовать повторно для нескольких проектов. Это означает, что вы, должно быть, определили, что вы делаете снова и снова, и имеете достаточно четкое представление проблема в том, чтобы иметь возможность создать достаточно полную модель и преобразования, которые вы можете повторно использовать в рамках всего проекта. Я не верю, что MDA работает, если каждый проект полностью отличается, время, потраченное на то, чтобы получить правильную модель, преобразование и т. д., быть больше, чем работать только с кодом и документацией.)
Другой подход состоит в том, чтобы не выполнять MDA полностью - вы не генерируете код из модели - но повышаете осведомленность людей о проблемах моделирования и проектирования, например. с UML. Таким образом, вы не столкнетесь с проблемой кругового обхода, но все же улучшите зрелость процесса разработки программного обеспечения.