ソフトウェアの最小ハードウェア要件をどのように定義しますか?


21

ソフトウェアの最小ハードウェア要件をどのように定義しますか?たとえば、ソフトウェア開発会社は、プログラムを適切に実行するために8 GBのRAMが必要になることを顧客にどのように伝えることができますか?

回答:


31

まず、すべての要件がハード要件ではなく、最低限サポートされているハードウェアです。誰かが最小値未満の場合、実行される可能性があります-しかし、最適ではない、またはまったく実行されない場合があります。いずれの場合も、サポートされていないシステムであり、あなたが抱えている問題はあなた自身のものです。

ハードウェア要件を取得する最も簡単な方法は推測です。開発者は自分のマシンを見て、「はい、それは私のもので実行されます、それが要件です」と言います。

より厳格な環境では、開発会社にはテストシステムのスイートがあります。社内にない場合があります(社内ではないアップルの開発者は、Apple Compatibility Labを時々使用します)。テストプロセスの一環として、利用可能なすべてのハードウェアで1つのテストを実行し、実行するための最小要件を決定します。

ハードウェア要件のもう1つの要因は、オペレーティングシステムの基本要件です。理論的には、Windows 7を実行するには最低1GBのRAMが必要です。したがって、Windows 7を実行している512 MBシステムに対するテストは無意味です。

1 GBのRAMで実行されているシステムをテストします。動作しますか?いいえ...ラムをアップグレードします。アプリケーションがサポート可能な方法で動作するまでテストとアップグレードを繰り返し、それらを最小要件としてリストします。

パフォーマンスがソフトウェアの約束の一部になると、「サポート可能」には、実際の実行に加えて、操作が最小パフォーマンス期待値を満たしていることが含まれます。


8
確かな答え。比add的なダーツを壁に投げて推測するだけの場合もあるということを付け加えても大丈夫です。それは間違いなく非常に主観的なプロセスです。

1
+1:非常に良い答え。また、ソフトウェアのパフォーマンステストでハードウェア要件が示されることが多いことに注意してください。つまり、「実行する」ことではなく、パフォーマンス要件を確認することです。操作ot完了するまでに<時間を要するという要件がある場合、その目標を満たすハードウェアの組み合わせが最小仕様になります。
スティーブンエバーズ

念のために、開発システム通常、大幅に強化されるべきです。つまり、開発者がセットアップ上でかろうじてクロールするのを見て、ジョブが完了したとは考えにくいということです。当然のことながら、管理が愚かにケチなのでなければ。

@Deduplicator Dell 280s(実行中のEclipseとjbossのフラッシュバック)で開発者がいた最近の雇用主について言及できます。もちろん、それもターゲットプラットフォームでしたが、IEのみを実行していました。

6

ハードウェア要件は、いくつかの異なるバケットに分類されます。多くの場合、構築するソフトウェアシステムの特定のハードウェア要件を決定する際に、これらのバケットのいくつかからの要件を含めます。

アーキテクチャの技術的制約

これらは、構築されたシステムが絶対に満たさなければならない種類の要件であり、最初からシステムに特別に設計されています。たとえば、「x86プロセッサが必要です。」

頭に浮かぶ簡単な例は、Microsoft Office for Macです。当初、MacはPower PC CPUを使用していましたが、Microsoft Windowsは「IBM Compatible」マシン(主にx86プロセッサを使用)を厳密に対象としていました。Windows、つまりOfficeはx86でしか動作しないため、Mac OS用のPower PC上のOfficeをサポートするために(技術的な制約が異なる)完全に新しいコードセットが作成されました。MacがIntel x86プロセッサに移行すると、古いPower PCで最適化されたOffice for Macは機能しなくなり、Intel上のOffice for Macの新しいバージョンの技術的な制約が再び変更されました。32ビットと64ビットに最適化されたアプリケーションも簡単な例です。

暗黙的なハードウェア要件

積極的に自分自身を制約することを選択しない場合もありますが、他の決定を行うと暗黙的に要件が強制されます。一般的なシナリオは、あらゆる種類のフレームワークの上に構築することです。

たとえば、.Net 4.0アプリケーションを構築している場合、.Net 4.0には、Microsoftのハードウェアラボで確認されたハードウェア要件があります。現在、アプリケーションには、少なくとも.Net 4.0フレームワークが必要とするのと同じハードウェア要件が必要です。

コンテキストのハードウェア要件

ハードウェア要件について話しているほとんどの場合、実際に話しているのは、特定の品質属性シナリオをサポートする方法です。パフォーマンス、信頼性、可用性、その他の問題など。

これは、IBM InfoSphere Data Explorer(基本的にはビッグデータ検索エンジンプラットフォーム)上でアプリケーションを構築するお客様にハードウェアの推奨事項を作成する際に頻繁に対処するものです。データエクスプローラーの基本要件は最小限(ラップトップで実行可能)ですが、特定のビッグデータアプリケーションのハードウェア推奨事項(要件を参照)は、そのアプリケーションの特定の品質属性シナリオに基づいています。データのインデックス化の速さはどれくらいですか?1秒間にいくつのクエリを処理する必要がありますか?許容されるダウンタイムはどれくらいですか?

特定の品質属性シナリオを特定すると、砂の中に線が引かれ、これらのシナリオに基づいて最小ハードウェア要件の推奨を行うことができます-XのCPUとYのRAM、Zギガバイトのハードドライブ、Nの冗長システム この場合、品質属性シナリオからの仮定を使用してハードウェアの推奨事項の開始点を決定するのに役立つ基本式(ハードウェアラボでの広範なテストを通じて決定)があります。この推奨事項は、その特定のビッグデータアプリケーションの要件になります。

この例では、実稼働システムの場合、ラップトップは技術的に「最小」要件を満たしていても実際には機能しません。その実装のコンテキスト-特定のシナリオとデータ、運用環境で実行されているかどうかなどによって、ハードウェア要件が決まります。

シナリオの前提が変わると、ハードウェア要件も変わります。したがって、「ソフトウェアを適切に実行するにはY GB RAMが必要」というフレーズは、「Z時間またはABC docs / minのレートでXミリオンのドキュメントをクロールするにはY GBのRAMが必要です」という意味です。

サポートされる最小ハードウェア要件

つまり、ハードウェアの仕様は正しく機能することが期待されており、サポートグループはトラブルシューティングに役立つように準備されています。通常、これは、開発マシンまたは何らかのテストラボを介して直接アクセスできるハードウェアのセットです。

この一例は、リリースされたほとんどすべてのAndroidアプリです。Android開発者は、おそらく少なくともいくつかの物理デバイスで、いくつかのソフトウェアシミュレーターを使用してアプリをテストします。しかし、Androidを実行しているデバイスは数千台あり、その多くはほとんど...奇癖...アプリが問題を引き起こす可能性があります。ほとんどの場合、ユーザーが問題に遭遇した場合でも引き続きサポートを提供します。また、ほとんどの場合、そのハードウェアのバリエーションを具体的にテストしていなくても、ユーザーは問題に直面しません。MicrosoftにはWindowsでもこの問題があります-ビデオカード、マザーボード、CPU、メモリの組み合わせはいくつありますか?

基本的に、最低限サポートされているハードウェアを特定することは、「このソフトウェアは私のマシンで動作し、私のマシンと同様のマシンで動作することを期待しています。多くの人がこのソフトウェアを多くの異なるマシンで問題なく使用してきました。問題が発生した場合、私は最善を尽くして支援/修正しますが、保証することはできません。」


0

開発者がアプリを分析またはプロファイリングし、特定のパフォーマンスベンチマークを満たすために必要なメガフロップス、MIPS、1秒あたりのポリゴン数、アレイワーキングセットサイズなどが正確にわかっている場合など、一部のアプリケーションの要件は実際には厳しい要件である場合があります。

小規模な開発者にとっては、コストが問題になる場合があります。利用可能なシステムは1つのみであるため、他の(低速、小型など)でアプリをテストすることができず、アプリの動作方法についてほとんど手がかりがないため、システムの仕様を最小として宣言します少ないリソースで。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.