Contract®のデザインとは何ですか?

contract®の設計は、プログラムのすべての部分に対して、明確に定義されたインターフェイスパラメーターまたは契約の確立に依存するソフトウェアを開発するために使用される方法です。 Design ByContract®は、ドキュメントまたはモデリングを通じて実装される概念開発スタイルと見なすことができますが、プログラム内の契約の暗黙的なコーディングを実際に必要とするいくつかのプログラミング言語内のネイティブまたはサードパーティのメカニズムを参照するために、より広く使用されています。 Contract®によるDesign®の使用の目標は、プログラムが開発され、最終的にはより些細なエラーを削除するはるかに完全な方法でコード化されることです。機能とクラスに契約を使用するプログラムは、契約の明確な定義のために、他のプログラムで個々のクラスを簡単に再利用できるモジュール設計を持つことができます。

RContract®プログラミング哲学による設計は、実際のビジネス契約のアイデアです。このモデルでは、オブジェクト指向プログラムの各メソッドとクラスは、それと相互作用する他のメソッドまたはオブジェクトが順守する契約を定義します。また、各クラスは、外部契約が機能する能力を妥協しないことを確認するために内部的に従う必要があるというクラスの不変と呼ばれる契約を持つことができます。

設計とコーディング中に最も重要な契約の2つの部分は、前提条件と事後条件です。 Contract®モデルによる設計のこれらの2つの部分は、メソッドが呼び出される前にプログラムの状態と、メソッドの実行が完了した後にプログラムの状態を定義します。契約の他の部分は実装によって異なる場合がありますが、他のモジュールとの相互参照、同期条件、および解釈の要件が含まれる場合があります。

各クラスと方法の契約を開発することにより、プログラムのさまざまな部分の相互作用を簡単にマッピングおよび予測できます。アサーションまたはその他のメカニズムの使用を通じて、契約の施行は、その状態で生成された出力がとにかく無効になるため、契約の違反がある場合、プログラムが実行を試みないことも保証されます。ネイティブ言語機能として実装された場合、Design ByContract®は、予期せぬエラーの可能性がほとんどなく、最終製品が予想どおりに動作するようにするのに役立ちます。

Contract®哲学による設計の使用に伴う合併症の一部には、コーディングが開始される前にシステムの設計時間が長くなり、大規模なプロジェクトで難しい場合があります。より実際には、契約をネイティブにサポートするプログラミング言語で使用される契約検証メカニズムは、プログラムの実行を遅くすることができます。 tの理解が悪い彼は契約による設計であり、契約を使用して基本的なエラーチェックを実行するプログラムにつながり、リリース後に突然クラッシュする傾向があるアプリケーションにつながる可能性があります。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?