私は学校のプロジェクトのために自分のプログラムを文書化する必要があり、「問題ドメイン」と呼ばれるセクションがありますが、このセクションで何を議論すべきかわかりません。
だから問題は:問題領域で何を議論すべきか?
通信機器の組み込みソフトウェアを書いています。私の問題のドメインは、イーサネット、音声、およびビデオプロトコルです。言い換えれば、私がプログラミングしている言語とは何の関係もないが、ソフトウェアを書くために理解しなければならないすべてのもの。写真サービスを販売するためのWebサイトを作成している場合、問題のドメインは写真とeコマースです。軍用機のファームウェアを作成する場合、問題の領域は武器、センサー、および制御システムです。写真をゲット?
問題ドメイン に関するウィキペディアの記事から==:
問題ドメインは、問題を解決するために調査する必要がある専門知識またはアプリケーションの領域です。問題ドメインとは、興味のあるトピックのみを調べ、それ以外はすべて除外することです。
これは、アプリケーションが解決しようとしている問題が属する領域です。
誰もがコンパイラ、バグトラッカー、フレームワーク、またはその他のストレートコンピュータソフトウェアパッケージを作成しているわけではありません。
砂利・砂利業界向けのソフトウェアを作成する人もいます。製油所の屈折塔を監視するためのソフトウェアを書く人もいます。食料品のビニール袋の製造を管理するソフトウェアを書く人もいます。一部の人々はケチャップパケットを満たすためにソフトウェアを書きます。
これらはすべて問題のあるドメインであり、優れたソフトウェアを作成するには、ドメインについて少し知っておく必要があります。生コンクリート。
Ian K. Brayの著書要件エンジニアリング入門(p9)は、問題ドメインを次のように定義しています。
問題が存在する宇宙のその部分。
たとえば、リフト制御システムの場合、既存のハードウェア(リフト、モーター、ボタン、インジケーター、センサーなど)、建物の特性(床とリフトシャフトの数)、予想されるパターンが含まれます。使用法、ユーザーの特性、クライアントのリフト使用ポリシー(たとえば、ユーザーは短い移動でリフトを使用しないようにする必要がありますか?)など。
エレベーターの制御問題の領域では、上記のように、「この建物のエレベーターをより効率的に使用する制御システムが必要です」という問題があります。実際には、通常、問題をサブ問題の完全なセットに絞り込みますが、現時点では、問題を解決するために、ソリューションシステムが問題ドメイン内でいくつかの効果を生み出すことが明らかに必要であることに注意してください。要件を構成するのは、これらの望ましい効果です。
したがって、問題領域は、新しいソリューションシステム(SSと略されることもあります)が動作し、必要な効果を生み出す世界のその部分と同様に見なすことができます。ソフトウェアベースのソリューションシステムはアプリケーションと呼ばれることが多いため、問題のあるドメインはアプリケーションドメインと呼ばれることがあります。
私はそれをこのように見ています:
問題領域:ソフトウェアを構築する必要がある理由と、構築したシステムを使用する必要がある環境と業界。