stringtranslate.com

Objeto (informática)

En informática , un objeto puede ser una variable , una estructura de datos , una función o un método . Como regiones de la memoria , los objetos contienen un valor y están referenciados por identificadores .

En el paradigma de programación orientada a objetos , un objeto puede ser una combinación de variables, funciones y estructuras de datos; en particular, en las variaciones del paradigma basadas en clases , un objeto se refiere a una instancia particular de una clase .

En el modelo relacional de gestión de bases de datos , un objeto puede ser una tabla o columna , o una asociación entre datos y una entidad de base de datos (como relacionar la edad de una persona con una persona específica). [1]

Lenguajes basados ​​en objetos

Una distinción importante en los lenguajes de programación es la diferencia entre un lenguaje orientado a objetos y un lenguaje basado en objetos. Generalmente se considera que un lenguaje está basado en objetos si incluye las capacidades básicas de un objeto: identidad, propiedades y atributos. Un lenguaje se considera orientado a objetos si está basado en objetos y también tiene la capacidad de polimorfismo , herencia , encapsulación y, posiblemente, composición . El polimorfismo se refiere a la capacidad de sobrecargar el nombre de una función con múltiples comportamientos según los objetos que se le pasan. El paso de mensajes convencional discrimina sólo en el primer objeto y considera que está "enviando un mensaje" a ese objeto. Sin embargo, algunos lenguajes de programación orientados a objetos, como Flavors y Common Lisp Object System (CLOS), permiten discriminar en más del primer parámetro de la función. [2] La herencia es la capacidad de subclasificar una clase de objeto, de crear una nueva clase que es una subclase de una existente y hereda todas las restricciones de datos y comportamientos de sus padres, pero también agrega nuevos y/o cambia uno o más de ellos. . [3] [4]

Programación orientada a objetos

En programación orientada a objetos , un objeto es un tipo de datos abstracto con la adición de polimorfismo y herencia . En lugar de estructurar programas como código y datos, un sistema orientado a objetos integra los dos utilizando el concepto de "objeto". Un objeto tiene estado (datos) y comportamiento (código). Los objetos pueden corresponder a cosas que se encuentran en el mundo real. Así, por ejemplo, un programa de gráficos tendrá objetos como círculo , cuadrado , menú . Un sistema de compras online tendrá objetos como carrito de compras, cliente, producto . El sistema de compras admitirá comportamientos como realizar pedidos , realizar pagos y ofrecer descuentos . Los objetos están diseñados como jerarquías de clases. Así, por ejemplo, en el sistema de compras puede haber clases de alto nivel, como productos electrónicos , productos de cocina y libros . Puede haber más mejoras, por ejemplo, en productos electrónicos : reproductor de CD, reproductor de DVD , etc. Estas clases y subclases corresponden a conjuntos y subconjuntos en lógica matemática. [5] [6]

Objetos especializados

Un concepto importante para los objetos es el patrón de diseño . Un patrón de diseño proporciona una plantilla reutilizable para abordar un problema común. Las siguientes descripciones de objetos son ejemplos de algunos de los patrones de diseño más comunes para objetos. [7]

Objetos distribuidos

El enfoque orientado a objetos no es sólo un modelo de programación. Se puede utilizar igualmente como lenguaje de definición de interfaz para sistemas distribuidos. Los objetos en un modelo de computación distribuida tienden a ser más detallados, más duraderos y más orientados a servicios que los objetos de programación.

Un método estándar para empaquetar objetos distribuidos es a través de un lenguaje de definición de interfaz (IDL). Un IDL protege al cliente de todos los detalles del objeto del servidor distribuido. Detalles como en qué computadora reside el objeto, qué lenguaje de programación utiliza, qué sistema operativo y otras cuestiones específicas de la plataforma. El IDL también suele ser parte de un entorno distribuido que proporciona servicios como transacciones y persistencia a todos los objetos de manera uniforme. Dos de los estándares más populares para objetos distribuidos son el estándar CORBA de Object Management Group y DCOM de Microsoft . [8]

Además de los objetos distribuidos, se han propuesto otras extensiones del concepto básico de objeto para permitir la computación distribuida:

Algunas de estas extensiones, como objetos distribuidos y objetos de protocolo , son términos específicos de dominio para tipos especiales de objetos "ordinarios" utilizados en un contexto determinado (como la invocación de métodos remotos o la composición de protocolos ). Otros, como los objetos replicados y los objetos distribuidos en vivo , son menos estándar, ya que abandonan el caso habitual de que un objeto resida en una única ubicación a la vez y aplican el concepto a grupos de entidades (réplicas) que pueden abarcar en múltiples ubicaciones, podría tener un estado débilmente consistente y cuya membresía podría cambiar dinámicamente.

La web semántica

La Web Semántica es esencialmente un marco de objetos distribuidos. Dos tecnologías clave en la Web Semántica son el Lenguaje de Ontología Web (OWL) y el Marco de Descripción de Recursos (RDF). RDF proporciona la capacidad de definir objetos básicos (nombres, propiedades, atributos, relaciones) a los que se puede acceder a través de Internet. OWL agrega un modelo de objetos más rico, basado en la teoría de conjuntos, que proporciona capacidades de modelado adicionales, como la herencia múltiple .

Los objetos OWL no son como objetos distribuidos estándar de gran tamaño a los que se accede a través de un lenguaje de definición de interfaz. Un enfoque así no sería apropiado para Internet porque Internet está en constante evolución y es difícil lograr la estandarización en un conjunto de interfaces. Los objetos OWL tienden a ser similares a los tipos de objetos utilizados para definir modelos de dominio de aplicación en lenguajes de programación como Java y C++ .

Sin embargo, existen distinciones importantes entre los objetos OWL y los objetos de programación tradicionales orientados a objetos. Los objetos tradicionales se compilan en jerarquías estáticas generalmente con herencia única, pero los objetos OWL son dinámicos. Un objeto OWL puede cambiar su estructura en tiempo de ejecución y puede convertirse en una instancia de clases nuevas o diferentes.

Otra diferencia fundamental es la forma en que el modelo trata la información que actualmente no está en el sistema. Los objetos de programación y la mayoría de los sistemas de bases de datos utilizan el " supuesto de mundo cerrado ". Si el sistema no conoce un hecho, se supone que es falso. Los objetos de la Web Semántica utilizan el supuesto de mundo abierto , una afirmación sólo se considera falsa si existe información real relevante de que es falsa; de lo contrario, se supone que es desconocida, ni verdadera ni falsa.

Los objetos OWL en realidad se parecen más a objetos en lenguajes de marco de inteligencia artificial como KL-ONE y Loom.

La siguiente tabla contrasta los objetos tradicionales de los lenguajes de programación orientados a objetos como Java o C++ con los objetos de la web semántica: [10] [11]

Ver también

Referencias

  1. ^ Oppel, Andy (2005). SQL desmitificado . McGraw-Hill. pag. 7.ISBN _ 0-07-226224-9.
  2. ^ Gabriel, Ricardo; Linda G. DeMichie (1987). "El sistema de objetos Common Lisp: una descripción general". ECOOP '87 Conferencia europea sobre programación orientada a objetos (PDF) . Apuntes de conferencias sobre informática. vol. 276. pág. 151. Código Bib : 1987LNCS..276..151D. doi :10.1007/3-540-47891-4_15. ISBN 978-3-540-18353-2.
  3. ^ Wegner, Peter (diciembre de 1987). Meyrowitz, normando (ed.). "Dimensiones del diseño de lenguaje basado en objetos". Actas de la conferencia OOPSLA'87 . 22 (12): 168–182. doi :10.1145/38807.38823.
  4. ^ Barbey, S; el señor Kempe; A. Strohmeier (1993). "Programación orientada a objetos con Ada 9X". Borrador de Informe Técnico . Laboratorio de Ingeniería de Software del Instituto Federal Suizo de Tecnología en Lausana . Consultado el 15 de diciembre de 2013 . Generalmente no se considera que Ada 83 esté orientado a objetos; más bien, según la terminología de Wegner [Weg 87], se dice que está basado en objetos, ya que proporciona sólo una forma restringida de herencia y carece de polimorfismo.
  5. ^ Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Ingeniería de Software Orientada a Objetos. Prensa Addison-Wesley ACM. ISBN 0-201-54435-0.
  6. ^ "¿Qué es un objeto?". oracle.com . Corporación Oráculo . Consultado el 13 de diciembre de 2013 .
  7. ^ Martin, Robert C. "Principios de diseño y patrones de diseño" (PDF) . Archivado desde el original (PDF) el 6 de septiembre de 2015 . Consultado el 28 de abril de 2017 .
  8. ^ Orfali, Robert (1996). La guía esencial de supervivencia cliente/servidor. Nueva York: Wiley Computer Publishing. págs. 399–403. ISBN 0-471-15325-7.
  9. ^ Ostrowski, K., Birman, K., Dolev, D. y Ahnn, J. (2008). "Programación con objetos distribuidos en vivo", Actas de la 22ª Conferencia europea sobre programación orientada a objetos , Paphos, Chipre, 7 al 11 de julio de 2008, J. Vitek, Ed., Lecture Notes in Computer Science , vol. 5142, Springer-Verlag, Berlín, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
  10. ^ Berners-Lee, Tim; James Hendler; Ora Lassila (17 de mayo de 2001). "La Web Semántica Una nueva forma de contenido Web que sea significativo para las computadoras desatará una revolución de nuevas posibilidades". Científico americano . 284 : 34–43. doi : 10.1038/scientificamerican0501-34. Archivado desde el original el 24 de abril de 2013.
  11. ^ Knublauch, Holger; Oberle, Daniel; Tetlow, Phil; Wallace, Evan (9 de marzo de 2006). "Una introducción a la web semántica para desarrolladores de software orientado a objetos". W3C . Consultado el 30 de julio de 2008 .
  12. ^ Tabla extraída de tablas en: http://www.w3.org/2001/sw/BestPractices/SE/ODSD/

enlaces externos