JinJin48
JinJin48
SAP Consultant | BTP · S/4HANA · US Global Rollout
· 21 min read

カバー:SAP BTP 上のアプリケーション開発 — ユースケースと意思決定パターン

TL;DR
  • SAP BTP 上のアプリケーション開発は、ツールの習得問題ではなく、ツールの選択問題です。同じビジネス成果を、CAP、ABAP環境、Build Apps、Build Process Automation、あるいはS/4HANAのキーユーザ拡張機能で直接構築できます。そして、そのうちの1つだけが、6か月後に予算責任者の前で正当化できるものとなります。
  • 選択の4つの軸は、優先順位に従って、S/4HANAとの結合度、チームのスキルプロファイル、リリースサイクルの独立性、および商用ライセンス権限です。これらのいずれかを省略することは、BTPスコーピングにおける要件段階で最も一般的な失敗パターンです。
  • 本記事をL2-Bシリーズのまとめとしてご活用ください。B01~B07では各ツールの概要と動作を説明し、B08では、いつどのツールを選択すべきか、そしてプロジェクト開始前に誤ったデフォルトを拒否する方法を説明します。

本記事の位置づけ

IDトピック
BTP-B01アプリケーション開発の概要と機能マップ
BTP-B02Business Application Studio:アーキテクチャと使用方法
BTP-B03CAPとBuild Code:アーキテクチャと使用方法
BTP-B04ABAP環境:アーキテクチャと使用方法
BTP-B05Build Apps:アーキテクチャと使用方法
BTP-B06Build Process Automation:アーキテクチャと使用方法
BTP-B07Build Work Zone:アーキテクチャと使用方法
BTP-B08ユースケースと意思決定パターン(本記事)

参考資料

リソースURL
Cloud Foundry、Kyma、またはその両方?(BTP管理者ガイド)help.sap.com →
ABAP拡張性ガイド — SAP S/4HANA Cloudのクリーンコアcommunity.sap.com →
SAP Build製品ファミリーsap.com →
SAP Discovery Center — リファレンスアーキテクチャdiscovery-center.cloud.sap →
SAP Cloud Application Programming Model(capire)cap.cloud.sap →

1) アプリケーション開発のランドスケープ

4つのBTPアプリケーション開発ファミリーの概要

本記事では新しいツールを紹介するのではなく、B01で説明した同じ4つのファミリーを別の角度から取り上げます。それは、それらの中からどのように選択するかです。本記事で使用する意思決定の視点を交えながら、各ファミリーを振り返ります。

ファミリー主要ツール (B02–B07)主なユーザー適切なデフォルトとなるケース
プロコードBusiness Application Studio (B02)、CAP / Build Code (B03)プロ開発者 (Java / Node / TypeScript)Cloud Foundry または Kyma 上での疎結合なエンタープライズサービス
ABAPBTP ABAP Environment + Embedded Steampunk (B04)ABAPスキルを持つ開発者S/4HANAのビジネスロジックとデータに密接に連携する拡張機能
ローコード / ノーコードBuild Apps (B05)、Build Process Automation (B06)シチズン開発者 / プロセスオーナー部門アプリケーションやSAP+非SAPのワークフロー
ポータル / サイトBuild Work Zone スタンダード + アドバンスト (B07)IT部門 + 事業部門アプリケーションの構築ではなく、表示・公開する場合

これらは代替手段ではありません。§5の選択ルールこそが本シリーズが存在する理由そのものです。このルールがなければ、「SAP Buildを使おう」という判断がデフォルトでBuild Appsに流れ、後でプロジェクトがその代償を払うことになります。

2) S/4HANA への接続方法

S/4HANAコアからBTPサイドバイサイドへの結合レイヤー

4つのファミリーは、異なるレイヤーで異なる結合強度でS/4HANAに接続します。接続ポイントによって、クリーンコア準拠、リリースサイクルの独立性、および作業が属する拡張性ティア(キーユーザー → デベロッパー → サイドバイサイド)が決まります。

                        SAP BTP — Application Development families
   ┌────────────────────────────────────────────────────────────────────────┐
   │  Pro Code  →  CAP, Build Code, BAS  ──── Cloud Foundry / Kyma          │
   │  ABAP      →  BTP ABAP Environment (Steampunk, side-by-side)           │
   │  Low Code  →  Build Apps, Build Process Automation                     │
   │  Portal    →  Build Work Zone (surfaces apps from above)               │
   └─────────────┬───────────────────────────────────────┬──────────────────┘
                 │ released APIs, OData,                 │
                 │ business events                       │ launchpad / site
                 ▼                                       │
   ┌────────────────────────────────────────────────┐    │
   │  S/4HANA Cloud (public or private edition)     │ ◄──┘
   │  ── Key User extensibility (in-app)            │
   │  ── Embedded Steampunk (in-stack ABAP Cloud)   │
   └────────────────────────────────────────────────┘

重要ポイント:結合はスキルやコストよりも先にファミリーを選択します。 拡張機能が標準のS/4HANAテーブルやBAdIへの直接アクセスを必要とする場合、選択肢はキーユーザー拡張性またはEmbedded Steampunkとなります。他のファミリーは構造上、誤った選択となります。結合が確定した後にのみ、チームのスキルと権限によって残りのオプションが絞り込まれます。

3) 成熟度マップ

2026年におけるBTPアプリケーション開発ファミリー全体の成熟度ステータス

4つのファミリーはすべて2026年に本番利用可能となりますが、運用リスクのプロファイルは異なります。このマップはプロモーションではなく、正直な評価に基づいています。プロジェクトが実際に受け入れられる成熟度プロファイルを持つファミリーを選択してください。

ファミリー成熟度備考
プロコード(CAP、Build Code、BAS)✅ 本番利用可能CAPはCloud Foundry上で成熟。Kymaには実際のKubernetes運用スキルが必要(SRE機能なしでKymaを選択しないこと)。Joule for Developersは2026年にBAS/VS Code全体でGA予定。
ABAP(Steampunk、Embedded Steampunk)✅ 本番利用可能ABAP Cloudではリリース済みAPIのみ使用可能。2024年以前に作成されたSAPプライベートオブジェクトに触れるカスタムコードは修正が必要。2025年9月よりマルチハイパースケーラー(AWS、Azure、GCP、SAP CI)でGA。
ローコード(Build Apps)⚠️ 前提条件ありで利用可能部門スコープでは本番利用可能。エンタープライズクリティカルなワークロードではパフォーマンス/ガバナンスの限界に達する可能性あり。この警告は理論上のものではない。
ローコード(Build Process Automation)✅ 本番利用可能Workflow Management + Intelligent RPAの後継として統合。2026年の「ガイド付きエクスペリエンス」により、BPAがWork Zoneのウィザードに拡張される。
ポータル(Build Work Zone)✅ 本番利用可能Standard版とAdvanced版ともにGA。アプリケーションプラットフォームとして誤ってスコープ設定されることが多いが、そうではない。

4) 要件チェックリスト

中央のスコーピングハブから放射状に広がる5つの要件チェックリスト

各機能には独自のチェックリストがあります。BTPの本格的な開発をスコープする際は、4つのチェックリストすべてを実行してください。§4.5の機能横断的なチェックでは、ツールの境界をまたぐ要件を捕捉します。

Pro Code(CAP、Build Code、BAS)の前提条件

チェックリスト項目なぜ重要なのか
開発チームがJavaまたはNode.jsに精通しており、OData/CDSの理解があることCAPはプロの開発者向けです。これをシチズンデベロッパーで担当させると、モデリング段階で失敗します
ランタイムとしてCloud FoundryかKyma(または両方)を決定していること両方ともGAですが、KymaにはKubernetes運用スキルが必要です。SREのカバレッジなしでKymaを選択すると、運用リスクが増大します
BASサブスクリプション、またはVS Code + Joule Studio拡張機能の権限が確認されていることJoule for Developersは2026年のBASプランにバンドルされていますが、VS Codeチームには明示的な権限付与が必要です
本番環境用にSAP HANA Cloudインスタンスが予算化されていることCAP + HANA Cloudは本番環境における標準的な組み合わせです。SQLite/H2は開発専用です
マルチテナントかシングルテナントかの判断が文書化されていることCAPは両方をサポートしますが、選択によってデプロイメントトポロジと価格が変わります
S/4HANAとのAPI契約がリリース済みAPI(カスタムRFC/ODataではない)に基づいていることリリース済みAPIはクリーンコアの要件です。カスタムRFCブリッジは技術的負債を蓄積します

ABAP(Steampunk + Embedded Steampunk)の前提条件

チェックリスト項目なぜ重要なのか
結合方式の決定:S/4テーブルへの密結合(Embedded) vs 分離サービス(side-by-side)誤った配置を選択すると後戻りが困難 — Embeddedコードは書き換えなしでは移行不可
既存カスタムABAPのプライベートオブジェクト使用状況監査ABAP Cloudはリリース済みAPIのみ許可;是正作業は最も過小評価されがちな移行コスト
ABAP開発チームの習熟確認(「これから学ぶ」では不十分)ABAP CloudではRAP、ABAP Cloud開発モデル、ADTへの習熟が必須 — 従来のABAPでは不十分
BTP ABAP Environment向けハイパースケーラーの選定AWS、Azure、GCP、SAP CI — 顧客のクラウド全体戦略との整合性が必要
CI/CDパイプラインへのCode Vulnerability Analyzer(CVA)およびATCチェックの組み込みABAP Environmentに標準搭載;クリーンコア準拠にはこれらの活用が必須
Embedded方式の場合のリリース頻度とS/4HANAアップグレード期間の同期EmbeddedコードはS/4リリースサイクルに従う — 独立したリリースは不可

Low Code(Build Apps + Build Process Automation)の前提条件

チェックリスト項目重要性の理由
ユースケースが部門範囲に収まり、エンタープライズクリティカルではないことBuild Appsは高スループット、複雑なUI、きめ細かいガバナンスに限界があるため、範囲を正直に確認する必要がある
シチズンデベロッパーまたはプロセスオーナーが特定され、トレーニングを受けていることこれらのツールは「セルフサービス」ではなく、メンターのサポートを受けたトレーニング済みのシチズンデベロッパーが必要
SAPシステムおよび非SAPシステム向けのOData/REST宛先が定義されていることBuild Appsはランタイムを拡張できず、宛先がないとビルド全体がブロックされる
ガバナンスモデル(テナント、環境、ライフサイクル)が合意されていることシチズンデベロッパーの無秩序な拡大は、ローコードにおける最も頻繁に指摘されるガバナンス上の失敗である
Build Apps + BPA向けのBTPEA/CPEAクレジットまたはサブスクリプションが確認されていること両方ともクレジット消費型であり、「とりあえずBPAで構築しよう」という予算化されていない計画は調達段階で頓挫する
ワークフローの所有権:プロセスオーナー、IT、承認チェーンが定義されていることBPAはワークフロー+RPAであり、オーナー不在では自動化が形骸化する

Portal(Build Work Zone)の前提条件

チェックリスト項目重要である理由
標準版とアドバンスト版の選択が完了している標準版=ランチパッド、アドバンスト版=コラボレーション。純粋なランチパッドにアドバンスト版を選択するとコスト超過となる
公開対象アプリケーションの棚卸しが完了しているWork Zoneは他で構築されたアプリケーションを表示するもの。アプリケーション棚卸しがなければ表示するものがない
IDプロバイダーとロールコレクションの設計準備ができているWork ZoneはID関連の比重が大きい。IdP設計がないと本番稼働がブロックされる
ブランディング要件が文書化されている(テーマ、ロゴ、コンテンツブロック)ブランディング作業は機能数ではなく、関係者数に比例して規模が拡大する
サイトライフサイクルオーナーが特定されているオーナー不在のポータルは陳腐化する。ローンチ前に割り当て、後回しにしない
モバイルエクスペリエンスの要件が明確になっている(Mobile Start等)モバイルは別途スコープ判断が必要。デフォルトはデスクトップファースト

クロスファミリーのクリーンコアおよび運用チェック

クロスファミリーのクリーンコアと運用チェックリスト

チェックリスト項目重要性
クリーンコアガイダンスに基づく拡張性階層の分類階層(キーユーザー→デベロッパー→サイドバイサイド)が他のすべての判断を左右する
リクエスト/レスポンス方式の前にイベント駆動型オプションを評価SAPが2026年に推奨するパターンであり、リリースサイクルを分離する
SAP Discovery Centerのリファレンスアーキテクチャとの一致、または逸脱の正当化方法論に基づくものであり、場当たり的な対応ではない
ロールごとに明示されたJoule for Developersの権限2026年にはBAS、ADT、VS Codeで利用可能であり、ファミリーごとに異なる価格設定がされる
商用モデル(BTPEA、CPEA、サブスクリプション、PAYG)の確定ツール選定には商用上の影響があり、資金調達されていない適切なツールは不適切なツールとなる
データレジデンシーとテナントリージョンの固定一部のサービスはリージョン固有であり、後から固定すると再構築が必要になる

5) 意思決定基準

3つの質問で、BTPアプリケーション開発がそもそも正しい答えかどうかを判断します。ドメイン選択テーブルでファミリーを選び、ライセンステーブルで商取引上の驚きを防ぎます。

最初に問うべき3つの質問

3つの質問:課題、データ、スポンサー

Q1. 測定可能なビジネス上の課題は何ですか?

もし答えが「BTPで何かを作りたい」というものなら、その要件は準備ができていません。課題は具体的でなければなりません(承認サイクルに14日かかる、手動データ入力に週20人時かかる、カスタマーセルフサービスポータルがないためにコールセンターがパンクするなど)。測定可能な課題がなければ、ツールの選択は正当化できません。「BTPのクレジットを使い切らなければならない」というのは課題ではありません。

Q2. データの所有者は誰で、どこに保管する必要がありますか?

S/4HANAテーブルへの密結合(カスタムフィールド、スタック内ロジック)は1つのレジデンシープロファイルであり、BTP上でのサイドバイサイド(リージョナルデータを含む)は別のプロファイル、SAPと非SAPの混在統合は3つ目のプロファイルです。データレジデンシー、データ所有権、およびGDPR/SOC2の境界によって、その作業がS/4HANA、BTP ABAP環境、CAP、またはまったく別の場所に属するかが決まります。

Q3. 予算権限を持つ内部スポンサーは誰ですか?

中央IT、LoBオーナー、プロセスオーナー — その答えによって、適切な商用モデル(サブスクリプション vs BTPEAクレジット vs PAYG)や、スポンサーにとって価格が理解しやすい製品ファミリーが変わります。スポンサーが資金調達できないツールは、技術的な適合性に関わらず、適切なツールではありません。

ユースケースの形状に基づくツール選択

ユースケースの形状を結合度スペクトル全体のツールデフォルトにマッピング

ユースケースの形状推奨される開始ツールファミリー
標準S/4HANAテーブルのカスタム項目キーユーザー拡張性(アプリ内)S/4 — BTP外
オンスタックBAdI / 密結合なS/4ロジック組み込みSteampunkABAP
サイドバイサイドABAPサービス(デカップリングリリース)BTP ABAP環境ABAP
Java / NodeによるサイドバイサイドエンタープライズサービスBuild Code上のCAPプロコード
BTP上のカスタムFioriアプリ、複雑なUIBAS + UI5 / Fiori elementsプロコード
部門向けWeb/モバイルアプリ、シンプルなUI、シチズンデベロッパーBuild Appsローコード
SAPシステムと非SAPシステムにまたがるワークフローBuild Process Automationローコード
社内ポータル / ランチパッドBuild Work Zone(標準版)ポータル
ブランド化されたLoBデジタルワークスペース(コラボレーション機能付き)Build Work Zone(アドバンスト版)ポータル
SAPビジネスオブジェクトを伴わない単発の自動化多くの場合:BTPを使用しないn/a
まだ明確な課題が特定されていない停止。Q1に戻ってください。n/a

ライセンスとコスト

4つのファミリーにわたるライセンスモデル

ファミリーライセンスモデル確認すべき重要事項
プロコード(CAP、Build Code、BAS)開発者ごとのBASサブスクリプション;CAPランタイムはCloud Foundry/Kyma + HANA Cloudのエンタイトルメントを消費BASはBTPEAスコープにバンドルされているか、それとも別のラインアイテムか?
ABAP(Steampunk + 組み込み型)BTP ABAP環境サブスクリプション(サービスプランごと);組み込み型SteampunkはS/4HANA Cloudエンタイトルメントの一部ハイパースケーラーの選択肢 — AWS/Azure/GCP/SAP CI間で価格は変わるか?
ローコード(Build Apps + BPA)BTPEA/CPEAでの従量課金制(クレジット)、またはスタンドアロンサブスクリプションシチズンデベロッパーの人数とランタイム使用量 — 両方がコストに影響
ポータル(Work Zone)ユーザーごとの標準サブスクリプション;コラボレーション機能付きのユーザーごとのアドバンストサブスクリプション標準かアドバンストか — そして各ティアを実際に必要とするユーザー数は?

6) よくある障害

BTPアプリケーションスコーピングにおける4つの一般的な要件段階の失敗

これらは要件段階の失敗であり、実装のバグではありません。それぞれの事例は十分な頻度で観察されており、パターンを認識する方が教訓を再導出するよりも迅速です。

障害 1:「すべてに SAP Build を使用する」

SAP Buildは4つのプロダクト(Code、Apps、BPA、Work Zone)から構成されており、単一のプラットフォームではありません。「Build」を一つの回答として扱うと、4つの異なる選択判断が、誤ったデフォルト(通常は最もマーケティングされている柱であるBuild Apps)に平準化されてしまいます。解決策は、まず§5のユースケース表を使用し、その後、どのBuildの柱(またはBuild以外の柱)が該当するかを特定することです。

障害 2: エンタープライズ・クリティカルなワークロードに対するローコード

Build Appsは、シンプルなUI、OData/REST統合、およびシチズンデベロッパーによる運用を前提とした部門内アプリケーションを対象としています。これを顧客向けトランザクションシステムや高スループットのサービスに採用すると、パフォーマンス、ガバナンス、UIの柔軟性の限界がユーザー受入テストの段階で顕在化し、その時点では低コストでの方向転換が不可能になります。対策としては、要件定義の段階でスコープを正直に評価し、「エンタープライズクリティカル」が実際の制約条件である場合には、Build Code上でCAPを採用することです。

障害 3: S/4HANA テーブルに密接に結合されたカスタマイゼーションのための CAP

CAP と S/4HANA は公開 API を介して接続できますが、スタック内のデータアクセス(標準テーブルのカスタムフィールド、スタック上の BAdI)を必要とするカスタマイズは、CAP ではなく Embedded Steampunk またはキーユーザー拡張性に属します。CAP で構築すると、脆弱な統合レイヤーが強制され、文書上はクリーンコアに違反していなくとも、実質的にはその精神に反することになります。

障害 4: 非SAP統合におけるABAP Cloudの混在言語使用

チームがABAPスキルを持っている場合、すべての要件がABAP要件のように見えてしまいます。SAPと非SAPのAPIをNode.jsやJavaでオーケストレーションするサイドバイサイドサービスは、BTP ABAP環境ではなく、CAPに属します。選択基準は、チームの経歴ではなく、作業内容です。

障害 5: ワークゾーンが「アプリケーション」としてスコープされている

“Work Zone でポータルを構築する"という表現は、場合によっては「既存のアプリを表示するランチパッドが必要」(Work Zone の正しいスコープ)を意味し、また別の場合には「カスタムロジックを持つカスタムサイトが必要」(Work Zone は不適切な場所)を意味します。要件の中でこれを明確に区別してください。Work Zone はアプリを表示する場所であり、アプリを構築する場所ではありません。

障害 6: クリーンコアレビューの省略

拡張配置が結合度、リズム、データレジデンシー、エンタイトルメントではなくチームの好みで決定されると、次回のS/4HANAアップグレード時にクリーンコア違反として顕在化します。その対策は、ツール決定の前にクリーンコア拡張性階層分類を実行することであり、後ではありません。

障害 7: ビルドスプリントまで商用権限を無視する

顧客が調達できない「正しい」ツールは、間違ったツールです。BTPEAのスコープ、CPEAの残高、サブスクリプション明細項目は、開発者が構築途中でサービスにサブスクライブしようとした際に調達部門がブロックする時ではなく、要件定義時に確認されなければなりません。

FAQ

Q: これは要約記事です — まずB01~B07を読むべきですか、それともここから始めても大丈夫ですか?

能力マップはB01から始め、候補ツールに該当するB02~B07のいずれかに進んでください。選択内容のクロスチェックにはB08を使用します。このシリーズは初めて読む方向けに順序立てられていますが、経験者はB08を単独の意思決定ツールとして活用できます。

Q: このオンプレミスとクラウドはどのように適用すればよいですか?

意思決定パターンはデフォルトでクラウドファーストです。BTPはSAPのクラウド開発プラットフォームです。オンプレミスのS/4HANAでは、キーユーザー拡張性とオンスタックABAPは依然として有効ですが、サイドバイサイドのオプションはBTPに移行します。クリーンコアの側面(結合、リズム、データ)は同様に適用されます。ランタイムカタログのみが狭まります。

Q: BTPEAクレジットがあり、お客様が「それらを活用したい」と考えています。これは有効な動機となりますか?

いいえ。クレジットの使用は財務的な結果であり、要件ではありません。正しいアプローチは、最も影響の大きい課題(Q1)を特定し、ユースケースの形状に合ったツールを選び、そのツールがBTPEAの対象範囲内にあるかを確認することです。クレジットが適切なツールをカバーしていれば問題ありません。カバーしていない場合は、調達に関する話し合いであり、間違ったものを作る理由にはなりません。

Q: プロジェクトからBTPアプリケーション開発を完全にスコープ外とするのはどのような場合ですか?

3つのシグナル:(1) 測定可能なビジネス上の課題がない(Q1が不合格)、(2) その作業はS/4HANA自体に属する(キーユーザー拡張性またはスタック内RAP — BTPは不要)、(3) 顧客にBTPサービスの権限がなく、引き渡し後に運用するスキルもない。これらのうちいずれか1つでも該当すれば、今回のスコープからBTPを除外する十分な理由となる。

Q: この決定を監査に耐えうる形で適切に文書化するにはどうすればよいですか?

3つの成果物:(1) クリーンコア拡張性階層の分類とその根拠、(2) ユースケースとツールのマッピング(本記事の§5の表は防御可能なテンプレート)、(3) 調達部門からの商用権限確認。SAP Discovery Centerのリファレンスアーキテクチャが一致する場合、外部検証を提供します。

Q: Joule for Developersは独立したツールですか、それとも他のツールの機能ですか?

BAS、ADT、VS Code全体にわたるJoule Studioを介した水平機能です。§5のファミリー選択は変更しません。作業に適したファミリーを選択し、そのファミリー内でJouleを有効にします。SAPが公表する生産性向上(記述約20%、テスト約25%)は、ファミリーに依存しません。

Q: 複数のファミリーを組み合わせる方が、1つだけを選ぶよりも適切なのはどのような場合ですか?

頻繁に。典型的なパターンは、Build Code上のCAP(サービス)+内部管理者UI用のBuild Apps+承認ワークフロー用のBPA+それらすべてを統合するWork Zoneです。§5の表は、プロジェクト全体ではなく、ユースケースの形状に応じてツールを選択するものです。実際のプロジェクトのほとんどは、複数の形状にまたがります。

概要

優先順位に基づく4つの意思決定の次元:結合度、スキル、リズム、権限

BTPアプリケーション開発は、コーディング時ではなく要件定義時に解決されます。4つのファミリー(Pro Code、ABAP、Low Code、Portal)は、異なるランタイムと商用モデルを通じて重複する成果をカバーしており、誤ったデフォルト(通常は「すべてにBuild Appsを使用」)が適切な選択よりもはるかに多く見られます。結合度、スキル、開発サイクル、権利の順に4つの選択軸を適用してください。§5のユースケース表を防御可能な出発点として、§6の失敗リストを承認前の健全性チェックとして使用します。L2-Bシリーズは、この判断が場当たり的にならないために存在します。

次に読むべきもの

記事理由
BTP-B01: アプリケーション開発の概要と機能マップシリーズの開始 — 4つのファミリーマップ
BTP-B02: Business Application Studio: アーキテクチャと利用方法Pro Code IDEの詳細解説
BTP-B03: CAPとBuild Code: アーキテクチャと利用方法Pro Codeフレームワーク + AI支援開発
BTP-B04: ABAP環境: アーキテクチャと利用方法ABAPファミリー — SteampunkとEmbedded Steampunk
BTP-B05: Build Apps: アーキテクチャと利用方法ローコードアプリビルダー
BTP-B06: Build Process Automation: アーキテクチャと利用方法ワークフロー + RPAの統合
BTP-B07: Build Work Zone: アーキテクチャと利用方法ポータル/サイトファミリー
BTP-B08: ユースケースと意思決定パターン(本記事)最終まとめ — 結合度、スキル、開発サイクル、権限に基づく適切なツールの選択