ソフトウェア開発プロジェクトをエージェントベースでモデリング

エージェントベースのモデリング図

ソフトウェア開発プロジェクト モデルの作成方法

Sergey SuslovとDmitry Katalevsky が著した Modeling and Simulation in Complex Project Management では、プロジェクト管理モデルについて説明しています。

この章では、一般的な問題に取り組みます。一見単純そうに見えますが、実際にはもう少し複雑です。ソフトウェア会社は約 500,000 行のソース コードを開発する必要があり、毎月 3 人の新しい研修生が採用されています。一定の経験を積んだ後、これらの研修生は開発担当者になります。

このビジネス ロジックに基づいて、異なるアプローチを使用して 2 つのモデルを作成しました。1 つ目は system dynamics modelingを使用し、2 つ目は discrete-event modelingを使用しました。

以下の図では、これらが示されています。


ソフトウェア開発プロジェクト システム ダイナミクス ダイアグラム

サブコンポーネント effective_staff を含むソフトウェア開発プロジェクトのシステム ダイナミクス ダイアグラム (このサブコンポーネントは、下の図で詳しく説明されています)


新しいスタッフの配置と同化(教育) - サブコンポーネントのストックとフロー図

新しいスタッフの配置と同化(教育) - サブコンポーネントのストックとフロー図


離散イベント プロセス図 – スタッフの採用とオンボーディング

離散イベント プロセス図 – スタッフの採用とオンボーディング

AnyLogic の際立った機能は、3 つの主要なシミュレーション モデリング 手法 (前述のシステム ダイナミクスと離散イベント、そして最後にエージェント ベースモデリング) に基づいてモデルを構築可能なツール セットであることです。

エージェントベースのモデリングの利点

エージェントベース モデリング (ABM) は、最新のシミュレーション開発手法です。これまで、ABM はコンピュータ ハードウェアの能力によって実用的なアプリケーションが制限されていましたが、PCのテクノロジーが進化するにつれて、この状況は急速に変化しています。シミュレーション サービス市場での競争の激化により、シミュレーションをより効果的かつ効率的に開発するツールの需要がますます高まっています。

システム ダイナミクスと離散イベント アプローチを使用して作成されたモデルと比較して、 ABM の主な利点を、プロジェクト管理シミュレーションの例で見てみましょう。

エージェントベースのモデルの主な対象は、エージェント(この例では人)です。つまり、動作、記憶、および独自の一連の必要な特性を持つことができるエンティティです。さて、この機能がシミュレーション モデル開発に役立つのはなぜでしょうか?

ソフトウェア開発モデルでは、経験豊富な開発者と研修生の両方が製品開発に従事する場合があります。これら 2 つのグループのエージェント (「母集団」) の行動と労働生産性は異なります。ここで、エージェントベースでは、各タイプのエージェントが独自のステートチャート(動作)を持つことができます。

以下に示す最初のステートチャートでは、開発者には 3 つの状態があります:Developing (コードを書く)、AnsweringTraineeQuestions (研修生の教育プロセスに参加)、Communicating (開発者がプロジェクトの開発をしておらず、プロジェクトに関して、同僚との議論に参加している一種のアイドル状態)。

エージェントは、指定された一連の遷移規則に従ってこれらの状態を移動します。たとえば、開発状況について話し合うために、ある開発者が別の開発者にランダムにメッセージを送信できます。ランダムな時間の後、彼らは仕事に戻ります。


開発者ステートチャート

開発者ステートチャート


研修生の状態図

研修生の状態図: この 2 番目の状態図では、研修生の状態を確認できます

エージェントにはいくつかのロジックと変数が含まれていますが、エージェントの動作を設定するために複雑な数式は使用していません。構成プロセスは簡単です。教育者は誰か、研修生の経験はどれくらいか、質問の頻度はどれくらいかなどです。

より明白な要因である従業員の経験に加えて、エージェントベースでは、その他多くの点を考慮することができます。たとえば、研修生ごとに教育者を割り当てることができます。どの教育者が直ちにサポートできるかも重要です。エージェントは、ステートチャート内のメッセージ システムを使用して通信できます。このように、研修生が支援を必要とする場合等の状況をシミュレートすることができます。また、それらの教育係は、教育のために一時的に開発を中断する必要があります。

ある時点で、会社は多数の新入社員に対応する可能性があり、この場合、集合研修が最も合理的で自然な解決策になります。エージェントベースのアプローチにより、個々のエージェントが集団全体と対話でき、このファクターは、ソリューションのスケーラビリティを示しています。

AnyLogic Cloud でモデルを実行するか、以下を参照することで、ソフトウェア開発プロセスに対応するエージェントベースモデルを学習できます。


ソフトウェア開発プロセスダイナミクス AB

結論

ABM は、エージェントの動作ロジックを詳細に「プログラミング」することで、他のアプローチより詳細なモデルを作成できます。システム ダイナミクスとは対照的に、この方法では数式を使用する必要はほとんどありません。エージェントベースでは、ステートチャートを使用して、開発者と研修生の両方のグループに異なる動作(振舞)を設定することが可能です。

すべてのエージェントは、それらの状態に依存する多くの内部変数を含んでいるため、一意です。これを利用して、個々の研修生を異なる教育係に割り当てることで、他のアプローチよりも現実的で、より正確なモデリング結果が得られます。

エージェントベースのアプローチによって提供されるエージェント構成の柔軟性により、小規模プロジェクトと大規模プロジェクトの両方の開発を同等の精度でモデル化できます。プロジェクトが大きくなればなるほど、より多くの労力が必要になります。したがって、スケーラビリティはモデリングの重要な部分であり、エージェント間の関係により、これをうまく実現できます。

エージェントベースのモデリング: 消費者選択モデルに関するワークショップビデオで、ABM とその実用的なアプリケーションについて詳しく学ぶことができます。


毎月のニュースレターを購読 すると、最新のブログ投稿を受信トレイに直接お届けします。

関連記事