OutSystems AI Mentor Studio とは? ~AIが技術的負債を自動検出して解決方法を提示~(vol.20)

  • 公開日:2023年11月13日(月)

アプリケーション開発における課題には、アーキテクチャ/パフォーマンス/セキュリティ/技術的負債など様々な側面がありますが、OutSystemsの「AI Mentor Studio」という機能を利用することで、アプリケーションの技術的負債やアーキテクチャを横断的/効率的に管理することができます。
本ブログ記事では、AI Mentor Studio」の機能概要とプロジェクトにおける活用方法を解説します。

*技術的負債とは、ソフトウェア開発において、差し迫ったニーズを満たすため、品質よりスピードを選んだ代償として将来的に修正や改善が必要となる問題(将来的な修正や改善コストに必要なコスト)=一時的に早急な対応を選んだ代償として将来的に支払わなければならない負債のことです。

OutSystems AI Mentor Studio とは?

OutSystemsのAI Mentor Studio」は、AI技術を活用したアプリケーション開発支援機能(SaaS型ツール)です。AIによりOutSystems環境全体のアプリケーションの品質分析を行い、ベストプラクティスをレコメンドしてくれます。
*「AI Mentor Studio」は、もともとは「Architecture Dashboard」という名称でしたが、現在は「AI Mentor System」ファミリーの一部として、「AI Mentor Studio」へ名称変更されました。

AI Mentor Studio」は、アプリケーションの技術的負債の検出/管理を目的とした「コード解析ツール」に該当します。アプリケーションコードとパフォーマンスを自動的に分析し、アプリケーションのアーキテクチャー/セキュリティ/パフォーマンス/保守性を改善するための推奨事項を確認することができます。

視覚的なダッシュボードのヒートマップにより、OutSystemsアプリケーション全体の技術的負債とモジュール間の依存関係が可視化され、問題箇所を素早く特定し、優先的に対応することができます。

また、ダッシュボードからドリルダウンすることで、ベストプラクティスに準拠していない箇所 と その影響範囲や修正方法 が詳細なレポートとして表示されます。各モジュール内の問題のある要素はレポートに紐付けられているため、開発者は問題のあるアプリケーションコードへすばやくアクセスして問題に対処することができます。

AI Mentor Studio」を活用することによるメリットは、大別して2つあります。
技術リーダー/アーキテクトにとってのメリットは、保有するアプリケーションポートフォリオの構成を把握し、問題の特定を迅速化できることです。
また、開発者にとってのメリットは、開発上のベストプラクティスを参照し、陥りがちな実装上の問題(保守性、品質、性能面などの課題)を避けることができることです。

そこで次章からは、技術リーダー/アーキテクトの立場と開発者の立場において、それぞれどのように「AI Mentor Studio」を活用できるのか、具体的な機能について解説します。

OutSystems AI Mentor Studio で技術的負債を自動検出し、管理する方法とは?

本章では、技術リーダー/アーキテクトの立場から、技術的負債を検出/管理するための「AI Mentor Studio」の各種機能について解説します。

インフラの概要

「インフラの概要」では、ダッシュボードのヒートマップとは別に、OutSystemsプラットフォーム上のアプリケーションの技術的負債の概要/推移を把握できます。
参照可能な要素は下図の通りです。

技術的負債(Technical debt)

「技術的負債」では、開発スパン(2週毎/1ヶ月毎/3ヶ月毎)の区切りで、技術的負債の増減傾向を把握することができます。
開発スケジュール及び当該スケジュール期間中の開発対象に対して、適切なアーキテクチャ/実装がなされているかを推測/把握することが可能になります。

各カテゴリの技術的負債(Technical debt per category)

「各カテゴリの技術的負債」では、コードパターンのカテゴリ分布 と 管理画面(Factory)上での技術的負債の結果総数 を確認できます。
どのコードパターンカテゴリに技術的負債が含まれているかを評価することで、その割合を各カテゴリの調査結果の数(絶対値)と関連付けて確認できます。

大きな技術的負債を含む上位のコードパターン(Top code patterns with highest technical debt)

技術的負債のコードパターンがヒートマップとして表示されます。領域が大きいほど技術的負債の度合い(技術的負債のウェイト×検出項目数)が高いコードパターンを、領域が小さいほどインフラストラクチャの技術的負債の度合いが低いコードパターンを意味します。

技術的負債の変化と検出項目の変化の比較(Technical debt variation vs. number of findings)

技術的負債の変動と調査結果の数の進行状況ビューを日単位で表示/確認できます。
日ごとに、未解決/新規/解決済 の調査結果の数を確認することができます。

技術的負債が最大のアプリ(Apps by highest technical debt)

技術的負債の原因となっているアプリケーションのランキングが表示されます。
リリース直後のバグ曲線が落ち着いていない状況の概観を把握できます。

OutSystems AI Mentor Studio で技術的負債の原因を特定し、効率的に対処する方法とは?

本章では、開発者の立場から、技術的負債の原因を特定し、効率的に対処するための「AI Mentor Studio」の各種機能について、技術的負債への対応手順を踏まえ、モデルケースを交えて解説します。

  1. アプリケーションの技術的負債を把握する
    AI Mentor Studio」のダッシュボードから、技術的負債の状況を確認したいアプリケーションを選択します。

    選択すると左ペインの表示が切り替わり、技術的負債の最大/最小の指標と、「アプリレポートを開く」ボタン と 「モジュールを開く」ボタン が表示されます。

  2. 対象アプリのレポート/詳細を把握する
    「アプリレポートを開く」ボタンを選択すると、選択しているアプリケーションのレポート画面に切り替わります。

    「モジュールを開く」ボタンを選択すると、選択しているアプリケーションを構成するモジュールの一覧が表示されます。さらにここから、「モジュールレポートを開く」で詳細情報を確認/参照できます。

  3. モジュールの技術的負債の原因を特定する
    「モジュールレポートを開く」ボタンを選択すると、レポート画面に遷移します。
    レポート画面ではチーム/特定のアプリ/モジュール/カテゴリ/分析された時期/調査結果のステータス/特定のユーザー に基づいてフィルタリングが可能です。
    レポートの機能を用いることで効率的な原因調査が可能となります。
  4. モジュールの技術的負債の原因を理解する
    右ペインの「影響」プルダウンを選択することで、コードパターンによって、どのように技術的負債が生じるか、理由の説明を参照/確認できます。
  5. モジュールの技術的負債の解決方法や解決に必要な労力を把握する
    「修正方法」プルダウンを選択することで、技術的負債の解決方法が示されます。
    また、修正方法以外にもコードパターンの修正に必要な労力も把握できます。
  6. 技術的負債の調査結果を修正して解決する
    「検出結果」セクションにはコードパターンの出現箇所がすべて表示されます。

    パスアイコンをクリックすると、各検出結果が発生するモジュールと要素を確認できます。[Service Studio で開く] アイコンをクリックすることで、該当コードパターンが発生する要素に移動・参照することができます。

    また、「Status」の▼をクリックすると、対応ステータスを個別または一括で変更できます。

OutSystems AI Mentor Studio の活用方法とは?

AI Mentor Studio」の機能は一通り解説しましたが、実際のアプリ開発プロジェクトや開発したアプリのメンテナンスにおいて、どのように活用するのが効果的なのでしょうか?一例をご紹介します。

  1. すべての開発フェーズにおけるレビュー支援
    AI Mentor Studio」が開発中のコードベース全体から潜在的な問題を特定し、解決策とベストプラクティスを提供してくれるので、開発チームはプロダクトの開発に専念することできます。さらに、超高速開発を可能とするOutSystemsの開発支援機能とローコード開発を組み合わせることで、迅速かつ品質を保ったアプリ開発を実現できます。
  2. リリース後の対応優先付け と クリーンなコードベースの維持
    AI Mentor Studio」によって、対応すべき課題や技術的負債の難易度とコードベースに占める割合(ボリューム)が示されるので、対応優先度の検討時間や判断コストが大幅に削減できます。
    例えば、「AI Mentor Studio」のダッシュボードのレビューを毎週行い、その結果を確認/対応していくことで、コードベースをクリーンな状態に維持することが可能です。
  3. 市民開発/超高速開発の推進
    AI Mentor Studio」による分析結果のカテゴリーは、トレーニングが必要な箇所 や ビジネス上のリスクなどがある箇所 を特定するのにも役立ちます。これにより、社内教育/人材育成方針の検討 や ビジネスリスクを前もって抑止する など、システム開発だけに留まらない活用が可能です。

OutSystems AI Mentor Studio 以外のAIを活用したオススメ機能とは?

前述の通り、「AI Mentor Studio」は、「AI Mentor System」というソフトウェア開発ライフサイクル全体をサポートする、画期的なAIベースの開発/品質分析ツールの一部です。
「AI Mentor System」というブランド名の下に、様々な機能が集結している構造となっています。

 AI Mentor System
   – Service Studio(旧 Developer Studio)のAI支援開発機能
   – AI Mentor Studio(旧 Architecture Dashboard)
     - AI Architecture Mentor
     – AI Security Mentor
     – AI Performance Mentor
     – AI Maintainability Mentor

本章では、「AI Mentor System」の主要機能の概要をご紹介します。
*詳しくは今後、別のブログ記事でご紹介予定です。

  • AI Code Mentor
    画期的なAI支援開発により、次に求められる行動を予測し、最善の選択肢を提案し、ビジネスロジックとコンテキストに適応させて構成を行ったうえで開発者のコードに追加します。
    さらに、開発者はアプリケーションに必要となる複雑なデータを自然言語で記述できるほか、組み込みAIによって適切なSQLクエリを自動生成することで、大幅に作業時間を短縮することができます。
  • AI Security Mentor
    ベースのセキュリティ責任者としてコードをレビューすることで、開発プロセスに潜むコードの脆弱性を特定します。
  • AI Performance Mentor
    Alベースのパフォーマンスエキスパートとしてコードをレビューすることで、想定されるパフォーマンスのボトルネックを特定し、アプリの一貫した動作を保証します。

まとめ

さてここまで、OutSystemsの「AI Mentor Studio」について、機能概要や活用方法などを解説して参りました。
ご覧の通り、「AI Mentor Studio」は最新のAI技術を活用することで、OutSystemsの開発者がアプリケーションを迅速かつ簡単に開発できるように支援してくれます。
皆さまも、「AI Mentor Studio」を活用し、より高品質なアプリケーションを開発しましょう。

なお、弊社では「AI Mentor Studio」などのOutSystemsのツールをより効果的に活用するためにCoEチームの組成を推奨しております。CoEチームの有用性や組成方法についてご興味のある方は、是非、弊社までお問い合わせください。

弊社電通総研は、ローコード開発プラットフォーム:OutSystemsの導入/活用を支援する様々なサービスメニューをご用意しております。
ローコード開発のはじめの一歩を、電通総研と一緒に踏み出してみませんか?

電通総研のOutSystems関連サービスページ:https://itsol.dentsusoken.com/outsystems/service/

本ブログは、2023年11月1日時点の情報をもとに作成しています。
OutSystemsに関する詳しいお問い合わせは、弊社Webサイトからお問い合わせください。
https://itsol.dentsusoken.com/outsystems/inquiry/