Design by contract (original) (raw)

About DBpedia

التصميم بالعقود (بالإنجليزية: Desing by Contract)‏ هي طريقة في إدارة المشاريع البرمجية حيث يقوم الفريق البرمجي بوضع الأطر العامة والصورة الكبيرة لما يجب أن يحدث أو يتم في كل جزء برمجي، مع ترك طريقة تنفيذ تلك المهمة للمبرمج. للمثال على ذلك، يعرف أن المكابح في السيارة تعمل على إيقافها (هذا الاتفاق)، لكن الشركات المختلفة تستخدم طرقًا مختلفة في الكيفية التي تصمم بها عمل المكابح. في البرمجة يتفق المبرمجون على عمل الكائنات الوظائف بشكل عام وماذا يجب أن تكون نتيجتها، ويتركون كيفية العمل لكل شخص في فعل ما يراه مناسبًا دون أن يغير في ما اتفق عليه.

thumbnail

Property Value
dbo:abstract التصميم بالعقود (بالإنجليزية: Desing by Contract)‏ هي طريقة في إدارة المشاريع البرمجية حيث يقوم الفريق البرمجي بوضع الأطر العامة والصورة الكبيرة لما يجب أن يحدث أو يتم في كل جزء برمجي، مع ترك طريقة تنفيذ تلك المهمة للمبرمج. للمثال على ذلك، يعرف أن المكابح في السيارة تعمل على إيقافها (هذا الاتفاق)، لكن الشركات المختلفة تستخدم طرقًا مختلفة في الكيفية التي تصمم بها عمل المكابح. في البرمجة يتفق المبرمجون على عمل الكائنات الوظائف بشكل عام وماذا يجب أن تكون نتيجتها، ويتركون كيفية العمل لكل شخص في فعل ما يراه مناسبًا دون أن يغير في ما اتفق عليه. (ar) Design by contract (kurz DbC, englisch für Entwurf gemäß Vertrag) oder Programming by Contract (‚Vertragsbasierte Programmierung‘) ist ein Konzept aus dem Bereich der Softwareentwicklung. Ziel ist das reibungslose Zusammenspiel einzelner Programmmodule durch die Definition formaler Verträge zur Verwendung von Schnittstellen, die über deren statische Definition hinausgehen. Entwickelt und eingeführt wurde es von Bertrand Meyer mit der Entwicklung der Programmiersprache Eiffel. (de) Perkontrakta programado estas paradigmo kiu permesas fari komputilajn programojn pli sekuraj dank'al aldono de reguloj. Plej kutime la reguloj estas aldonataj sur la signaturo de funkcio aŭ proceduro. Temas pri: * prekondiĉoj : indikas ke la parametroj kaj la ĉirkauaĵo devas respekti regulojn antaŭ ol oni vokas la funkcion * postkondiĉoj : indikas ke la funkcio garantias ke la regulo estos vera post la alvoko de la funkcio * nevarianto : indikas ke io estas ĉiam vera, do antaŭ kaj post la voko de la funkcio. Ekzemple, se oni volas skribi funkcion por kalkuli logaritmon oni povus diri ke * prekondiĉo estas, ke la parametro estas pli granda ol 0 * postkondiĉo povus esti ekzemple ke Eksponenta funkcio aplikata al la rezulto redonas la parametron. La tradukilo decidas, kion oni faras de tiuj kondiĉoj: * kelkaj kapablas kontroli evidentajn kondiĉojn dum tradukado (ekzemple se vi skribas x = -1; y = log(x), evidentiĝas ke la prekondiĉo ne estas vera) * plimulto da tradukiloj simple aldonas kontrolon en la komenco kaj fino de la funkcio, kiuj kontrolas dum la programo funkcias, kaj se kondiĉo ne veras, interompas la programon (sed kiam la programado estas finita oni demandas al tradukilo forviŝi la testojn por ke la programo laboru pli rapide). Eiffel estas el la plej unuaj programlingvoj kiuj denaske permesas perkontraktan programadon. Tamen ekzistas ankaŭ bibliotekoj permesante programi per kontrakto kun plej kutimaj programlingvoj, ekzemple en Java.Programlingvoj kiel C kaj Java nun proponas la funkcion assert kun la sama celo, sed tio ne estas tute simila: assert povas aperi ie ajn en la funkcio. Tute male, kontraktoj estas deklarataj je la komenco de la funkcio, ili estas parto de ĝia signaturo kaj dank'al tio estas bonaj indikiloj por programistoj kiuj poste uzas la funkcion, por kompreni kiel uzi ĝin. (eo) Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software. It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions and invariants. These specifications are referred to as "contracts", in accordance with a conceptual metaphor with the conditions and obligations of business contracts. The DbC approach assumes all client components that invoke an operation on a server component will meet the preconditions specified as required for that operation. Where this assumption is considered too risky (as in multi-channel or distributed computing), the inverse approach is taken, meaning that the server component tests that all relevant preconditions hold true (before, or while, processing the client component's request) and replies with a suitable error message if not. (en) El diseño por contrato es una metodología para el diseño e implementación de aplicaciones y componentes popularizada por el lenguaje de programación Eiffel. Consiste en considerar los elementos de diseño como participantes de una relación similar al contrato de negocios. Así, se pueden diseñar los componentes dando por supuesto que se cumplirán ciertas condiciones de entrada (precondiciones), mientras que se deberán garantizar ciertas condiciones de salida (postcondiciones), así como la invariante de clase (propiedades que se mantienen invariantes a pesar del procesamiento realizado por el componente). Esta metodología promete: * Una mejor comprensión de la programación orientada a objetos. Esto se debe a que el propio prototipo de un recurso de una clase es también parte del contrato que este ofrece. Mediante razonamientos de este tipo, por ejemplo, se justifica el comportamiento covariante de los tipos de retornos de los métodos en Eiffel. * Menos errores en el código gracias a una mejor representación de las especificaciones. * Un sistema efectivo para detectar errores. * Una forma práctica de documentar el código al mismo tiempo en que se programa. * Una imbricación eficaz con los mecanismos de herencia y reutilización. * Una forma efectiva de encapsulación evitando el acceso al resto de propiedades y métodos. * Una agrupación de operaciones para un mismo contexto. Si hablamos de una entidad A del cual, podemos instanciar dos objetos B y C que tienen distintos contextos relacionados con la entidad A, con el contrato no exponemos el negocio que tenga que ofrecer el objeto B con el del C. Un ejemplo A = Banco, B= Ingresos bancarios y C= pagos de facturas. (es) La programmation par contrat (en anglais, design by contract ou DBC) est un paradigme de programmation dans lequel le déroulement des traitements est régi par des règles. Ces règles, appelées des assertions, forment un contrat qui précise les responsabilités entre le client et le fournisseur d'un morceau de code logiciel. C'est une méthode de programmation semi-formelle dont le but principal est de réduire le nombre de bugs dans les programmes. Historiquement, la programmation par contrat a été introduite par Bertrand Meyer dans son langage Eiffel datant de 1985, qui était inspiré de la notation Z créée par Jean-Raymond Abrial. (fr) Design by contract (in sigla: DBC ) o progettazione per contratto è una metodologia per progettare il software. Prescrive che i progettisti di software debbano definire specifiche precise e verificabili delle interfacce dei componenti software, basandosi sulla teoria dei tipi di dati astratti e sulla metafora di un contratto legale. (it) Programowanie kontraktowe (ang. Design by contract, DbC) – w programowaniu, metoda organizowania kodu źródłowego programu w taki sposób, aby wynikało z niego nie tylko jak program ma działać, ale też w jaki sposób zweryfikować poprawność działania konkretnych elementów programu (funkcje, struktury, klasy, moduły, itp.). Programowanie kontraktowe jest związane z programowaniem obiektowym. (pl) 契約プログラミング(けいやくプログラミング、英: Contract programming)または契約による設計(けいやくによるせっけい、英: Design by Contract; DbC)は、ソフトウェアの正確性と頑健性を高めるためのソフトウェア設計の方法論である。DbC はロバート・フロイド、アントニー・ホーア、エドガー・ダイクストラらの形式的検証の仕事を基礎にしている。DbC は(抽象データ型に基づく)オブジェクト指向プログラミングにおける表明の利用や、継承に伴う表明の再定義の原理的規則、例外処理の原理的規則などを提供する。 DbC は、バートランド・メイヤーによって提案された。 (ja) Programação por contrato do inglês Design by contract (DbC) é um abordagem de desenvolvimento de software que prescreve que os desenvolvedores devem definir métodos formais, especificações de interface precisas e verificáveis dos componentes de desenvolvimento de software, que acarreta na definição de Tipo Abstrato de Dados com pre-condições, pos-condições e constantes. Estas especificações são definidas como um "contrato", de acordo com os próprios conceitos de condições e obrigações dos contratos de negócio. Devido o termo Design by Contract ser marca registrada da Eiffel Software nos EUA, muitos desenvolvedores se referem à abordagem como Programação por Contrato (Programming by contract). (pt) Проектування за контрактом (англ. design by contract (DbC), programming by contract, contract-based programming) — методологія розробки програмного забезпечення. Вона вимагає від проектувальників задавати формальні, точні та такі, що підлягають верифікації, специфікації інтерфейсів програмних компонентів. Окрім задання абстрактних типів даних вимагається також задання передумов, післяумов та інваріантів. Такі специфікації називаються «контрактами» згідно з концептуальною метафорою умов і зобов'язань у бізнесових контрактах. Підхід DbC передбачає, що всі клієнтські компоненти, які викликають операції на серверних компонентах, повинні відповідати передумовам, визначених як необхідні для цієї операції. Там, де це припущення вважається занадто ризикованим (як у багатоканальних клієнт-серверних або розподілених обчисленнях) обирають протилежний підхід - «безпечне програмування», яке означає, що серверний компонент перевіряє (до або під час обробки запиту клієнта), що всі відповідні передумови дотримані, або відповідає належним повідомленням про помилку, якщо ні. (uk) Контрактное программирование (design by contract (DbC), programming by contract, contract-based programming) — это метод проектирования программного обеспечения. Он предполагает, что проектировщик должен определить формальные, точные и верифицируемые спецификации интерфейсов для компонентов системы. При этом, кроме обычного определения абстрактных типов данных, также используются предусловия, постусловия и инварианты. Данные спецификации называются «контрактами» в соответствии с условий и ответственности в гражданско-правовых договорах. (ru) 契约式设计(英語:Design by Contract,縮寫為 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。 因为“Design by Contract”是属于Eiffel Software的注册商标,很多开发人员用契約式編程(Programming by Contract),契約編程(Contract Programming),或者契約優先式開發(Contract-First development)来指代这种方法。微軟也採用這種設計方法,稱為程式碼合約(Code Contracts)。 (zh)
dbo:thumbnail wiki-commons:Special:FilePath/Design_by_contract.svg?width=300
dbo:wikiPageExternalLink http://buksbaum.us/2011/04/20/using-code-contracts-for-safer-code/ http://csd.informatik.uni-oldenburg.de/~jass/ http://www.rps-obix.com/docs/manuals/design_by_contract_contract_programming.html https://peps.python.org/pep-0316/ https://sebthom.github.io/oval/ https://swdes.net/en/content/safer-project https://www.eiffel.com/values/design-by-contract/ https://dx.doi.org/10.1145/1811147.1811150 https://pypi.org/project/PyContracts3/ https://pypi.org/project/dpcontracts/ https://pypi.org/project/icontract/ https://pypi.org/project/zope.interface/ https://www.npmjs.com/package/dbc-code-contracts https://crates.io/crates/contracts http://se.ethz.ch/~meyer/publications/computer/contract.pdf http://archive.eiffel.com/doc/manuals/technology/contract/ http://modernjass.sourceforge.net http://www.valid4j.org https://github.com/Bambofy/dbc_cpp https://github.com/Parquery/gocontracts https://github.com/Udiknedormin/NimContracts https://github.com/busybusy/DBC-Apple https://github.com/drblez/dbc https://github.com/final-hill/decorator-contracts https://github.com/life4/deal https://github.com/nhatminhle/cofoja https://github.com/php-deal/framework https://www.boost.org/doc/libs/master/libs/contract/doc/html/index.html
dbo:wikiPageID 39289 (xsd:integer)
dbo:wikiPageLength 20315 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1120933791 (xsd:integer)
dbo:wikiPageWikiLink dbr:Bean_Validation dbr:Python_(programming_language) dbr:Ruby_(programming_language) dbr:Sather dbr:Scala_(programming_language) dbr:Metaobject dbr:Bertrand_Meyer dbr:Jtest dbr:Perl dbr:VDM_specification_language dbr:Vala_(programming_language) dbr:Defensive_programming dbr:Integration_testing dbr:Invariant_(computer_science) dbr:Object-Oriented_Software_Construction dbr:Praspel dbr:Preprocessor dbr:.NET_Framework dbr:Common_Lisp dbr:Rust_(programming_language) dbr:SPARK_(programming_language) dbr:Object-oriented_programming dbr:Test_suite dbr:Ciao_(programming_language) dbr:Class_(computer_programming) dbr:Clojure dbr:Cobra_(programming_language) dbr:Eiffel_(programming_language) dbr:GNAT dbr:Go_(programming_language) dbr:Correctness_(computer_science) dbr:Precondition dbr:Program_derivation dbr:Comment_(computer_programming) dbr:Common_Lisp_Object_System dbr:Component-based_software_engineering dbr:Test-driven_development dbr:Postcondition dbr:C++ dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbc:Software_design dbr:Distributed_computing dbr:Liskov_substitution_principle dbr:Loki_(C++) dbr:Abstract_data_type dbr:Ada_(programming_language) dbr:D_(programming_language) dbr:Dafny_(programming_language) dbr:Damian_Conway dbr:Dynamic_binding_(computer_science) dbr:Exception_handling dbr:Formal_verification dbr:Fortress_(programming_language) dbr:Nim_(programming_language) dbr:Oxygene_(programming_language) dbr:PHP dbr:Fail-fast dbr:Formal_methods dbr:Formal_specification dbr:Software_documentation dbr:Exception_(computer_science) dbr:Groovy_(programming_language) dbr:Ada_programming_language dbr:JavaScript dbr:Java_(programming_language) dbr:Tcl dbr:AspectJ dbc:Programming_paradigms dbr:Swift_(programming_language) dbr:System_testing dbr:Hoare_logic dbr:Java_Modeling_Language dbr:Modular_programming dbr:Software_design dbr:Test_oracle dbr:Digital_Mars dbr:Assertion_(software_development) dbr:CPAN dbr:Spring_Framework dbr:Class_invariant dbr:Inheritance_(computer_science) dbr:Inheritance_(object-oriented_programming) dbr:Kotlin_(programming_language) dbr:Mercury_(programming_language) dbr:Method_(computer_science) dbr:Microsoft_Research dbr:Nemerle dbr:Racket_(programming_language) dbr:XOTcl dbr:Static_code_analysis dbr:Side_effect_(computer_science) dbr:Unit_testing dbr:Typestate_analysis dbr:Conceptual_metaphor dbr:Programming_language dbr:Offensive_programming dbr:Strong_and_weak_typing dbr:Hoare_triple dbr:Program_refinement dbr:GNU_Nana dbr:B:Computer_Programming/Design_by_Contract dbr:CTESK dbr:File:Design_by_contract.svg dbr:JavaTESK
dbp:wikiPageUsesTemplate dbt:Citation_needed dbt:Cn dbt:Design dbt:External_links dbt:Multiple_issues dbt:Refbegin dbt:Refend dbt:Reflist dbt:Short_description dbt:Cleanup_list
dct:subject dbc:Software_design dbc:Programming_paradigms
gold:hypernym dbr:Approach
rdf:type yago:WikicatSoftwareDevelopmentPhilosophies yago:Ability105616246 yago:Abstraction100002137 yago:Belief105941423 yago:Cognition100023271 yago:Content105809192 yago:Doctrine105943300 yago:GrammaticalRelation113796779 yago:Inflection113803782 yago:Know-how105616786 yago:LinguisticRelation113797142 yago:Method105660268 yago:Paradigm113804375 yago:PsychologicalFeature100023100 yago:Relation100031921 dbo:ProgrammingLanguage yago:WikicatFormalMethods yago:WikicatProgrammingParadigms
rdfs:comment التصميم بالعقود (بالإنجليزية: Desing by Contract)‏ هي طريقة في إدارة المشاريع البرمجية حيث يقوم الفريق البرمجي بوضع الأطر العامة والصورة الكبيرة لما يجب أن يحدث أو يتم في كل جزء برمجي، مع ترك طريقة تنفيذ تلك المهمة للمبرمج. للمثال على ذلك، يعرف أن المكابح في السيارة تعمل على إيقافها (هذا الاتفاق)، لكن الشركات المختلفة تستخدم طرقًا مختلفة في الكيفية التي تصمم بها عمل المكابح. في البرمجة يتفق المبرمجون على عمل الكائنات الوظائف بشكل عام وماذا يجب أن تكون نتيجتها، ويتركون كيفية العمل لكل شخص في فعل ما يراه مناسبًا دون أن يغير في ما اتفق عليه. (ar) Design by contract (kurz DbC, englisch für Entwurf gemäß Vertrag) oder Programming by Contract (‚Vertragsbasierte Programmierung‘) ist ein Konzept aus dem Bereich der Softwareentwicklung. Ziel ist das reibungslose Zusammenspiel einzelner Programmmodule durch die Definition formaler Verträge zur Verwendung von Schnittstellen, die über deren statische Definition hinausgehen. Entwickelt und eingeführt wurde es von Bertrand Meyer mit der Entwicklung der Programmiersprache Eiffel. (de) Design by contract (in sigla: DBC ) o progettazione per contratto è una metodologia per progettare il software. Prescrive che i progettisti di software debbano definire specifiche precise e verificabili delle interfacce dei componenti software, basandosi sulla teoria dei tipi di dati astratti e sulla metafora di un contratto legale. (it) Programowanie kontraktowe (ang. Design by contract, DbC) – w programowaniu, metoda organizowania kodu źródłowego programu w taki sposób, aby wynikało z niego nie tylko jak program ma działać, ale też w jaki sposób zweryfikować poprawność działania konkretnych elementów programu (funkcje, struktury, klasy, moduły, itp.). Programowanie kontraktowe jest związane z programowaniem obiektowym. (pl) 契約プログラミング(けいやくプログラミング、英: Contract programming)または契約による設計(けいやくによるせっけい、英: Design by Contract; DbC)は、ソフトウェアの正確性と頑健性を高めるためのソフトウェア設計の方法論である。DbC はロバート・フロイド、アントニー・ホーア、エドガー・ダイクストラらの形式的検証の仕事を基礎にしている。DbC は(抽象データ型に基づく)オブジェクト指向プログラミングにおける表明の利用や、継承に伴う表明の再定義の原理的規則、例外処理の原理的規則などを提供する。 DbC は、バートランド・メイヤーによって提案された。 (ja) Контрактное программирование (design by contract (DbC), programming by contract, contract-based programming) — это метод проектирования программного обеспечения. Он предполагает, что проектировщик должен определить формальные, точные и верифицируемые спецификации интерфейсов для компонентов системы. При этом, кроме обычного определения абстрактных типов данных, также используются предусловия, постусловия и инварианты. Данные спецификации называются «контрактами» в соответствии с условий и ответственности в гражданско-правовых договорах. (ru) 契约式设计(英語:Design by Contract,縮寫為 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。 因为“Design by Contract”是属于Eiffel Software的注册商标,很多开发人员用契約式編程(Programming by Contract),契約編程(Contract Programming),或者契約優先式開發(Contract-First development)来指代这种方法。微軟也採用這種設計方法,稱為程式碼合約(Code Contracts)。 (zh) Perkontrakta programado estas paradigmo kiu permesas fari komputilajn programojn pli sekuraj dank'al aldono de reguloj. Plej kutime la reguloj estas aldonataj sur la signaturo de funkcio aŭ proceduro. Temas pri: * prekondiĉoj : indikas ke la parametroj kaj la ĉirkauaĵo devas respekti regulojn antaŭ ol oni vokas la funkcion * postkondiĉoj : indikas ke la funkcio garantias ke la regulo estos vera post la alvoko de la funkcio * nevarianto : indikas ke io estas ĉiam vera, do antaŭ kaj post la voko de la funkcio. Ekzemple, se oni volas skribi funkcion por kalkuli logaritmon oni povus diri ke (eo) El diseño por contrato es una metodología para el diseño e implementación de aplicaciones y componentes popularizada por el lenguaje de programación Eiffel. Consiste en considerar los elementos de diseño como participantes de una relación similar al contrato de negocios. Así, se pueden diseñar los componentes dando por supuesto que se cumplirán ciertas condiciones de entrada (precondiciones), mientras que se deberán garantizar ciertas condiciones de salida (postcondiciones), así como la invariante de clase (propiedades que se mantienen invariantes a pesar del procesamiento realizado por el componente). (es) Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software. It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions and invariants. These specifications are referred to as "contracts", in accordance with a conceptual metaphor with the conditions and obligations of business contracts. (en) La programmation par contrat (en anglais, design by contract ou DBC) est un paradigme de programmation dans lequel le déroulement des traitements est régi par des règles. Ces règles, appelées des assertions, forment un contrat qui précise les responsabilités entre le client et le fournisseur d'un morceau de code logiciel. C'est une méthode de programmation semi-formelle dont le but principal est de réduire le nombre de bugs dans les programmes. (fr) Programação por contrato do inglês Design by contract (DbC) é um abordagem de desenvolvimento de software que prescreve que os desenvolvedores devem definir métodos formais, especificações de interface precisas e verificáveis dos componentes de desenvolvimento de software, que acarreta na definição de Tipo Abstrato de Dados com pre-condições, pos-condições e constantes. Estas especificações são definidas como um "contrato", de acordo com os próprios conceitos de condições e obrigações dos contratos de negócio. (pt) Проектування за контрактом (англ. design by contract (DbC), programming by contract, contract-based programming) — методологія розробки програмного забезпечення. Вона вимагає від проектувальників задавати формальні, точні та такі, що підлягають верифікації, специфікації інтерфейсів програмних компонентів. Окрім задання абстрактних типів даних вимагається також задання передумов, післяумов та інваріантів. Такі специфікації називаються «контрактами» згідно з концептуальною метафорою умов і зобов'язань у бізнесових контрактах. (uk)
rdfs:label تصميم بالعقود (ar) Design by Contract (de) Perkontrakta programado (eo) Diseño por contrato (es) Design by contract (en) Programmation par contrat (fr) Design by contract (it) 契約プログラミング (ja) Programowanie kontraktowe (pl) Programação por contrato (pt) Контрактное программирование (ru) Проєктування за контрактом (uk) 契约式设计 (zh)
owl:sameAs freebase:Design by contract yago-res:Design by contract wikidata:Design by contract dbpedia-ar:Design by contract dbpedia-da:Design by contract dbpedia-de:Design by contract dbpedia-eo:Design by contract dbpedia-es:Design by contract dbpedia-fi:Design by contract dbpedia-fr:Design by contract dbpedia-he:Design by contract dbpedia-hu:Design by contract dbpedia-it:Design by contract dbpedia-ja:Design by contract dbpedia-pl:Design by contract dbpedia-pt:Design by contract dbpedia-ru:Design by contract dbpedia-sk:Design by contract dbpedia-uk:Design by contract dbpedia-zh:Design by contract https://global.dbpedia.org/id/Ed4F
prov:wasDerivedFrom wikipedia-en:Design_by_contract?oldid=1120933791&ns=0
foaf:depiction wiki-commons:Special:FilePath/Design_by_contract.svg
foaf:isPrimaryTopicOf wikipedia-en:Design_by_contract
is dbo:knownFor of dbr:Bertrand_Meyer
is dbo:wikiPageDisambiguates of dbr:DBC dbr:Contract_(disambiguation)
is dbo:wikiPageRedirects of dbr:Design_by_Contract dbr:Program_by_contract dbr:Design_By_Contract dbr:DBC_(programming) dbr:DbC dbr:Contract-based_design dbr:Contract_(software) dbr:Contract_programming dbr:Programming_by_Contract dbr:Programming_by_contract dbr:Software_contract dbr:CodeContracts dbr:Code_Contracts dbr:Code_contract dbr:Code_contracts
is dbo:wikiPageWikiLink of dbr:Python_(programming_language) dbr:Sather dbr:Monitor_(synchronization) dbr:Object_orgy dbr:Bertrand_Meyer dbr:Design_by_Contract dbr:List_of_pioneers_in_computer_science dbr:Defensive_programming dbr:Dependency_inversion_principle dbr:Design_specification dbr:Integer_overflow dbr:Interface-based_programming dbr:Invariant_(mathematics) dbr:Inversion_of_control dbr:List_of_programmers dbr:List_of_programming_language_researchers dbr:Script.NET dbr:Praspel dbr:Contract dbr:Rust_(programming_language) dbr:Object-oriented_programming dbr:Cobra_(programming_language) dbr:Eiffel_(programming_language) dbr:Const_(computer_programming) dbr:Correctness_(computer_science) dbr:Precondition dbr:Program_derivation dbr:Operational_semantics dbr:Program_by_contract dbr:Singularity_(operating_system) dbr:Command–query_separation dbr:Comment_(computer_programming) dbr:Design_By_Contract dbr:Kermeta dbr:Perfect_Developer dbr:Programming_language_theory dbr:Test-driven_development dbr:Postcondition dbr:DBC dbr:Liskov_substitution_principle dbr:List_of_CLI_languages dbr:ANSI/ISO_C_Specification_Language dbr:Abstract_data_type dbr:Ada_(programming_language) dbr:D_(programming_language) dbr:Dafny dbr:Exception_handling dbr:Fail-fast dbr:Fail-silent_system dbr:Flow-based_programming dbr:Formal_methods dbr:Software_documentation dbr:Robert_Bruce_Findler dbr:EiffelStudio dbr:Hoare_logic dbr:Java_Modeling_Language dbr:Java_Portlet_Specification dbr:Test_oracle dbr:Dlib dbr:Assertion_(software_development) dbr:Software_construction dbr:Class_invariant dbr:Contract_(disambiguation) dbr:DBC_(programming) dbr:Kotlin_(programming_language) dbr:OpenLisp dbr:Racket_(programming_language) dbr:Map_(higher-order_function) dbr:Type_safety dbr:SCOOP_(software) dbr:Unit_testing dbr:Typestate_analysis dbr:Offensive_programming dbr:Racket_features dbr:Strong_and_weak_typing dbr:SOLID dbr:DbC dbr:Contract-based_design dbr:Contract_(software) dbr:Contract_programming dbr:Programming_by_Contract dbr:Programming_by_contract dbr:Software_contract dbr:CodeContracts dbr:Code_Contracts dbr:Code_contract dbr:Code_contracts
is dbp:knownFor of dbr:Bertrand_Meyer
is dbp:paradigm of dbr:Praspel
is foaf:primaryTopic of wikipedia-en:Design_by_contract