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 ejemplarizar 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.

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

Principio de sustitución de Liskov

sin violar LSP. 'A behavioral notion of subtyping, ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 16, Issue 6 (November 1994), pp

ESPNU

de octubre de 2022.  «Cable Television News, Broadcast, Syndication, Programming & Local TV | Multichannel». Multichannel News (en inglés). Consultado

G-Eazy

2011.  Savage, Emily. «TUCP Spring Concert». Tulane University Campus Programming. 15 de marzo de 2011. Archivado desde el original el 24 de noviembre

Global News

May 31, 2011. Accessed online June 22, 2011. «Global News Boosts Local Programming Across the Country». Broadcaster Magazine. 30 de mayo de 2012. Archivado

KUNS-TV

News Check (en inglés). Consultado el 28 de agosto de 2021.  «Nexttv | Programming| Business | Multichannel Broadcasting + Cable | www.nexttv.com». NextTV

Dish Network

Television Network". 16 de abril de 2004. http://www.Dishnetwork.com/turbohd/programming/default.aspx DISH Network Drops Viacom Channels As Talks Stall Archivado

C++20

Working Draft, C++ Extensions for Networking».  «ISO/IEC TS 19216:2018 Programming Languages -- C++ Extensions for Networking».  «A General Property Customization

Space Battleship Yamato

from the usual plot of "good vanquishes evil" so common in children’s programming, it acknowledged the enemy’s necessity in attacking Earth: the Gamilons