現在のコードベースはあまりよく構造化されておらず、すぐに改善する方法と、モデル駆動型アーキテクチャのアプローチに移行することの両方を検討しています。最初にumlを使用してすべてをモデル化および設計し、次にそのモデルからコードを生成します。
まず、あなたとあなたの会社が、ソフトウェア開発プロセスにいくつかの欠陥があり、改善する意欲があることを認識していることは素晴らしいことです。
しかし、目の前にはかなりの作業があり、さまざまな方向で改善すべきことがたくさんあるようです。私の最初のアドバイスは、すべてを一度に変更しようとしないことです。人々は一般的に変化に消極的であり、誰もが新しい変化を消化するためにある程度の時間を必要とします。何を設定する必要があるかについて共通の理解を深めることも非常に重要です。この共通の理解は1日で作成されません。このような変更には、中長期的な取り組みが必要です。
次に、MDAに関しては、ある程度の規律が必要であることに注意することが重要です。チームによっては、最初の部分は、MDAを導入する次のステップを準備する方法で、最初にそれに取り組むことをお勧めします。私はあなたが「カウボーイ」プロセスを持っていると言っているので、それはおそらく人々が彼らが望むことを何でもすることに慣れていることを意味します-それはMDAにとってはダメです。
次に、MDA自体の紹介があります。MDAを実行するにはさまざまな方法があります(ここではこれについては詳しく説明しません)が、それを実行するための依然として主な方法は、いわゆるラウンドトリップエンジニアリングです。その場合の最大の問題は、モデルとソースの同期を維持することです。
(私の考えでは、MDAは、モデルを複数のプロジェクトで再利用できる場合にのみ、投資収益率を向上させます。つまり、何度も行うことを特定し、問題について十分に明確な見解を持っている必要があります。プロジェクト全体で再利用できる十分に完全なモデルと変換を作成できる。各プロジェクトが完全に異なる場合、MDAが機能するとは思わない。モデルを正しくするために費やされる時間や変換などは、コードとドキュメントのみを操作します。)
もう1つのアプローチは、MDAを完全に実行するのではなく(モデルからコードを生成しない)、モデリングや設計の問題について人々の意識を高めることです(UMLなど)。このようにして、ラウンドトリップの問題に直面することはありませんが、ソフトウェア開発プロセスの成熟度を向上させることができます。