Beruflich Dokumente
Kultur Dokumente
www.kybele.urjc.es
ndice
Introduccin
Elementos
Clases y Objetos
Mensajes y Mtodos
Atributos y Estado
Herencia y Polimorfismo
Principios del Paradigma Orientado a Objetos
Abstraccin
Encapsulacin
Modularidad
Jerarqua
Bibliografa y referencias
www.kybele.urjc.es
Introduccin
mbitos
Programacin
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: descripcin de los datos (atributos) y de las
operaciones que describen el comportamiento de un
cierto conjunto de elementos homogneos
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Objetos y Clases
Clases:
Abstraccin: conceptos del dominio del problema
Principio de encapsulacin: vistas
Pblica o Interfaz: comportamiento (= qu operaciones responden
los objetos de esta clase)
Privada o Implantacin: estructuras de datos de la clase y cmo
manipulan las operaciones los datos
No existe nada ms que clases y sus objetos, ni constantes,
tipos y datos sueltos, ni procedimientos y funciones
sueltas, etc.
Caractersticas:
Pueden ser: Tangibles (libros) o Intangibles (deudas)
Todo objeto se identifica unvocamente
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, multiplicacin y divisin. Se desea almacenar el conjunto de
operaciones realizadas en un intervalo de tiempo determinado. Los nmeros
podrn ser reales o imaginarios.
Ej2.: Un reproductor MP3 consta de una pantalla de visualizacin y una serie de
botones que permiten: cambiar de cancin, subir el volumen, ver cunta batera le
queda al dispositivo y cambiar los colores de la pantalla.
Ej3.: La universidad desea almacenar la informacin de todos los profesores, las
asignaturas de cada profesor, el campus en el que se imparten, las pginas Web de
cada asignatura. Tambin desea realizar la gestin de las nminas de estos
profesores en funcin del nmero 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 informacin 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
tecnologa 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 bsqueda eficiente de contenidos.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Mensajes y mtodos
Mensaje: Es la invocacin de una operacin 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
operacin 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 mtodos
Mtodo: Tipos
Producen un cambio en el estado del objeto sobre el que se
ejecuta el mtodo procedimientos y asignacin
Aquellos que sin producir ningn cambio en el estado del
objeto calculan cierto valor funciones y operadores
Mtodos especficos para la inicializacin y finalizacin de la
vida de un objeto constructores y destructores
Permiten la colaboracin entre objetos: paso de
parmetros/argumentos en los mtodos (informacin
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 caractersticas que tiene un determinado
objeto
Son definidas en la clase del objeto
Ej.: Coche: tipo de gasolina, capacidad del depsito,
cilindrada, etc.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Propiedades de la herencia:
Intuitivamente fcil 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 mtodos
declarados en su superclase hereda sus atributos y operaciones
Propsitos
Especificacin: Si la superclase es un interfaz o una clase abstracta
Especializacin: La superclase proporciona funciones a las subclases,
pero stas pueden redefinir los mtodos adecundolos a su
comportamiento especfico
Extensin: La subclase aade nueva funcionalidad (mtodos y
campos) pero no modifica ni altera lo heredado Subtipo
Combinacin mltiple: Se hereda de varias clases herencia
mltiple
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Beneficios de la herencia
Reusabilidad del Software: se reutiliza el cdigo heredado
Mayor fiabilidad: al reusarse el cdigo existente, hay ms
posibilidad de encontrar errores y subsanarlos
Consistencia de interfaces: la jerarqua de herencia
asegura que objetos similares tienen vistas pblicas
similares
Prototipado rpido: al reutilizarse cdigo se favorece este
mtodo de desarrollo
Ocultacin de informacin: 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 mltiple:
Una clase hereda de ms de un antecesor
Vehculo Casa
Caravana
Terrestre Acutico
Anfibio Lancha
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Polimorfismo: Es el principio por el cual una misma
operacin es resuelta de diferente forma segn 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 funcin)
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Tipos de polimorfismo
Ad hoc o esttico:
Sobrecarga
Coercin: conversin 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
Instanciacin dinmica: una referencia a un objeto A puede
estar haciendo referencia a distintos objetos derivados de la
clase A el polimorfismo siempre implica enlace dinmico
Beneficios:
Abstraccin: no es necesario conocer toda la jerarqua de
clases derivadas
Extensibilidad: aumentar la funcionalidad del
programa/sistema sin tener que modificar el cdigo ya escrito
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Abstraccin
Def.: Proceso mental de extraccin de las caractersticas
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 inters
del observador)
Punto de vista del cliente (usuario)
Implementacin en OO Clases
Ejemplos:
Autobs visto por un mecnico y un pasajero
Persona en un historial clnico y en la universidad
Radio como emisora o como aparato
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Encapsulacin u ocultamiento
Def.: Proceso por el que se ocultan los detalles del
soporte de las caractersticas esenciales de una
abstraccin (cmo se realizan las funciones)
Esencial: caractersticas del mundo real abstraccin
Superfluo: estructuras de datos y algoritmos
Punto de vista del desarrollador (sistema)
Ventajas:
Delimita el rea de bsqueda de errores
Reduce la complejidad del sistema
Facilita la modificacin del sistema
Implementacin en OO
Un objeto slo tiene accesible su interfaz (servicios o mtodos)
Los atributos son siempre privados Acceso por mtodos de
solicitud y establecimiento de valor
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Modularidad
Def.: Proceso de descomposicin de un sistema en un
conjunto de piezas poco acopladas (independientes) y
cohesivas (con significado propio): mdulos
Conceptos asociados:
Acoplamiento: fuerza de la dependencia entre mdulos ideal: bajo
Cohesin: mide el grado de conectividad entre los elementos de un solo
mdulo ideal: alta
Descomposicin 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 funcin del sistema)
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarqua
Def.: Proceso de estructuracin por el que se
produce una organizacin de un conjunto de
elementos en grados o niveles de responsabilidad,
de incumbencia o de composicin entre otros
Tipos:
1. Por grado de composicin o de agregacin: una abstraccin
o mdulo se compone de un conjunto de elementos
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarqua
Univesidad
Facultades Rectorado
Composicin
Departament Direccin
os
Profesores
Titulares Asociados
Clasificacin
Interinos Funcionarios
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarqua
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 diseo
Descentralizacin
Mecanismos para ayudar a conseguir la extensibilidad:
Herencia
Polimorfismo
Aadir una nueva funcionalidad?
Identificar qu clase la soportar.
Implementar la nueva funcionalidad en esta clase Cmo?
Modificar la definicin 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 abstraccin:
La clase existente no resulta afectada.
No hay cdigo repetido
www.kybele.urjc.es
Conclusin
Qu es la orientacin a objetos?
Organizar el software como una coleccin de objetos que contiene
tanto estructuras de datos como comportamiento.
Concepto Definicin
Abstraccin Crear clases para simplificar aspectos de la realidad
Una descripcin de la organizacin y acciones compartidas por uno o ms 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 extrada 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 bibliografa
www.kybele.urjc.es