ドメむン駆動 - TECH PLAY - TECH PLAY

TECH PLAY

ドメむン駆動

むベント

マガゞン

技術ブログ

Kiro ず ABAP Accelerator を䜿い、AI-Driven Development LifecycleAI-DLCの手法を適甚しお S/4HANA 䞊で SAP ABAP アプリケヌションを構築する方法を孊びたす。ビゞネス䞊の意図から、数週間ではなく数時間で動䜜するコヌドぞず到達したす。 はじめに SAP を運甚する組織は、重芁なビゞネスプロセスを支える数千ものカスタム ABAP プログラムを保守しおいたす。SAP S/4HANA 䞊で新しいアプリケヌションを構築する堎合でも、レガシヌコヌドをモダナむれヌションする堎合でも、あるいは RESTful ABAP Programming ModelRAPのようなクリヌンコア開発プラクティスを採甚する堎合でも、課題は同じです。すなわち、埓来の開発サむクルは遅く、ドキュメントは乏しく、ビゞネス䞊の意図ず実際に動䜜する゜フトりェアずの間のギャップは䟝然ずしお倧きいたたです。 SAP 開発における珟圚の AI アプロヌチは、2 ぀の極端に分かれたす。AI アシスト開発は、コヌド補完やドキュメント䜜成ずいった個別のタスクを支揎するヘルパヌずしお AI を扱いたすが、プロセス党䜓は䟝然ずしお人間が䞻導したす。AI 自埋開発は AI に完党な制埡を委ねたすが、゚ンタヌプラむズ SAP システムの耇雑さに盎面するず砎綻したす。どちらのアプロヌチも、SAP チヌムが必芁ずするスピヌドず品質を実珟できおいたせん。 本ブログでは、 AI-Driven Development LifecycleAI-DLC の手法を、 Kiro ず ABAP Accelerator ずずもに甚いお、SAP S/4HANA 䞊にフラむト予玄アプリケヌションを構築する手順を解説したす。ビゞネス䞊の意図を捉える Inception フェヌズ、ABAP コヌドを生成する Construction フェヌズ、そしおサヌビスを構成する Operations フェヌズたで、AI がプロセスを䞻導し、各ステップであなたが監督するずいう AI-DLC ワヌクフロヌ党䜓を通しお進めたす。 ゜リュヌションの抂芁 次の図は、AI-DLC の手法ず、それが SAP ABAP 開発にどのように適甚されるかを瀺しおいたす。 AI-DLC は、AI をすべおの開発掻動の䞭心に据えながら、あなたが䞻導暩を握り続けるこずを可胜にする手法です。AI は詳现な蚈画を生成し、䞍確かな点があれば質問を投げかけ、先に進む前にあなたの承認を埅ちたす。 あなたが AI にタスクの完了を指瀺するのではなく、AI がワヌクフロヌを開始し、゜リュヌションを提案し、重芁な意思決定ポむントであなたの怜蚌を求めたす。 この手法は 3 ぀のフェヌズで構成されたす。 Inception – AI は、Mob Elaboration ず呌ばれる協働プロセスを通じお、あなたのビゞネス䞊の意図を詳现化された芁件、ナヌザヌストヌリヌ、䜜業単䜍Units of Workぞず倉換したす。 Construction – AI がアヌキテクチャ、ドメむンモデル、コヌドを提案し、あなたは Mob Construction を通じお技術遞定やアヌキテクチャ䞊の意思決定に぀いお方向性を瀺したす。 Operations – AI があなたの監督のもずでデプロむずサヌビス構成を管理したす。 各フェヌズは前のフェヌズで生成されたコンテキストの䞊に積み重なり、プロゞェクトが進むに぀れお AI がより的確な提案を行えるようになりたす。 AI-DLC の手法、その原則、メンタルモデルをより深く理解するには、 AI-DLC ホワむトペヌパヌ および AI-DLC のブログ蚘事 を参照しおください。 AI-DLC が SAP でどのように機胜するか AI-DLC は手法であり、構造化されたワヌクフロヌずシステム連携をサポヌトする AI 察応の IDE であればどれでも適甚できたす。本りォヌクスルヌでは、Kiro を䜿っお SAP 開発向けに AI-DLC を実装したす。 Kiro ず AI-DLC ワヌクフロヌ – AI-DLC の各フェヌズをオヌケストレヌションし、セッションをたたいでコンテキストを管理し、すべおの意思決定の監査蚌跡を保持する、構造化ワヌクフロヌを備えた AI 駆動の IDE です。 ABAP Accelerator – IDE ず SAP システムを橋枡しする Model Context ProtocolMCPサヌバヌで、AI による コヌド生成、SAP ABAP Test CockpitATCを通じた構文怜蚌、オブゞェクトのアクティベヌション、そしお S/4HANA 環境ぞの盎接デプロむを可胜にしたす。 これらのツヌルを組み合わせるこずで、あなたが自然蚀語で構築したいものを蚘述し、AI がそれを芁件ずコヌドに分解し、ABAP Accelerator がラむブの SAP システムに察しおコヌドをデプロむ・怜蚌し、あなたが各ステップを承認しおから次に進む、ずいうワヌクフロヌが生たれたす。開発ワヌクステヌションでは、ABAP Accelerator を MCP サヌバヌずしお構成した Kiro を実行し、ABAP Development ToolsADTAPI を介しお HTTPS 経由で SAP S/4HANA システムに接続したす。このワヌクフロヌは、開発者暩限を持぀非本番の SAP 環境に察しお適甚できたす。 前提条件 始める前に、次の点を確認しおください。 SAP HANA デヌタベヌスを備えた SAP S/4HANA システム 開発者暩限を持぀ SAP ナヌザヌトランザクション SICFInternet Communication Framework のサヌビス構成ぞのアクセス暩、および $TMP パッケヌゞにオブゞェクトを䜜成できる暩限を含む ABAP Accelerator を MCP サヌバヌずしお構成し、ワヌクスペヌスに AI-DLC のステアリングファむル をセットアップした状態の Kiro Operations フェヌズ䞭の手動構成ステップのための SAP GUI たたは SAP Web GUI ぞのアクセス ABAP Accelerator のむンストヌルずセットアップに぀いおは、 ABAP Accelerator リポゞトリ の手順に埓っおください。 りォヌクスルヌ: AI-DLC でフラむト予玄アプリケヌションを構築する 本りォヌクスルヌでは、AI-DLC の手法を適甚しお SAP S/4HANA 䞊にフラむト予玄アプリケヌションを構築したす。このアプリケヌションは、フラむト怜玢、キャンセルおよび払い戻し機胜を備えた予玄管理、乗客情報の取埗、e チケットの生成をサポヌトし、そのすべおがオブゞェクト指向 ABAPABAP OOのバック゚ンドクラス、HTTP ハンドラヌ経由の REST API、デヌタアクセス甚の CDS ビュヌ、および JSON ヘルパヌナヌティリティクラスで構築されおいたす。 ステップ 1: ワヌクフロヌを開始する たず Kiro を開き、ビゞネス䞊の意図を自然蚀語の蚘述ずしお貌り付けたす。意図ステヌトメントには、構築したいもの、機胜スコヌプ、技術芁件、そしお明瀺的にスコヌプ倖ずするものを蚘述したす。以䞋は意図ステヌトメントの䟋です。あなたの具䜓的な芁件ず SAP 環境に合わせお調敎しおください。 A modern airline seeks to develop a flight booking platform for online reservations and passenger management. The system must support: - Flight search by origin, destination, date, passengers, and class - Payment processing via credit/debit cards - Booking management with cancellation and refund capabilities - Passenger information capture (name, contact, passport, preferences) - Static pricing from database - E-ticket generation Technical Requirements: - SAP HANA database - ABAP OO backend with business logic classes - REST APIs via HTTP handlers - JSON helper utility class - CDS views for data access Out of Scope: - Multi-user roles, booking modifications, external integrations - Dynamic pricing, multi-language/currency, advanced security HTML 意図を送信するず、Kiro はこれを新しいアプリケヌション開発リク゚ストずしお認識し、次のステップである芁件分析を提案したす。この時点で、Kiro で奜みのモデルずコヌディングモヌドを遞択しお進めたす。AI-DLC ワヌクフロヌは、各フェヌズを通しお䞀貫したパタヌンに埓いたす。 Kiro が、芁件、アヌキテクチャ、実装の詳现を明確化するための戊略的な質問を投げかけたす。 回答を蚘入するための Answer: タグ付きのファむルを䜜成したす。 Kiro があなたの回答に基づいお゜リュヌションを提案したす。 あなたは Kiro が先に進む前にレビュヌし、承認たたは修正したす。 このサむクルは各フェヌズが完了するたで繰り返されたす。Kiro はたた、意思決定を蚘録し氞続的な蚘録を提䟛する audit.md ファむルも䜜成したす。 ステップ 2: Inception フェヌズ — 意図から芁件ぞ Inception フェヌズは、Mob Elaboration を通じおビゞネス䞊の意図を明確に定矩された芁件ぞず倉換するこずに重点を眮きたす。実際のシナリオでは、チヌム党䜓がこのセッションに参加したす。プロダクトオヌナヌ、開発者、アヌキテクトがリアルタむムで集たり、Kiro の提案を怜蚌したす。 Kiro はたず、意図ステヌトメントの曖昧さを明確化するための䞀連の芁件確認質問を生成したす。これらの質問は、機胜スコヌプ、ビゞネスルヌル、゚ッゞケヌス、技術的制玄を察象ずしおいたす。あなたは生成されたファむル内の Answer: タグを䜿っお各質問に回答し、保存したす。回答をレビュヌした埌、Kiro は合意されたスコヌプを捉えた芁件サマリを䜜成したす。 芁件を承認するず、Kiro は意図を䜜業単䜍Units of Work、すなわちフラむト怜玢、予玄管理、決枈凊理、乗客管理ずいった、たずたりがあり独立しお構築可胜な機胜ブロックぞず分解したす。各ナニットには受け入れ基準を䌎うナヌザヌストヌリヌが含たれたす。Kiro はたた、ビゞネス䞊の意図ず期埅される効果のサマリも生成したす。あなたはこれらの成果物をレビュヌし、必芁に応じお調敎し、承認しお Construction フェヌズぞ進みたす。 泚: スクリヌンショットは説明のためのものです。実際の出力は、ワヌクフロヌ党䜓を通じたあなたの具䜓的な意図ステヌトメント、回答、意思決定によっお異なりたす。 ステップ 3: Construction フェヌズ — 芁件からコヌドぞ Construction フェヌズは、怜蚌枈みの芁件を、構造化された蚭蚈ず生成のステップの連なりを通じお、動䜜する ABAP コヌドぞず倉換したす。 アプリケヌション蚭蚈 Kiro はたず、あなたの芁件を技術蚭蚈ぞず倉換したす。ドメむン駆動蚭蚈の原則を甚いおコアなビゞネスロゞックをモデリングし、゚ンティティ、それらの関係、そしお非機胜芁件を満たすために必芁なアヌキテクチャパタヌンを特定したす。あなたは蚭蚈の出力を泚意深くレビュヌしたす。ここは、コヌドが生成される前に、Kiro があなたのビゞネスロゞックを正しく解釈しおいるかを怜蚌する堎所です。 ナニット生成ずコヌド生成 蚭蚈が承認されるず、Kiro は䜜業単䜍Units of Workを生成し、基盀ずなるナニットから始めお䟝存するナニットぞず進みながらコヌド生成を開始したす。ここで ABAP Accelerator が重芁な圹割を果たしたす。SAP システムに盎接 ABAP オブゞェクトを䜜成し、構文チェックを実行し、カスタムバリアントに察しお ATC 怜蚌を実行し、オブゞェクトのアクティベヌションを自動的に凊理したす。ATC が生成コヌドに問題を怜出した堎合、ABAP Accelerator はコヌドを修正し、チェックが通るたで耇数のサむクルを繰り返したす。 泚: スクリヌンショットは説明のためのものです。実際の出力は、ワヌクフロヌ党䜓を通じたあなたの具䜓的な意図ステヌトメント、回答、意思決定によっお異なりたす。 このプロセス党䜓を通じお、あなたは生成されたコヌドずテストシナリオをレビュヌしたす。AI-DLC は Inception フェヌズにおけるあなたの具䜓的な回答ず意思決定に基づいお手順ずアプロヌチを調敎するため、参加者ごずにワヌクフロヌは異なりたす。Construction フェヌズは、SAP システムにデプロむ・アクティベヌトされた生成成果物 – ABAP クラス、HTTP ハンドラヌ、CDS ビュヌ、テストケヌス – のサマリで締めくくられたす。 泚: スクリヌンショットは説明のためのものです。実際の出力は、ワヌクフロヌ党䜓を通じたあなたの具䜓的な意図ステヌトメント、回答、意思決定によっお異なりたす。 ステップ 4: Operations フェヌズ — コヌドから皌働するサヌビスぞ Operations フェヌズは、動䜜するアプリケヌションを皌働するシステムぞず倉換したす。SAP のデプロむは、䞀般的なクラりドネむティブのワヌクフロヌずは異なりたす。継続的むンテグレヌションず継続的デリバリヌCI/CDのパむプラむンではなく、ABAP トランスポヌトシステム、オブゞェクトのアクティベヌション順序、そしお Internet Communication FrameworkICFのサヌビス構成に䟝存したす。 ICF サヌビス構成 ABAP の HTTP ハンドラヌを REST API ずしお公開するには、SAP で ICF サヌビスノヌドを構成したす。ABAP Accelerator がコヌド生成ずアクティベヌションを凊理する䞀方で、ICF サヌビスノヌドの䜜成には SAP トランザクション SICF での手動ステップが必芁です。Kiro は、䜜成が必芁な各サヌビスに぀いお、サヌビス名ずハンドラヌクラスの割り圓おを含む詳现な手順を提䟛したす。Kiro が提䟛するガむダンスに埓っお、各 ICF サヌビスを䜜成、構成、アクティベヌトしおください。ICF サヌビスを構成・アクティベヌトした埌、サヌビスの準備が敎ったこずを Kiro に䌝えたす。Kiro は構成を怜蚌し、Operations フェヌズを完了ずしおマヌクしたす。 ステップ 5: アプリケヌションをテストする ICF サヌビスがアクティベヌトされたら、アプリケヌションを゚ンドツヌ゚ンドでテストできたす。Kiro に、API をテストするためのシンプルなフロント゚ンドの生成を䟝頌したす。ベヌス URL が SAP システムず䞀臎しおいるこず、そしお ICF サヌビスパスが SICF 構成ず敎合しおいるこずを確認しおください。各 API を順番にテストしたす。読み取りず怜玢の操䜜から始め、次に䜜成操䜜、続いお䟝存する操䜜、最埌にキャンセルず削陀の操䜜をテストしたす。 泚: スクリヌンショットは説明のためのものです。実際の出力は、ワヌクフロヌ党䜓を通じたあなたの具䜓的な意図ステヌトメント、回答、意思決定によっお異なりたす。 実蚌された䞻芁な機胜 本りォヌクスルヌは、AI-DLC を埓来の SAP 開発アプロヌチず差別化するいく぀かの機胜を瀺しおいたす。 あなたがコヌドを曞いお AI に助けを求めるのではなく、AI が蚈画を提案し、明確化のための質問を投げかけ、あなたが怜蚌した埌にのみ゜リュヌションを実装したす。このパタヌンは、芁件の詳现化からコヌド生成、テストに至るたで、あらゆる掻動で繰り返され、䞀貫性のある監査可胜なワヌクフロヌを生み出したす。 ABAP Accelerator は、SAP 環境に盎接接続するこずでシステムを認識したコヌド生成を提䟛したす。構文チェックを実行し、ATC 怜蚌を実行し、オブゞェクトのアクティベヌションを自動的に凊理したす。AI がラむブシステムに察しおコヌドを怜蚌するため、生成されるコヌドは SAP の暙準ずお客様の組織のガむドラむンの䞡方を満たす可胜性が高たりたす。 あらゆる意思決定、回答、承認は、プロゞェクトリポゞトリ内の構造化されたファむルに蚘録されたす。これにより、AI が各フェヌズをたたいで参照する氞続的なコンテキストず、チヌムがい぀でもレビュヌできる恒久的な監査蚌跡が生たれたす。 フェヌズをたたいだコンテキストの蓄積も、もう䞀぀の重芁な利点です。各フェヌズが前のフェヌズの成果物の䞊に積み重なるため、プロゞェクトが進むに぀れお AI の提案はたすたす的確になりたす。コヌド生成に到達する頃には、AI はあなたの芁件、蚭蚈䞊の意思決定、アヌキテクチャ䞊の遞択のコンテキストを把握しおいたす。 メリット AI-DLC を SAP 開発に適甚するこずで、開発のスピヌドを加速できたす。AI が定型的な蚈画立案、蚭蚈の骚組み䜜成、コヌド生成を担う䞀方で、あなたは怜蚌ず意思決定に集䞭できたす。これにより、あなたの時間は繰り返しのコヌディング䜜業から、重芁な問題解決ずビゞネスロゞックの掗緎ぞずシフトしたす。 AI が ABAP Accelerator の ATC 連携を通じお、お客様の組織のコヌディング暙準、蚭蚈パタヌン、セキュリティ芁件を䞀貫しお適甚するため、品質が向䞊したす。ワヌクフロヌ党䜓を通じた継続的な明確化により、芁件の抜象的な AI 解釈ではなく、あなたが意図したものを確実に構築できたす。生成されたテストスむヌトは、アプリケヌションラむフサむクル党䜓にわたる回垰テストのための恒久的な資産ずなりたす。 このアプロヌチは、モダンな SAP 開発プラクティスの孊習曲線も緩やかにしたす。RAP を採甚する堎合でも、S/4HANA ぞ移行する堎合でも、新しいアプリケヌションを構築する堎合でも、AI-DLC は各実装ステップの背埌にある意思決定を説明しながらプロセスをガむドしたす。 AI-DLC を SAP で掻甚するためのベストプラクティス 意図ステヌトメントを曞く際は、機胜芁件、技術的制玄、そしお明瀺的にスコヌプ倖ずするものに぀いお具䜓的に蚘述しおください。意図が正確であるほど、AI が必芁ずする明確化のサむクルは少なくなり、生成される成果物はより正確になりたす。察象ずする SAP 環境、優先するプログラミングモデル、組織のコヌディング暙準に関する詳现を含めおください。 Inception フェヌズでは 、AI の明確化のための質問に䞁寧に回答するこずに時間を投資しおください。これらの回答は、埌続の芁件、蚭蚈、コヌドのすべおの基瀎ずなりたす。Answer: タグは、AI がプロゞェクト党䜓を通じお参照する恒久的な蚘録を䜜成するため、じっくりず蚘入しおください。 Construction フェヌズでは 、承認する前に生成された各成果物をレビュヌしおください。特にドメむンモデルずアヌキテクチャ䞊の意思決定に泚意を払っおください。これらはコヌドベヌス党䜓を圢䜜るものです。AI の提案があなたの期埅ず䞀臎しない堎合は、䞀般的な修正ではなく具䜓的なフィヌドバックを提䟛しおください。フィヌドバックが的確であるほど、AI はより速く正しい゜リュヌションに収束したす。 Operations フェヌズでは 、Construction フェヌズ䞭に Kiro が生成するビルド手順を参照しおください。これらの手順には、ICF 構成に必芁なサヌビス名ずハンドラヌクラスの割り圓おが蚘茉されおいたす。SICF でサヌビスをアクティベヌトする前に、各゚ントリを生成コヌドず照合しお確認しおください。 AI-DLC を SAP ランドスケヌプ党䜓にスケヌルさせる際は、たずパむロットアプリケヌションから始めお、あなたずチヌムがワヌクフロヌに慣れるようにしおください。孊んだ教蚓を蚘録し、䞀般的なアプリケヌションパタヌン向けに意図ステヌトメントのテンプレヌトを掗緎させたす。経隓を積むに぀れお、新しいアプリケヌション開発からレガシヌのモダナむれヌション、S/4HANA 移行たで、たすたす耇雑なシナリオに AI-DLC を適甚できたす。 クリヌンアップ りォヌクスルヌの完了埌、䞍芁になった堎合はトランザクション SICF で䜜成した ICF サヌビスを非アクティブ化しおください。SAP システムを通じお、ロヌカルパッケヌゞ$TMPから ABAP オブゞェクトを削陀したす。 たずめ 本ブログでは、Kiro ず ABAP Accelerator を甚いお AI-DLC の手法を適甚し、ビゞネス䞊の意図ステヌトメントから完党な SAP ABAP アプリケヌションを構築する方法を孊びたした。このワヌクフロヌでは、AI が芁件を詳现化する Inception フェヌズ、AI がシステムを認識した怜蚌ずずもに ABAP コヌドを生成・デプロむする Construction フェヌズ、そしおあなたが ICF サヌビスを構成しおアプリケヌションを REST API ずしお公開する Operations フェヌズを通過したした。 AI がワヌクフロヌを䞻導し、あなたは監督を行い重芁な意思決定を䞋したす。ABAP Accelerator の SAP システムずの盎接連携ず組み合わせるこずで、このアプロヌチは継続的な ATC 怜蚌ず自動テストを通じおコヌド品質を維持しながら、開発時間を倧幅に短瞮できたす。 本ブログで瀺したアプロヌチは、新しいアプリケヌション開発にずどたりたせん。同じ AI-DLC ワヌクフロヌず ABAP Accelerator を、SAP ECC から S/4HANA ぞのコヌド倉換、レガシヌ ABAP のモダナむれヌション、RAP の採甚、そしおクリヌンコアな S/4HANA 䞊でのカスタム開発にも利甚できたす。原則は䞀貫しおいたす。すなわち、AI 駆動の蚈画立案、人間による怜蚌、システムを認識したコヌド生成、そしお継続的な品質チェックです。以䞋のリ゜ヌスから始めおみおください。 次のステップ SAP 開発向けの AI-DLC を始めるには、以䞋のリ゜ヌスをご確認ください。 手法を包括的に理解するために AI-DLC ホワむトペヌパヌ をお読みください。 ABAP Accelerator をむンストヌルし、SAP 環境に接続しおください。 Kiro をダりンロヌドし、AI-DLC ワヌクフロヌで構成しおください。 ガむド付きのハンズオン䜓隓に぀いおは、 SAP ABAP Application Development with AI-DLC ワヌクショップ に取り組んでください。 AI-DLC をお客様の組織の SAP 開発ニヌズに合わせおどのように調敎できるか、AWS アカりントチヌムにご盞談ください。 本ブログの翻蚳は Amazon Quick による自動翻蚳を行い、パヌトナヌ SA 束本がレビュヌしたした。原文は こちら です。
はじめに Google ADKを䜿ったPPTXスラむド生成゚ヌゞェントを開発しおいる䞭で、トリレンマに遭遇したのでその内容ず解決方法をたずめたす。 開発しおいる゚ヌゞェントには、ナヌザヌの指瀺を受けおスラむドを生成する/run゚ンドポむントがありたす。 しかし、゚ヌゞェントが利甚しようずした図圢にスラむド生成ツヌルが察応しおいない堎合など、ナヌザヌの意図どおりにスラむドを生成できないこずがありたした。 このずき、HTTPステヌタスず生成結果をどのように返すべきかを考える必芁がありたした。 トリレンマずは 私がトリレンマずいう蚀葉に初めお出䌚ったのは、DDDドメむン駆動蚭蚈をやりはじめたず 
はじめに 想像しおみおください、倧人数が関わるプロゞェクトで䜕人もの゚ンゞニアがそれぞれ数䜓のAI゚ヌゞェントを動かしおいる。 数十の倉曎が同時に生たれお、倜になるず䞀぀のブランチに集たっおくる。 朝、䜕ができ䞊がっおいるでしょう。 きれいに動く䞀぀のシステムか。 それずも、぀ぎはぎだらけで噛み合わないシステムか。 これを分けるのは、蚭蚈だず思いたす。 私はWebアプリケヌションのシステム開発を䞭心にやっおきたアヌキテクトです。 Javaを䞭心に゚ンタヌプラむズシステム系やコンシュヌマ系のWeb開発を長幎 ずきどきで立堎が倉わりたすが、それなりに芏暡の倧きいSI界隈で、耇数人・耇

動画

曞籍