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

Slides:



Advertisements
Presentaciones similares
Programación Orientada a Objetos
Advertisements

Curso de Java Capitulo 7: Continuación Poo Profesor:
Arquitectura CLARO-TECNOTREE
Programación Orientada a Objetos
Introducción a la Orientación a Objetos
Programación Orientada a Objetos (P.O.O.)
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Tipo de Dato Abstracto Tipos de datos:
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
Aplicación del paradigma orientado a objetos
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
PROGRAMACION ORIENTADA
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Análisis y Diseño orientado a objetos con UML.
Tema 6: Clases Antonio J. Sierra.
UNIDAD I Conceptos Básicos.
Ingeniería de Software Orientado a Objetos
Fundamentos de Programación
Departamento de Programación Y Tecnología Eductiva Programacion Orientada a Objetos.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
Programación Orientada a Objetos (P.O.O.)
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Introducción a UML Departamento de Informática Universidad de Rancagua
Introducción a la Programación Orientada a Objetos (POO)
Ingeniería de Requisitos
Programación orientada a objetos
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
La Programación Orientado a Objetos
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Paradigma Orientado a Objetos
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Fundamentos de Ingeniería de Software
MODELOS DE DATOS Modelos ¿Que son los modelos? Tipos de modelos ¿La ropa se realizará en base a modelos?
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
 Modelo de Datos MD  Conjunto de conceptos que permiten describir, a distintos niveles de abstracción, la estructura de una B.D. Que llamaremos ESQUEMA.
GENERICIDAD Es una propiedad que permite definir una clase o función sin especificar el tipo de datos de uno o mas de sus parámetros (Módulos Parametrizados).
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
Modelo entidad/interrlación Tema 2. Parte 2. Modelo E/IR Utiliza un conjunto de símbolos y reglas para representar los datos y las relaciones entre ellos.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
Tema 7: Ingeniería del software Definición de software El software es: 1. instrucciones (programas de computadora) que cuando se ejecutan proporcionan.
Diagrama de clases Silvia Herzovich Rodrigo Aronas Matias Silversteyn.
INTRODUCCIÓN:. La programación consiste en desarrollar programas para procesar información. Una computadora es totalmente inútil si no dispone de un programa.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
SEÑALES Y SISTEMAS CURSO EXCLUSIVO PARA ESTUDIANTES DE CFE Carrera: Ingeniería Eléctrica Clave de la asignatura:ELB-0532 Horas teoría-horas práctica-créditos4-0-8.
Diagramas UML Richard Mora Republica Bolivariana de Venezuela Ministerio del poder popular para la educación I.U.T. Antonio José de Sucre Barquisimeto,
This y static. This Normalmente, dentro del cuerpo de un método de un objeto se puede referir directamente a las variables miembros del objeto. Sin embargo,
Es una representación gráfica del significado que nos muestra cómo está organizado el conocimiento.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Conceptos de sistemas de información 4 Sistema de información formal –Es un medio informativo organizacionalmente eficaz, que es diseñado con la finalidad.
Prof. Manuel B. Sánchez.  El origen del término polimorfismo es simple: proviene de las palabras griegas poly (muchos) y morphos (forma) multiforme.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
UML Lenguaje Unificado de Modelado. Unified Modeling Language UML es un lenguaje de propósito general para el modelado orientado a objetos. Es un lenguaje.
UNA APROXIMACIÓN A INTERNET Y A SUS HERRAMIENTAS DE BÚSQUEDA.
Silvia Herzovich – Gabriel Weinstein – Matías Silversteyn 5to BTO SPI II.
Melissa Victoria Mendiola Peralta.  Los algoritmos son las series de pasos por los cuales se resuelven los problemas.
Modelo del Proceso de Negocio Francisco Valdés Souto 2 al 6 de marzo 2009 © Avantare Consultores S. A. de C. V. – Derechos.
Tema 3: El contenido de la enseñanza Objetivos Explicar los contenidos específicos y no específicos. Identificar un sistema de habilidades para la enseñanza.
Marco Teórico Referencial
BASES DE DATOS ¿QUÉ SON LAS BASES DE DATOS?. ANTECEDENTES  El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado.
Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje.
Transcripción de la presentación:

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

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.

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.

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

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.

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.

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).

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.

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.

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.

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.

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.

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

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.

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).

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.

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.

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.

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.

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.

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

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

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.

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 alumnoempleado administrativo profesor

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.

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.

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.

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.

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.

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.

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.

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).

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.

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.

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.

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.

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.

UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. 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. 1.2 Lenguaje unificado de modelado: diagrama de clases.

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. UML (Lenguaje Unificado de Modelado)

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. ¿Por qué utilizar UML?

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. UML en un proyecto

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. 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 Diagrama de Clases

Ejemplos (Clase y Visibilidad)

… Ejemplos (Asociación)

… Ejemplos (Clase Asociación)

… Ejemplos (Generalización)

… Ejemplos

Clases y Objetos Figura 3.1 Clases y objetos

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)

… 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

… Objetos  Ejemplo de varios objetos relacionados:

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

Clases y Objetos

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 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) … Identidad

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

Comportamiento  Ejemplo de interacción:

… 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

Figura 3.1 Clases y objetos