La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Orientada a Objetos

Presentaciones similares


Presentación del tema: "Programación Orientada a Objetos"— Transcripción de la presentación:

1 Programación Orientada a Objetos
Unidad I. “Introducción al paradigma de la programación orientada a objetos.

2 1.1 Elementos del modelo de objetos:
La POO es una forma de programación que utiliza objetos que responden a sucesos. Estos sucesos producen un flujo de mensajes entre los objetos, lo que origina cambios en el estado del objeto que recibe el mensaje. Como ejemplo, piense en el problema de que un objeto caja de texto visualice un comunicado cuando se haga click en otro objeto. La estructura del programa básicamente estará formada por dos objetos y un mapa de mensajes; uno de los mensajes relacionará el clic sobre el botón con el método que tiene que ejecutarse para poner el comunicado en la caja de texto.

3 1.1 Elementos del modelo de objetos:
Así, la POO es un enfoque sumamente natural, puesto que la estructura de los programas refleja directamente la estructura del problema. Además, la POO puede considerarse como una extensión natural de la programación estructurada en un intento de potenciar los conceptos de modularidad y reutilización del código.

4 1.1 Elementos del modelo de objetos:
Para entender esto, piensen en un objeto libro con los atributos título y autor, y los métodos necesarios para manipularlos. En un instante determinado durante el desarrollo de una aplicación, si la estructura de este objeto se ajusta exactamente a las necesidades de la misma, se utilizará; si no, por ejemplo, porque necesitamos un nuevo atributo editorial, habría que crearlo de nuevo asumiendo el costo inherente a su total construcción

5 1.1 Elementos del modelo de objetos:
Otra forma es que podamos reutilizar el código, lo que significa asumir un costo menor, el inherente a la ampliación del objeto. Esto fue uno de los motivos del éxito de la POO existen actualmente gran cantidad de bibliotecas de objetos que se han creado para el desarrollo de interfaces gráficas de usuario.

6 Mecanismos básicos de la POO
Los mecanismos básicos de la programación orientada a objetos son: objetos, mensajes, métodos, clases y subclases. Objetos Un programa tradicional se compone de procedimientos y de datos. Un programa orientado a objetos se compone solamente de objetos. Un objeto es una encapsulación genérica de datos y de los procedimientos para manipularlos. Dicho de otra forma, un objeto es una entidad que tiene unos atributos particulares, los datos, y unas formas de operar sobre ellos, los métodos.

7 Mecanismos básicos de la POO
Por lo tanto, un objeto contiene por una parte, operaciones que definen su comportamiento y por otra, variables, manipuladas por esas operaciones, que definen su estado. Por ejemplo, una ventana Windows contiene operaciones como maximizar y minimizar (los métodos) y variables como ancho y alto (los atributos).

8 Mecanismos básicos de la POO
Mensajes Cuando se ejecuta un programa orientado a objetos, los objetos están recibiendo, interpretando y respondiendo a mensajes de otros objetos. Esto marca una clara diferencia con respecto a los elementos de datos pasivos de los sistemas tradicionales; esto es, en la POO el flujo de control funcional es reemplazado por el paso de mensajes entre objetos, lo que origina cambios en el estado del objeto.

9 Mecanismos básicos de la POO
Por ejemplo, cuando un usuario envía un mensaje a un objeto denominado printer para que escriba un documento, printer puede enviar un mensaje a otro objeto denominado cola_impre para que se le asigne un lugar en la cola de trabajos de impresión. A su vez, cola_impre puede enviar un mensaje a printer para requerirle información que posibilite dar formato al documento, y así sucesivamente. Un mensaje puede incluir información para clarificar una petición. Por ejemplo, el mensaje enviado a printer puede incluir el nombre de la impresora.

10 Mecanismos básicos de la POO
Finalmente, cuando un objeto recibe un mensaje, debe conocer perfectamente lo que tiene que hacer, y cuando un objeto envía un mensaje, no necesita conocer cómo se desarrolla, sino simplemente que se está desarrollando. El conjunto de mensajes a los que un objeto puede responder se denomina protocolo.

11 Mecanismos básicos de la POO
Métodos Un método se implementa en una clase, y determina cómo tiene que actuar el objeto cuando recibe un mensaje. En adición, las variables asociadas o atributos permitirán almacenar información para dicho objeto. Un método puede también enviar mensajes a otros objetos solicitando una acción o información. La descripción o signatura de un método se denomina operación.

12 Mecanismos básicos de la POO
La estructura más interna de un objeto está oculta para otros usuarios y la única conexión que tiene con el exterior son los mensajes. Los atributos (datos) que oculta un objeto, solamente pueden ser manipulados por los métodos asociados al propio objeto.

13 Mecanismos básicos de la POO
Según lo expuesto, la ejecución de un programa orientado a objetos realizará fundamentalmente tres cosas: Creará lo objetos necesarios. Los mensajes enviados a unos y otros objetos darán lugar a que se procese internamente la información. Finalmente, cuando los objetos no son necesarios, serán borrados, liberándose la memoria ocupada por los mismos.

14 Mecanismos básicos de la POO
Clases Una clase se puede considerar como una plantilla para crear objetos de esa clase o tipo. Una clase describe los métodos y atributos que definen las características comunes a todos los objetos de esa clase. Precisamente la clave de la programación orientada a objetos está en abstraer los métodos y atributos comunes a un conjunto de objetos y encapsularlos en una clase.

15 Mecanismos básicos de la POO
Una clase es un tipo de objeto definido por el usuario. En otras palabras, una clase equivale a la generalización de un tipo específico de objeto. Un objeto es la concreción de una clase (algunos autores utilizan el término instancia, traducción directa de instance).

16 Mecanismos básicos de la POO
Aunque en las definiciones anteriores hemos utilizado el término objeto como sinónimo de instancia, en general, cuando hablamos de objeto nos referimos, dependiendo del contexto, a clases o a instancias. Esto es así, porque un objeto es, por una parte, un principio de organización, y por otra, una región de almacenamiento que contiene una copia del elemento especificado por una clase. Desde este segundo punto de vista, los términos objeto e instancia son sinónimos; no sucediendo lo mismo desde el primer punto de vista, por lo que no conviene popularizar el término instancia.

17 Mecanismos básicos de la POO
Como ejemplo, consideremos el diseño de un procesador de textos utilizando la programación orientada a objetos. Primeramente, identificamos entidades de interés, como son párrafos, cabeceras, pies, etc., las cuales pueden ser objetos potenciales. Analicemos estas entidades; por ejemplo, un párrafo normalmente está justificado, lo que quiere decir que podemos pensar en un método, que podemos llamar justificación, común a todos los párrafos se escriben con el mismo tipo de letra, entonces fuente es un atributo común para todos los párrafos.

18 Mecanismos básicos de la POO
Un párrafo está formado por su propio texto, entonces texto es un atributo que tendrá un valor específico para cada párrafo. Podemos agrupar a descripción común a los párrafos, formando así la clase párrafo, la cual nos permitirá construir objetos de esta clase; esto es, párrafos. La figura siguiente resume estas ideas.

19

20 Mecanismos básicos de la POO
Un atributo asociado con una clase representa un valor que es compartido por todos los objetos de esa clase; esto es, sólo existe una copia de ese atributo. En cambio, un atributo asociado a un objeto de una clase representa un valor particular a ese objeto; esto es, cada objeto tiene su propia copia.

21 Mecanismos básicos de la POO
Subclases Una característica primaria que define a un sistema orientado a objetos es la manera en que trata las relaciones estructurales y semántcas entre clases de objetos y elimina la redundancia de almacenar el mismo atributo o método más veces de lo necesario. La idea clave es la de una clasificación jerárquica en al que la clase hija o subclase hereda los atributos y métodos de su clase padre.

22 Mecanismos básicos de la POO
Por ejemplo, supongamos una clase persona. clase persona atributos Nombre Dirección métodos CambiarNombre CambiarDirección ListarDatos

23 Mecanismos básicos de la POO
Podemos considerar las clases alumno y empleado en un nivel inferior. De este modo alumno y empleado heredarán los atributos y los métodos de su clase padre persona a los que podemos añadir los atributos y métodos propios de la clase hija. Esto es, clase alumno subclase de persona atributos Estudios Curso métodos CambiarEstudios CambiarCurso ListarDatos

24 Mecanismos básicos de la POO
La declaración anterior supone que la clase alumno herede los atributos y métodos de la clase persona. Entonces un objeto de la clase alumno tendría los atributos Nombre, Dirección, Estudios y Curso y los métodos CambiarNombre, CambiarDirección, CambiarEstudios, CambiarCurso y ListarDatos. Asimismo sucede que hemos redefinido el método ListarDatos en la clase alumno para adaptarlo a las nuevas necesidades.

25 Mecanismos básicos de la POO
Análogamente podemos considerar las clases administrativo y profesor como subclases de la clase empleado. La jerarquía de clases resultante se muestra en la figura siguiente: persona alumno empleado administrativo profesor

26 Mecanismos básicos de la POO
Según lo expuesto, en una estructura jerárquica como la del ejemplo anterior, podemos establecer una relación entre una clase y una subclase con los términos padre e hijo, respectivamente. La clase padre se denomina también clase base y la clase hija clase derivada.

27 Características de la POO
Las características fundamentales de la POO son: abstracción, encapsulamiento, herencia y polimorfismo. Abstracción El término abstracción significa “acción de separar mentalmente”. Otra definición podría ser: “representación de las características esenciales de algo sin incluir antecedentes o detalles irrelevantes”. Esto es, por medio de la abstracción conseguimos no detenernos en los detalles concretos de las cosas que no interesen en cada momento, sino generalizar y centrarse en los aspectos que permitan tener una visión global del tema.

28 Características de la POO
Por ejemplo, el estudio de una computadora podemos realizarlo a nivel de funcionamiento de circuitos electrónicos, en términos de corriente, tensión, etc., o a nivel de transferencia entre registros, centrándose así el estudio en el flujo de información entre las unidades que lo componen (memoria, unidad aritmética, unidad de control, registros, etc.), sin importarnos el comportamiento de los circuitos electrónicos que componen estas unidades.

29 Características de la POO
Según lo expuesto, la abstracción consiste en la generalización conceptual de los atributos y propiedades de un determinado conjunto de objetos. Precisamente la clave de la programación orientada a objetos está en abstraer los métodos y los datos comunes a un conjunto de objetos y almacenarlos en una clase. Desde este nivel de abstracción, la introducción o eliminación de un objeto en una determinada aplicación supondrá un trabajo mínimo o nulo.

30 Características de la POO
Una abstracción que describa un conjunto de objetos en términos de una estructura de datos encapsulada u oculta y las operaciones sobre esa estructura, la denominaremos tipo abstracto de datos.

31 Características de la POO
Encapsulamiento El encapsulamiento u ocultamiento de información se refiere a la práctica de incluir dentro de un objeto todo lo que necesita, de tal forma que ningún otro objeto necesite conocer nunca su estructura interna. Esta característica permite ver un objeto como una caja negra, en la que se ha metido de alguna manera toda la información relacionada con dicho objeto. Esto nos permitirá manipular los objetos como unidades básicas, permaneciendo oculta su estructura interna.

32 Características de la POO
Por ejemplo, si definimos una clase complejo, las operaciones con números complejos no presentarán ninguna dificultad. Esto es, si X e Y son números complejos, las operación Z=X/Y nos dará otro complejo. Si en lugar de operar a este nivel de abstracción y encapsulamiento descendemos a la estructura interna del número complejo, entonces la operación no es tan simple. Las operaciones en este nivel más inferior son las que tienen que realizar los métodos de la clase complejo con los datos que encierra.

33 Características de la POO
En el ejemplo anterior, el operador “/” representa la operación de dividir dos variables de tipo complejo. Dicho operador es el mensaje que el objeto Y envía al objeto X, siendo la respuesta a tal mensaje un método implementado en la clase complejo. Anteriormente se ha expuesto que mensaje equivale a prototipo de función. Para que esto siga siendo válido, considere que un operador es una función, esto es, X/Y es equivalente a llamar a una función operator/(X,Y).

34 Características de la POO
En realidad, si operator / es una función miembro de la clase complejo, X/Y equivale a la llamada X.operator(/), lo que pone de manifiesto que el objeto situado a la derecha del operador envía el mensaje al objeto situado a la izquierda. Esto mismo sucede con los tipos predefinidos en el compilador C; esto es, los tipos de datos short, int, float, etc. son realmente clases.

35 Características de la POO
Herencia La herencia es el mecanismo para compartir automáticamente métodos y atributos entre clases y subclases. Por ejemplo, como vimos anteriormente, si declaramos la clase profesor como una subclase de empleado, todos los métodos y variables asociadas con la clase empleado son automáticamente heredados por la subclase profesor. Si la clase empleado contiene métodos inapropiados para la subclase profesor, éstos pueden obviarse, escribiendo nuevos métodos y almacenándolos como parte de la clase profesor, o también pueden redefinirse para que respondan de forma distinta a como lo hacen en la clase base.

36 Características de la POO
Esta característica de la POO está fuertemente ligada a la reutilización del código. Esto es, el código de cualquiera de las clases existentes puede ser utilizado sin más que crear una clase derivada de ella.

37 Características de la POO
El concepto de herencia conduce a una estructura jerarquizada de clases, lo cual no significa que en POO todas las relaciones entre clases deban ajustarse a una estructura jerárquica. La herencia puede ser también múltiple; esto es, una clase puede derivarse de dos o más clases base.

38 Características de la POO
Polimorfismo Esta característica permite implementar múltiples formas de un mismo método, dependiendo cada una de ellas de la clase sobre la que se realice la implementación. Esto hace que se pueda acceder a una variedad de métodos distintos (todos con el mismo nombre) utilizando exactamente el mismo medio de acceso.

39 1.2 Lenguaje unificado de modelado: diagrama de clases.
UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos.

40 1.2 Lenguaje unificado de modelado: diagrama de clases.
Se ha convertido en el estándar de facto de la industria, debido a que ha sido impulsado por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación unificada en la que basar la construcción de sus herramientas CASE.

41 UML (Lenguaje Unificado de Modelado)
En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.

42 ¿Por qué utilizar UML? Porque recoge lo mejor de diferentes sistemas de modelamiento. Porque es adaptable a casi cualquier sistema. Porque puede ser utilizado en la mayoría de fases de un proyecto.

43 UML en un proyecto UML dispone de herramientas que pueden ser utilizadas en la mayoría de fases de un proyecto de ingeniería de software. Esto permite tener información consistente en cada fase. CADA MODELO HACE REFERENCIA A OTROS MODELOS.

44 Diagrama de Clases Una clase se representa mediante una caja subdividida en tres partes: En la superior se muestra el nombre de la clase, en la media los atributos y en la inferior las operaciones ó métodos.

45 Diagrama de Clases

46 Diagrama de Clases El Diagrama de Clases es el diagrama principal para el análisis y diseño Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia La definición de clase incluye definiciones para atributos y operaciones

47 Ejemplos (Clase y Visibilidad)

48 … Ejemplos (Asociación)

49 … Ejemplos (Clase Asociación)

50 … Ejemplos (Generalización)

51 … Ejemplos

52 Figura 3.1 Clases y objetos

53 Objetos Objeto = unidad atómica que encapsula estado y comportamiento
La encapsulación en un objeto permite una alta cohesión y un bajo acoplamiento Un objeto puede caracterizar una entidad física (coche) o abstracta (ecuación matemática)

54 … Objetos El Modelado de Objetos permite representar el ciclo de vida de los objetos a través de sus interacciones En UML, un objeto se representa por un rectángulo con un nombre subrayado Sintaxis para denominar objetos: : C una instancia anónima de la clase C / R una instancia anónima desempeñando el rol R / R : C una instancia anónima de la clase C desempeñando el rol R O / R una instancia llamada O desempeñando el rol R O : C una instancia llamada O de la clase C O / R : C una instancia llamada O, de la clase C y desempeñando el rol R O una instancia llamada O

55 … Objetos Ejemplo de varios objetos relacionados:

56 … Objetos Objeto = Identidad + Estado + Comportamiento
El estado está representado por los valores de los atributos Un atributo toma un valor en un dominio concreto

57 Clases y Objetos

58 Identidad Cada objeto posee un oid (Object Identifier), el cual establece la identidad del objeto y tiene las siguientes características: Constituye un identificador único y global para cada objeto dentro del sistema Es determinado en el momento de la creación del objeto Es independiente de la localización física del objeto, es decir, provee completa independencia de localización

59 … Identidad Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de existir No se tiene ningún control sobre los oids y su manipulación resulta transparente Sin embargo, es preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos)

60 Estado El estado evoluciona con el tiempo
Algunos atributos pueden ser constantes El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto

61 Comportamiento Ejemplo de interacción:

62 … Comportamiento Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento están relacionados Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo

63 Figura 3.1 Clases y objetos


Descargar ppt "Programación Orientada a Objetos"

Presentaciones similares


Anuncios Google