Documente Academic
Documente Profesional
Documente Cultură
Objetos
De manera informal, un objeto representa una entidad ya sea física, conceptual o software. Los
objetos son cosas que tienen información, por ejemplo un auto en particular tiene placa, modelo,
marca, tiene comportamiento, por ejemplo, avanza, retrocede. Los autos son similares entre sí y
pueden agruparse, pertenecen a la clase Autos.
Clases
Según Booch (1994), “una clase es un conjunto de objetos que comparten una estructura y un
comportamiento común. Un objeto es una instancia de una clase”.
Jacobson describe a una clase como “una definición, una plantilla o molde para habilitar la
creación de nuevos objetos y”…” describe la estructura interna de estos objetos. Objetos de la
misma clase tienen la misma definición tanto para sus operaciones como para su estructura de
información “.
Entonces, una clase es una descripción de un grupo de objetos que comparten propiedades
comunes (atributos), comportamiento común (operaciones) y asociaciones con otros objetos.
Por ejemplo, mi auto estacionado frente al edificio es una instancia de la clase auto. La
descripción genérica de “Auto” representa la clase de la cual se crean las instancias. El auto tiene
una estructura: placa, número de motor, marca, modelo; tiene un comportamiento: avanzar,
retroceder, estacionarse. Tiene asociaciones con otros objetos como el Dueño.
Otro ejemplo, la computadora en la cual esté usted trabajando es una instancia de la clase que
describe a todas las computadoras personales, que podría llamarse “Computadora Personal”,
tiene una estructura de información que incluye su marca, velocidad, espacio en disco, memoria,
etc. Tiene comportamientos como encenderse, permanecer en espera, apagarse, bloquearse,
aumentar la memoria, segmentar el disco duro, etc. Tiene asociaciones de agregación con otros
objetos como el ratón o la impresora.
Clase
Principales propiedades de los objetos
Según Booch (1994), sin las siguientes propiedades el modelo no es orientado a objetos.
Abstracción
La abstracción es la propiedad que permite representar las características esenciales de un
objeto, aquellas relevantes sólo en el dominio del problema excluyendo las no esenciales.
Una abstracción se centra en la vista externa de un objeto, enfocándose en su comportamiento
en vez de en su implementación.
Encapsulamiento
“Toda la información de un objeto está almacenada dentro del mismo objeto y sólo puede ser
manipulada cuando al objeto se le ordena que lleve a cabo alguna operación. El comportamiento
y la información están encapsulados en el objeto. La única forma de realizar operaciones en el
objeto es realizar operaciones en él. Los objetos, entonces soportan el concepto de ocultamiento
de la información, esto es, ocultan su estructura interna de su alrededor. Cada una de las
operaciones del objeto tiene como propósito algún comportamiento del mismo. No se necesita
saber cómo está implementada alguna operación o cómo se representa la información, sólo
necesitamos conocer las operaciones que tiene como interfaz para comunicarnos con él.”
[Jacobson, 1992]
Modularidad [Reyes Paredes, 2006]
Es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación
en sí y de las restantes partes (bajo acoplamiento).
El Módulo A depende del Módulo B si cualquier cambio en el Módulo B implica que el Módulo A
también tenga que ser modificado. A veces se dice que el Módulo A es un cliente del Módulo B, o
que el Módulo B actúa como servidor del Módulo A.
Generalización y Herencia
Técnica para permitir a las clases usar los métodos y los datos de una clase padre. Puede tener
muchos niveles. A la clase padre se le conoce también como superclase o clase base, a la clase
hijo se le llama también clase derivada o subclase.
La clase derivada tiene exactamente los mismos atributos y operaciones que la clase base
además de mantener las mismas asociaciones con otras clases que tiene la superclase. Se puede
decir que las subclases son especializaciones de su(s) padre(s).
Facilita el control de cambios y la reutilización.
Polimorfismo
Según Booch (1994), el polimorfismo se define como “Un concepto en la teoría de tipos, acorde
con el cual un nombre (como la declaración de una variable) puede denotar objetos de diferentes
clases que están relacionadas por una superclase común; entonces, cualquier objeto denotado
por este nombre es capaz de responder a un conjunto común de operaciones en diferentes
formas”.
Esto en otras palabras indica que quien solicita un servicio o invoca una operación no necesita
saber la clase a la que pertenece la instancia a quien se lo solicita. Un ejemplo de
implementación de polimorfismo ocurre si tenemos una clase padre llamada Figura a la que le
declaramos una operación llamada calculaArea, Figura tiene dos subclases, Circulo y Rectángulo,
ambas heredan la operación calculaArea, obviamente su implementación es distinta. En alguna
parte del código puede encontrarse la invocación x.calculaArea( ), donde no importa de que tipo
es x, el compilador no lo sabe, no es sino hasta el momento de ejecución que se hará el ligado
dinámico con la implementación correspondiente y se ejecutará el código que corresponda al
tipo.
Persistencia
Es la habilidad de un objeto de existir más allá de la terminación del programa que lo creó.
Permite el almacenamiento de datos en términos de objetos, por ejemplo los archivos son
objetos.
Ventajas de la utilizar una metodología orientada a objetos
Los modelos más cercanos al mundo real, por lo que el diseño es más fácil y más rápido.
Los programas y modelos son más fáciles de entender y mantener, más adaptables a
requerimientos cambiantes.
Facilitan reutilización aumentando la productividad
Cambios en los requerimientos no implican cambios masivos en el sistema en desarrollo ya que
los objetos son unidades autocontenidas.
Las aplicaciones son más sencillas para los usuarios debido a que los datos innecesarios están
ocultos.
Es más fácil crear nuevos tipos de objetos a partir de los ya existentes.
Aumentan la confiabilidad.
Son diseños robustos.
Conclusiones
Un sistema debe desarrollarse de forma que abarque la teoría de objetos.
Estos objetos se conocen como objetos del dominio
En conjunto, los objetos constituyen lo que se conoce como modelo del negocio o del dominio
Si el modelo se crea correctamente, el sistema es fácil de mantener.
“The most single important ability in object- oriented analysis and design is to skillfully assign
responsibilities to software components”
“… a close second in terms of importance is finding suitable objects or abstractions”
* Craig Larman - autor of Applying UML & Patterns
Booch, Grady, 1994. Objected-Oriented Analysis And Design With Applications, 2nd Ed., Menlo
Park, CA: Addison-Wesley.
Jacobson, Ivar. et al. 1992. Object Oriented Software Engineering: a Use Case Driven Approach.
Addison Wesley Publishing Company.
Reyes Paredes, Arbis Percy. Conceptos y principios orientado a objetos. Consultado 18 de mayo
de 2006. Tomado de:
http://www.elguille.info/colabora/NET2005/Percynet_Conceptosyprincipiosorientadoaobjetos.htm