Anda di halaman 1dari 28

Tema X:

Introduccin al Paradigma Orientado a Objetos


Diana Marcela Snchez Fquene
Ingeniera del Software de Gestin

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

Definicin: Orientacin a Objetos


Paradigma de computacin Define y organiza el software basndose en entidades denominadas objetos Los objetos combinan datos, comportamiento e identidad

mbitos
Programacin Bases de datos Procesos de desarrollo Arquitectura Comunicaciones Etc.
www.kybele.urjc.es

Elementos
del Paradigma Orientado a Objetos

Elementos del paradigma O. O.


Las bases de la POO son los mecanismos de abstraccin, encapsulacin, modularizacin y jerarquizacin.
Objetos y clases Mensajes y mtodos Estado y atributos Herencia y polimorfismo

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
Resultado del proceso de abstraccin Molde de infinitos objetos con ciertas caractersticas para crear en el dominio de la computadora un reflejo del mundo real Infinitud de objetos no estrictamente necesaria (meses, universo) Ej.: coche, fraccin, pila, radio, persona, autobs

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.

Clase = nuevo bloque de construccin modular cohesin entre datos y operaciones


www.kybele.urjc.es

Elementos
del Paradigma Orientado a Objetos

Objetos y Clases
Objeto:
Def.1: Ejemplar concreto (instancia) de una clase que responde al comportamiento definido por las operaciones de la clase a la que pertenece Def.2: Proyeccin de parte del mundo real (del dominio del problema o del de la solucin), en la computadora

Caractersticas:
Pueden ser: Tangibles (libros) o Intangibles (deudas) Todo objeto se identifica unvocamente Todo objeto tiene unos datos propios (atributos) y un comportamiento determinado

Ej: mi coche, pila n 2, gastos/ingresos, radio del saln, autobs 518


www.kybele.urjc.es

Elementos
del Paradigma Orientado a Objetos

Objeto:
TUNE

ON
FM
L H L H L H

OFF AM

FM

88 90

93

97

100 102

Mhz

AM 530

650

850

900

1200

Khz

VOLUME

TONE BALANCE

Estado:
valor del volumen valor del tono AM/FM apagado/encendido frecuencia seleccionada CD introducido

Comportamiento:
Subir/bajar volumen Cambiar tono Cambiar banda Encender/Apagar Selecc. frecuencia 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)

Mtodo: definicin de una operacin de una clase


Consiste en la descripcin formal del comportamiento asociado a un objeto Puede entenderse como un servicio que ofrece el objeto
www.kybele.urjc.es

Elementos
del Paradigma Orientado a Objetos

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.

Estado: conjunto de los valores de los atributos que tiene un objeto, por pertenecer a una clase, en un instante dado
Ej.: mi coche con gasoil, depsito vaco, 1.200cc, etc.
www.kybele.urjc.es

Elementos
del Paradigma Orientado a Objetos
Herencia

Herencia: es la transmisin de la vista pblica (mtodos pblicos) y de la vista privada (atributos, mtodos privados y definicin de los mtodos) de una clase a otra. Forma de estructurar tipos/clases segn su comportamiento mediante la creacin de una jerarqua de clasificacin
Clase padre/madre/base Superclase Generalizacin
A hereda de B A es un refinamiento de B A est ms especializada que B A es una subclase de B B es superclase de A A es un B

Clase hija/extendida/derivada Subclase

Especializacin

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)


Figura Figura: color rota, mueve, dibuja F_cerrada: permetro, rea Polgono: nmero_lados Cuadriltero: permetro, rea Cuadrado: permetro, rea Crculo: radio permetro - Todas las figuras se pueden: rotar escalar - Todas tienen un color

F_abierta

F_cerrada

Polgono

Elipse

Tringulo

Cuadriltero

Crculo

- Clases abstractas: Figura F_Cerrada F_Abierta Polgono

Cuadrado

www.kybele.urjc.es

Elementos
del Paradigma Orientado a Objetos

Herencia mltiple:
Una clase hereda de ms de un antecesor
Vehculo Caravana Casa

Problema: herencia repetida


Vehculo Terrestre Anfibio Acutico 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: Universal
Sobrecarga Coercin: conversin de objetos de una clase a otra (cast)

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

Principios bsicos (procesos a tener en cuenta)


Abstraccin Encapsulacin u Ocultamiento Modularidad Jerarqua

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 2. Por grados de clasificacin, clasificacin de las distintas abstracciones de la ms general a las ms especficas
www.kybele.urjc.es

Principios / Bases
del Paradigma Orientado a Objetos

Jerarqua
Univesidad Facultades Departament os Direccin Rectorado

Composicin

Profesores Titulares Interinos Asociados

Clasificacin

Funcionarios

www.kybele.urjc.es

Principios / Bases
del Paradigma Orientado a Objetos

Jerarqua

Facilidad con la que los productos software pueden ser adaptados a cambios incrementales de especificaciones. Principios para facilitar la extensibilidad: Mecanismos para ayudar a conseguir la extensibilidad:
Simplicidad de diseo Descentralizacin
Herencia Polimorfismo

Favorece la extensibilidad:

Aadir una nueva funcionalidad?


Modificar la definicin original? Hacer copia y modificar la copia? Modificar la original por crecimiento?

Identificar qu clase la soportar. Implementar la nueva funcionalidad en esta clase Cmo?

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 Abstraccin Clase Definicin Crear clases para simplificar aspectos de la realidad Una descripcin de la organizacin y acciones compartidas por uno o ms objetos similares Disear clases y objetos para restringir el acceso a los datos y comportamiento mediante la definicin de un conjunto de mensajes que un objeto puede recibir Los datos y comportamiento de una clase es incluido o usado como base de otra Elemento individual, identificable, real o abstracto, que contiene datos sobre s mismo y descripciones de cmo manipular dichos datos Un objeto enva datos a otro o le solicita la invocacin de un mtodo Forma de acceder, establecer o manipular la informacin de un objeto 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

Estructura Comport.

Encapsulacin Herencia Objeto Paso de mensajes Mtodo Polimorfismo

www.kybele.urjc.es

Referencias y bibliografa

Design Patterns: Elements of reusable Object-Oriented Software. E. Gamma et al. Ed. Addison-weasley, 1994

Programacin II: Teora y prctica del mdulo de programacin orientada a objetos. L. Fernndez. Servicio de publicaciones UPM

www.kybele.urjc.es

Anda mungkin juga menyukai