Principio de sustitución de Liskov

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Principio de sustitución de Liskov es un principio de la programación orientada a objetos. y puede definirse como: Cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas. En lenguaje mas formal: si S es un subtipo de T, entonces los objetos de tipo T en un programa de computadora pueden ser sustituidos por objetos de tipo S (es decir, los objetos de tipo S pueden sustituir objetos de tipo T), sin alterar ninguna de las propiedades deseables de ese programa (la corrección, la tarea que realiza, etc.) Más formalmente, El Principio de Sustitución de Liskov (LSP) es una definición particular de una relación de subtipificación, llamada tipificación (fuerte) del comportamiento, que fue introducido inicialmente por Barbara Liskov en una conferencia magistral en 1987 titulada La Abstracción de Datos y Jerarquía.[1] Se refiere más a una relación semántica que a una relación sintáctica, ya que sólo tiene la intención de garantizar la interoperabilidad semántica de tipos en una jerarquía, los tipos de objeto en particular. Liskov y Jeannette Wing formularon el principio de manera conjunta en un artículo en el año 1994 de la siguiente manera:

Sea q (x) una propiedad comprobable acerca de los objetos x de tipo T. Entonces q (y) debe ser verdad para los objetos y del tipo S donde S, es un subtipo de T.

En el mismo artículo, Liskov y Wing detallan que su concepto de comportamiento de subtipos es una extensión de la lógica de Hoare, que tiene una cierta semejanza con el diseño por contrato de Bertrand Meyer, ya que considera la interacción de subtipos con pre y postcondiciones.

Referencias[editar]

  1. 'A behavioral notion of subtyping, ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 16, Issue 6 (November 1994), pp. 1811 - 1841. An updated version appeared as CMU technical report: Liskov, Barbara; Wing, Jeannette (July 1999). «Behavioral Subtyping Using Invariants and Constraints» (PS). Consultado el 05-10-2006. The formalization of the principle by its authors.

Bibliografía[editar]

  • Gary T. Leavens and Krishna K. Dhara, Concepts of Behavioral Subtyping and a Sketch of Their Extension to Component-Bases Systems in Gary T. Leavens, Murali Sitaraman, (ed.) Foundations of component-based systems, Cambridge University Press, 2000 ISBN 0-521-77164-1. This paper surveys various notions of behavioral subtyping, including Liskov and Wing's.
  • Barbara Liskov, Jeannette Wing, A behavioral notion of subtyping, ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 16, Issue 6 (November 1994), pp. 1811 – 1841. An updated version appeared as CMU technical report: Liskov, Barbara; Wing, Jeannette (July 1999). «Behavioral Subtyping Using Invariants and Constraints» (PS). Consultado el 05-10-2006. The formalization of the principle by its authors.
  • Reinhold Plösch, Contracts, scenarios and prototypes: an integrated approach to high quality software, Springer, 2004, ISBN 3-540-43486-0. Contains a gentler introduction to behavioral subtyping in its various forms in chapter 2.
  • Robert C. Martin, The Liskov Substitution Principle, C++ Report, March 1996. An article popular in the object-oriented programming community that gives several examples of LSP violations.
  • Kazimir Majorinc, Ellipse-Circle Dilemma and Inverse Inheritance, ITI 98, Proceedings of the 20th International Conference of Information Technology Interfaces, Pula, 1998, ISSN 1330-1012. This paper discusses LSP in the mentioned context.
  • Ashley McNeile, A framework for the semantics of behavioral contracts. Proceedings of the Second International Workshop on Behaviour Modelling: Foundation and Applications (BM-FA '10). ACM, New York, NY, USA, 2010. This paper discusses generalized notions of Contract and Substitutability.

Enlaces externos[editar]