Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.1 Elementos Del Modelo de Objetos Clases PDF
1.1 Elementos Del Modelo de Objetos Clases PDF
www.kybele.urjc.es
Índice
Introducción
Elementos
Clases y Objetos
Mensajes y Métodos
Atributos y Estado
Herencia y Polimorfismo
Principios del Paradigma Orientado a Objetos
Abstracción
Encapsulación
Modularidad
Jerarquía
Bibliografía y referencias
www.kybele.urjc.es
Introducción
Ámbitos
Programación
Bases de datos
Procesos de desarrollo
Arquitectura
Comunicaciones
Etc.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Objetos y Clases
Clase: descripción de los datos (atributos) y de las
operaciones que describen el comportamiento de un
cierto conjunto de elementos homogéneos
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Objetos y Clases
Clases:
Abstracción: conceptos del dominio del problema
Principio de encapsulación: vistas
• Pública o Interfaz: comportamiento (= qué operaciones responden
los objetos de esta clase)
• Privada o Implantación: estructuras de datos de la clase y cómo
manipulan las operaciones los datos
No existe nada más que clases y sus objetos, ni constantes,
tipos y datos “sueltos”, ni procedimientos y funciones
“sueltas”, etc.
Características:
• Pueden ser: Tangibles (libros) o Intangibles (deudas)
• Todo objeto se identifica unívocamente
• Todo objeto tiene unos datos propios (atributos) y un comportamiento
determinado
Objeto:
TUNE
FM 88 90 93 97 100 102 Mhz
ON OFF
L H L H L H
Estado: Comportamiento:
valor del volumen Subir/bajar volumen
valor del tono Cambiar tono
AM/FM Cambiar banda
apagado/encendido Encender/Apagar
frecuencia seleccionada Selecc. frecuencia
CD introducido Introducir CD
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Ejercicios: Definir e identificar clases y objetos
Ej1.: Se desea crear un sistema software que permita realizar las operaciones de
suma, resta, multiplicación y división. Se desea almacenar el conjunto de
operaciones realizadas en un intervalo de tiempo determinado. Los números
podrán ser reales o imaginarios.
Ej2.: Un reproductor MP3 consta de una pantalla de visualización y una serie de
botones que permiten: cambiar de canción, subir el volumen, ver cuánta batería le
queda al dispositivo y cambiar los colores de la pantalla.
Ej3.: La universidad desea almacenar la información de todos los profesores, las
asignaturas de cada profesor, el campus en el que se imparten, las páginas Web de
cada asignatura. También desea realizar la gestión de las nóminas de estos
profesores en función del número de asignaturas y horas impartidas por cada
profesor.
Ej4.: En un zoo se quiere implementar un sistema de venta de entradas interactivo.
En él se podrá consultar la información de los animales que tiene el parque, los
horarios y precios del zoo. Este sistema deberá ser accesible para los discapacitados
visuales.
Ej5.: Se desea crear un sistema de intercambio de datos legales basado en la
tecnología P2P. Para ello habrá que tener en cuenta el tipo de ficheros que se va a
descargar, los protocolos de comunicaciones entre diferentes sistemas de la red
P2P, los servidores a los que se conectan los clientes, el progreso de la descarga y un
sistema de búsqueda eficiente de contenidos.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Mensajes y métodos
Mensaje: Es la invocación de una operación sobre un
objeto
Un objeto es el agente activo que lanza el mensaje y otro
objeto es el agente pasivo que recibe el mensaje
El objeto que recibe el mensaje debe contemplar dicha
operación entre las definidas por la clase a la que pertenece
Puede verse como la solicitud de un servicio a un objeto
Un objeto siempre devuelve un objeto como respuesta al
mensaje (a veces él mismo)
Mensajes y métodos
Método: Tipos
Producen un cambio en el estado del objeto sobre el que se
ejecuta el método procedimientos y asignación
Aquellos que sin producir ningún cambio en el estado del
objeto calculan cierto valor funciones y operadores
Métodos específicos para la inicialización y finalización de la
vida de un objeto constructores y destructores
Permiten la colaboración entre objetos: paso de
parámetros/argumentos en los métodos (información
del ‘exterior’)
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Estado y atributos
Atributo: cada uno de los datos de una clase
Representan las características que tiene un determinado
objeto
Son definidas en la clase del objeto
Ej.: Coche: tipo de gasolina, capacidad del depósito,
cilindrada, etc.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Propiedades de la herencia:
Intuitivamente fácil de comprender
Una subclase “extiende” las propiedades de su superclase
Una subclase es una forma restringida de la superclase
Un objeto de una subclase puede acceder a campos y métodos
declarados en su superclase hereda sus atributos y operaciones
Propósitos
Especificación: Si la superclase es un interfaz o una clase abstracta
Especialización: La superclase proporciona funciones a las subclases,
pero éstas pueden redefinir los métodos adecuándolos a su
comportamiento específico
Extensión: La subclase añade nueva funcionalidad (métodos y
campos) pero no modifica ni altera lo heredado Subtipo
Combinación múltiple: Se hereda de varias clases herencia
múltiple
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Beneficios de la herencia
Reusabilidad del Software: se reutiliza el código heredado
Mayor fiabilidad: al reusarse el código existente, hay más
posibilidad de encontrar errores y subsanarlos
Consistencia de interfaces: la jerarquía de herencia
asegura que objetos similares tienen vistas públicas
similares
Prototipado rápido: al reutilizarse código se favorece este
método de desarrollo
Ocultación de información: la disponibilidad de interfaces
claras reduce las interconexiones entre sistemas (clases
padre como interfaz)
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Ejemplo: (herencia simple)
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Herencia múltiple:
Una clase hereda de más de un antecesor
Vehículo Casa
Caravana
Terrestre Acuático
Anfibio Lancha
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Polimorfismo: Es el principio por el cual una misma
operación es resuelta de diferente forma según el objeto
que recibe el mensaje
Posibilidad que tienen distintos objetos de actuar de una
manera diferente (desencadenar operaciones distintas) en
respuesta a un mismo mensaje (una misma llamada a función)
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Tipos de polimorfismo
“Ad hoc” o estático:
Sobrecarga
Coerción: conversión de objetos de una clase a otra (cast)
Universal
Bases:
Herencia: no se puede aplicar polimorfismo si no es con clases
que hereden de otras
Instanciación dinámica: una referencia a un objeto A puede
estar haciendo referencia a distintos objetos derivados de la
clase A el polimorfismo siempre implica enlace dinámico
Beneficios:
Abstracción: no es necesario conocer toda la jerarquía de
clases derivadas
Extensibilidad: aumentar la funcionalidad del
programa/sistema sin tener que modificar el código ya escrito
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Abstracción
Def.: “Proceso mental de extracción de las características
esenciales (requisitos o funciones) de algo, ignorando los
detalles superfluos”
Motivo: No es posible manejar todos los aspectos de un
sistema al mismo tiempo un individuo puede
comprender 7 ± 2 detalles a la vez
Fundamentalmente subjetiva (dependiendo del interés
del observador)
Punto de vista del “cliente” (usuario)
Implementación en OO Clases
Ejemplos:
Autobús visto por un mecánico y un pasajero
Persona en un historial clínico y en la universidad
Radio como emisora o como aparato
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Encapsulación u ocultamiento
Def.: “Proceso por el que se ocultan los detalles del
soporte de las características esenciales de una
abstracción (cómo se realizan las funciones)”
Esencial: características del ‘mundo real’ abstracción
Superfluo: estructuras de datos y algoritmos
Punto de vista del “desarrollador” (sistema)
Ventajas:
Delimita el área de búsqueda de errores
Reduce la complejidad del sistema
Facilita la modificación del sistema
Implementación en OO
Un objeto sólo tiene accesible su interfaz (servicios o métodos)
Los atributos son siempre privados Acceso por métodos de
solicitud y establecimiento de valor
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Modularidad
Def.: “Proceso de descomposición de un sistema en un
conjunto de piezas poco acopladas (independientes) y
cohesivas (con significado propio): módulos”
Conceptos asociados:
Acoplamiento: “fuerza” de la dependencia entre módulos ideal: bajo
Cohesión: mide el grado de conectividad entre los elementos de un solo
módulo ideal: alta
Descomposición en OO
Descomponer para obtener las abstracciones claves del dominio del
problema
El mundo es un conjunto de objetos agrupados que colaboran
Cada objeto exhibe un comportamiento definido (no identificable,
necesariamente, con una función del sistema)
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarquía
Def.: “Proceso de estructuración por el que se
produce una organización de un conjunto de
elementos en grados o niveles de responsabilidad,
de incumbencia o de composición entre otros”
Tipos:
1. Por grado de composición o de agregación: una abstracción
o módulo se compone de un conjunto de elementos
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarquía
Univesidad
Facultades Rectorado
Composición
Departament Dirección
os
Profesores
Titulares Asociados
Clasificación
Interinos Funcionarios
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarquía
Favorece la extensibilidad:
Facilidad con la que los productos software pueden ser adaptados a
cambios incrementales de especificaciones.
Principios para facilitar la extensibilidad:
• Simplicidad de diseño
• Descentralización
Mecanismos para ayudar a conseguir la extensibilidad:
• Herencia
• Polimorfismo
¿Añadir una nueva funcionalidad?
Identificar qué clase la soportará.
Implementar la nueva funcionalidad en esta clase ¿Cómo?
• Modificar la definición original?
• Hacer copia y modificar la copia?
• Modificar la original por crecimiento?
Óptimo por crecimiento: se crea una subclase que define las
diferencias entre la clase existente y la nueva abstracción:
• La clase existente no resulta afectada.
• No hay código repetido
www.kybele.urjc.es
Conclusión
¿Qué es la orientación a objetos?
Organizar el software como una colección de objetos que contiene
tanto estructuras de datos como comportamiento.
Concepto Definición
Abstracción Crear clases para simplificar aspectos de la realidad
Una descripción de la organización y acciones compartidas por uno o más objetos
Clase
similares
Estructura
Herencia Los datos y comportamiento de una clase es incluido o usado como base de otra
Polimorfismo Diferentes clases pueden responder de forma diferente ante un mismo mensaje
Tabla extraída de The Quarks of Object-Oriented Development. Deborah J. Armstrong. Communications of the ACM. Vol.49/No.2 Febrero 2006
www.kybele.urjc.es
Referencias y bibliografía
www.kybele.urjc.es