b'\n_START_ARTICLE_\nSopimuspohjainen ohjelmointi\n_START_PARAGRAPH_\nSopimuspohjainen ohjelmointi on tietokoneohjelmistojen suunnittelutapa. Sen mukaan ohjelmistosuunnittelijoiden tulisi m\xc3\xa4\xc3\xa4ritell\xc3\xa4 muodolliset, t\xc3\xa4sm\xc3\xa4lliset ja tarkastettavat rajapintam\xc3\xa4\xc3\xa4ritykset ohjelmistokomponenteille. N\xc3\xa4m\xc3\xa4 m\xc3\xa4\xc3\xa4ritykset laajentavat tavallisten abstraktien tietotyyppien m\xc3\xa4\xc3\xa4ritelm\xc3\xa4\xc3\xa4 alkuehdoilla, loppuehdoilla ja invarianteilla. N\xc3\xa4it\xc3\xa4 m\xc3\xa4\xc3\xa4rityksi\xc3\xa4 kutsutaan sopimuksiksi konseptin k\xc3\xa4ytt\xc3\xa4m\xc3\xa4n liike-el\xc3\xa4m\xc3\xa4n sopimusten ehtojen ja velvollisuuksien metaforan mukaan.\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nTermin otti ensimm\xc3\xa4isen\xc3\xa4 k\xc3\xa4ytt\xc3\xa4\xc3\xa4n Bertrand Meyer suunnittelemansa Eiffel-ohjelmointikielen yhteydess\xc3\xa4 ja kuvailtiin ensimm\xc3\xa4isen\xc3\xa4 useissa artikkeleissa alkaen vuodesta 1986 ja kahdessa per\xc3\xa4kk\xc3\xa4isess\xc3\xa4 versiossa (1988, 1997) kirjastaan Object-Oriented Software Construction. Eiffel Software haki menetelm\xc3\xa4n englanninkieliselle nimelle \xe2\x80\x9dDesign by Contract\xe2\x80\x9d tavaramerkkisuojaa joulukuussa 2003, ja se my\xc3\xb6nnettiin joulukuussa 2004. Tavaramerkin nykyinen omistaja on Eiffel Software.\n_START_SECTION_\nSuhde ohjelmistojen testaukseen\n_START_PARAGRAPH_\nYksikk\xc3\xb6testaus testaa moduulia eristyksess\xc3\xa4 tarkastaakseen, ett\xc3\xa4 se toteuttaa sopimuksensa olettaen, ett\xc3\xa4 alihankkijat toteuttavat omansa. Integraatiotestaus tarkastaa ett\xc3\xa4 eri moduulit toimivat oikein yhdess\xc3\xa4.\n_START_SECTION_\nKielet, joissa kolmannen osapuolen tuki\n_START_PARAGRAPH_\nMonia kirjastoja, esik\xc3\xa4\xc3\xa4nt\xc3\xa4ji\xc3\xa4 ja muita ty\xc3\xb6kaluja on kehitetty olemassaoleville ohjelmointikielille ilman natiivia sopimuspohjaisen ohjelmoinnin tukea.'