私の最後のプロジェクトでは、さまざまなクライアント アプリケーション (デスクトップ アプリケーション、モバイル アプリケーション、および Web クライアントへのスタンドアロン) に統合する問題ドキュメント システム コンポーネント (バグ報告ツールなど) を設計しました。焦点は、アプリケーション/UI 自体ではなく、サービスとしての機能にありました。Google Search API のようなものと考えてください。これは、ブラウザーに統合したり、ウィジェットとして、携帯電話などに統合したりできます。
機能 (ユース ケース) と非機能の要件を定義する際に、UI 固有のものを取得せずにそれらを定義するのに非常に苦労しました。
回避策として、スタンドアロンの Web アプリケーションに適合する要件と、すべての関数呼び出しを RESTful サービス API 経由で行う必要があるという非機能的な要件を単純に定義しました。たとえば、デスクトップアプリケーション。そもそも Web アプリケーションではなくサービスが実際に必要なため、要件分析のこの間接的な方法にはあまり満足できません。開発者が要点を理解してくれることを願っています。
私の質問は、REST API や Web サービスは、開発者が何をすべきかを理解できるようにどのように設計されているのでしょうか? たとえば、Web サービス用の UML ユースケース プロファイルはありますか?