柔軟性とは、現在のシステムに損傷を与えることなく機能を追加/変更/削除できるソフトウェアの能力です。スケーラビリティは、システムに損傷を与えることなく機能を追加できるソフトウェアの能力であるため、柔軟性のサブセットと考えることができます。これらの機能変更は、要件の変化に基づいて、または開発プロセスが反復的な方法の 1 つである場合に発生する可能性があります。ソフトウェア開発では変更は避けられないため、これは高品質のソフトウェアの最も重要な特性の 1 つです。
保守性 柔軟性は柔軟性と似ていますが、主要な機能のスケーラビリティではなく、マイナーな機能のエラー修正と変更に重点を置いています。これは、有用なインターフェイス定義、ドキュメント、自己ドキュメント化コードやコードドキュメントによってサポートできます。ドキュメントが正確で有用であればあるほど、保守性は高くなります。
パフォーマンスは主にソフトウェアの応答時間に関係します。この応答時間は許容範囲内 (たとえば、最大でも数秒) である必要があり、トランザクション数が増加しても増加しないようにする必要があります。また、資源も高価です。効率はリソースの利用によってサポートされなければなりません。誇張された例として、単純な機能を実行するために 32 プロセッサのマシンまたは 1 TB のディスク領域のみを使用することは受け入れられません。最高のソース/パフォーマンス比を目指す必要があります。
スケーラブルなシステムは、負荷が増加した場合でも、許容可能な時間内でユーザー操作に応答します。もちろん、増加するユーザー トランザクションを処理するためにハードウェアを追加することもできますが、その際にアーキテクチャを変更すべきではありません。これを垂直スケーラビリティと呼びます。増え続ける複数のマシン上で実行できる機能がマルチプロセッシングです。このような処理をソフトウェアで実行できる場合、それを水平スケーラビリティと呼びます。推奨されるスケーラブルなシステムは、両方のアプローチに対応する必要があります。
可用性、堅牢性、耐障害性、および信頼性:
堅牢なソフトウェアは、ほとんどの障害状況下でも可用性を失うことはありません。一部のコンポーネントに障害が発生した場合でも、動作を継続できる場合があります。さらに、アプリケーション全体がクラッシュした場合でも、バックアップ ハードウェアとデータ、およびフォールト トレランス方式を使用して独自に回復できます。常にプラン B または C、D があるはずです...信頼性は、高負荷条件下でもソフトウェアの完全性と一貫性を表します。つまり、可用性とスケーラビリティに関係します。信頼性の低いシステムは拡張性もありません。
ユーザーの観点から見ると、ユーザー インターフェイスはソフトウェアの唯一の目に見える部分です。したがって、この場合、シンプルさ、作業を完了するまでの時間が短い、学習が早いなどが非常に重要です。この性質の最も有名な原則は KISS (Keep It Simple Stupid) です。シンプルは常にベストです。利用可能なソフトウェアは、障害のある人向けのさまざまなアクセシビリティ タイプの制御もサポートする必要があります。
高品質のソフトウェアは、できるだけ多くのプラットフォームで実行できる必要があります。したがって、より多くの人がそれを利用できるようになります。異なる文脈では、異なるプラットフォームを指す場合があります。これは、オペレーティング システム プラットフォーム、ブラウザの種類などです。移植性とは、プラットフォームの互換性を高めるために、ソフトウェアをさまざまなプラットフォームで実行できるように適合させることを指します。この意味で、移植性は柔軟性にも関係します。
テスト容易性と管理容易性
高品質のソフトウェアには品質のテストが必要です。ソース コードは、最大限の範囲と最も効率的なテスト方法でテストする必要があります。これは、カプセル化、インターフェイス、パターン、低結合などの技術を正しく使用することで実行できます。優れたソフトウェアは、テストしやすさに加えて、展開後の管理も容易である必要があります。たとえば、パフォーマンスやデータ使用状況を監視したり、開発者がシステムを簡単に構成したりできます。適切なロギング システムを作成することは、管理性に関するもう 1 つの非常に重要な問題です。
セキュリティは、ソフトウェア開発において非常に重要な問題です。特に、数百万のユーザーがいる可能性のある Web ベースまたはモバイル デバイス ベースのソフトウェア開発では、リモート アクセス システム機能を持つユーザーが必要です。 。セキュリティ ポリシーを構築し、エントリ ポイントを残さずに正しく適用する必要があります。これには、認可および認証テクノロジー、サイバー攻撃保護、データ暗号化などが含まれる場合があります。考えられるすべての種類のセキュリティ脆弱性を考慮する必要があります。そうしないと、たった 1 つの攻撃で、いつかアプリケーション全体と会社全体がダウンする可能性があります。
機能性 (または正確性) とは、ソフトウェアと実際の要件および仕様の一貫性を指します。実際、これはアプリケーションの優先属性であり、品質要素ではないかもしれませんが、注意を引くためにこれを最後の品質要素にしたいと思います。動作しないソフトウェアについて話すとき、品質要素は意味がありません。きちんと。まず、必要な機能を実行して適切なソフトウェアを生成し、それに品質係数を適用します。両者が手を携えて進むことができれば、それが一番良いでしょう。
以上がソフトウェア開発で無視できない10の要素の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。