web-dev-qa-db-ja.com

ユーザー要件とシステム要件の違いは何ですか?

私が読んだことから、ユーザーの要件は一般的な用語で与えられたシステム要件にすぎないと思いますが、これは正しいですか?具体的には、私が従う義務があるIan Sommerville著の「Software Engineering」という本を参照しています。上記の本の以下の例を考えると、2番目のシステム要件に一致するユーザー要件がないのはなぜですか。たとえば、「ユーザーは、月の最終稼働日の17.30以降にレポートを生成する必要があります。」私にはまだ自然言語で書かれているので、ユーザーが読むことができます。ユーザー要件とシステム要件にはどの程度の詳細を含める必要があり、どこに線を引きますか?

ユーザー要件定義:

1. The MHC-PMS shall generate monthly management reports showing
   the cost of drugs prescribed by each clinic during that month.

システム要件仕様:

1.1. On the last working day of each month, a summary of the drugs
     prescribed, their cost, and the prescribing clinics shall be generated.
1.2. The system shall automatically generate the report for printing after
     17.30 on the last working day of the month.
6
5had3sofQu4rtz

私はあなたの例について話します。

「ユーザー要件」の最初の例は、希望や「機能」に似ています。機能と要件の違いを確認する方法は、要件に十分な詳細があることですtestable。要件1はテスト可能ではありません。 「システムがマネージャーのためにいくつかのレポートを持っていることを望みます。」要件が達成されたこと、および成功を宣言できることをどのようにして知っていますか?

要件1.1は、月の最終稼働日まで待機して、その日にレポートが生成されるかどうかを確認できる(または、システムに日付を挿入してその動作を観察できる)ので、テスト可能です。

要件1.2は、同じ理由でテスト可能です。

ただし、どちらのシステム要件でも、レポートの外観、データのレイアウト、計算の方法はわかりません。それらは一般的な用語でレポートを説明するだけです。実際には、これらのレポートがどのように見えるかを詳細に説明するある種のソフトウェア設計仕様があります。

12
Robert Harvey

Ian Sommervilleのソフトウェアエンジニアリングブック の意味で:

ユーザー要件は、問題のドメイン、ユーザーの世界について話します。彼らはどのような効果を達成する必要があるかを説明します。これらの影響は、ソフトウェア、ハードウェア、およびユーザーのを合わせた責任です(まとめて、社会技術システム)。

システム要件は、ソリューションドメイン、つまりソフトウェアロジックの世界について話します。それらは、ソフトウェアが何をしなければならないかを記述します(これが達成するかもしれないし達成しないかもしれないユーザーの世界の影響とは対照的です)。それらは技術システムのみの責任です(社会的な部分はありません)。

たとえば、簿記ソフトウェアの場合、

  • ユーザーの要件は、正しい収益を計算することです。
  • ただし、システム要件は、ユーザーが入力した部分的な収益の正しい合計を計算することだけです。

ユーザーが正しくない部分的な収益を入力した場合、ソフトウェアはそれらを魔法のように修正する必要はありません。出力は入力の正しい合計ですが、正しい全体的な収益はないです。

ほとんどの単純な情報システムでは、この違いはそれほど興味深いものではありません。これは、生命に関わるソフトウェアにとって非常に重要です。たとえば、民間航空機で逆推力を有効にできる場合とそうでない場合の問題に関連するさまざまな事故を参照してください。ユーザーの要件「逆推力は、飛行機が滑走路にある場合にのみ有効にできる」が 必要な効果を確実にもたらすシステム要件に変えるのは驚くほどトリッキーです

10
Lutz Prechelt

ユーザー要件ユーザーのニーズを満たすためにアプリケーションが何をしなければならない/すべきかを伝えます。これは、アプリケーションが持つべき/すべき機能のリストであり、アプリケーションを開発する際のガイダンスとして使用されます。その後、すべてのポイントがチェックされ、(おそらく)完了します。

私はこれを単に「機能のリスト」と呼ぶ傾向があります。

システム要件プログラムを実行するために必要なシステムを指定します。

  • ハードウェア:CPU、メモリ、ディスク容量など.
  • ソフトウェア:OS、ライブラリ、パッケージなど.

少し混乱があります:

  • 「ユーザー要件」では、ユーザーは主体であり、必要なものであり、開発中のプログラムはオブジェクトです。
  • 「システム要件」では、開発中のプログラムが主語であり(フレーズでも言及されていません)、「システム」はオブジェクトです。

「システム」という言葉はさまざまなことを指します。

  • 開発中のソフトウェア
  • 開発中のソフトウェアを実行する物理デバイス
  • そのようなデバイスのネットワーク
  • OSと実行環境

あなたが「SystemRequirements Specification」と呼んだものは、おそらく Software要件仕様 のようなものです。 -私はそれをユーザー要件のスーパーセットと考えています。

0
scriptin