ESTRUCTURA DE DATOS CON ORIENTACIÓN A OBJETOS -Java

Click here to load reader

  • date post

    13-Jul-2015
  • Category

    Documents

  • view

    350
  • download

    0

Embed Size (px)

Transcript of ESTRUCTURA DE DATOS CON ORIENTACIÓN A OBJETOS -Java

ESTRUCTURA DE DATOS CON ORIENTACIN A OBJETOS

Introduccin al diseo y Programacin Orientada a Objetos.1.1 Diseo Orientado a Objetos.Metodologa enfocada a la solucin de problemas complejos. Complejidad del software. Problemas difciles de precisar. Definicin de requerimientos vago y cambio a la par que se desarrolla el sistema. Proceso de desarrollo difcil. Verificacin del software poco viable. Para manejar la complejidad se utiliza alguna forma de organizacin jerrquica. Dependencias. Jerrquica estructural(parte de) Jerrquica especializacin (tipo de) Ejemplos.

Dependencia estructural: Existen dependencias muy fuertes.

Jerarqua de especializacin: Heredan las caractersticas.

1.2 Descomposicin algortmica.Algortmico: Mtodo utilizado en el diseo estructurado ?Top-down?. Se basa en la identificacin de las operaciones en la descripcin del problema y su expresin en trminos de operaciones ms sencillas. Ejemplo:

1.3 Orientado a objetos.Mtodo que permite resolver un problema alrededor de abstracciones representadas por objetos. Los objetos se comportan como agentes, contienen un estado y un comportamiento.

1.4 Modelo orientado a objetos.Abstraccin: Caracterizacin de un objeto de acuerdo a las propiedades que nos interesen en un instante de tiempo. Encapsulacin: Manera de ocultar los detalles de la representacin interna de un objeto presentando solo la interfase para el usuario. Modularidad: Un mdulo es una agrupacin de abstracciones lgicamente relacionadas.

1.5 Introduccin a la Programacin Orientada a Objetos (OOP).El objetivo de la POO consiste en organizar los programas de modo que reflejen la forma de organizacin de los objetos en el mundo real. Un objeto es un elemento independiente de un programa de computadora, que representa un grupo asociado de caractersticas y est diseado para realizar tareas especficas. A los objetos tambin se les conoce como instancias. Cada objeto tiene un papel especfico en un programa, y todos los objetos pueden funcionar con otros objetos en maneras definidas. Una clase es una plantilla que se utiliza para crear mltiples objetos con caractersticas similares. Las clases engloban todas las caractersticas de un conjunto particular de objetos. Cuando se escribe un programa en un lenguaje orientado a objetos, no se definen objetos individuales, sino que se definen clases de objetos. Los conceptos de herencia, interfaces y paquetes, conforman los mecanismos para organizar clases y su comportamiento. La biblioteca de clases de Java se apoya en estos conceptos. La herencia: Es un mecanismo que hace posible que una clase herede todo el comportamiento y los atributos de otra clase. A travs de la herencia, una clase tiene inmediatamente toda la funcionalidad de una clase existente. Debido a esto, las nuevas clases se pueden crear indicando nicamente en que se diferencian de la clase existente. Con la herencia, todas la clases se acomodan en una jerarqua estricta, las que uno mismo cre y aquellas que provienen dela biblioteca de clases de Java y otras bibliotecas. A una clase que hereda de otra clase se le llama subclase, y a la clase que proporciona la herencia se le llama superclase. Una clase puede tener nicamente una superclase, pero cada clase tiene una cantidad ilimitada de subclases. Las subclases reciben por herencia todos los atributos y comportamiento de sus superclases. Modularidad: Un modulo es una agrupacin de abstracciones lgicamente relacionadas. La interfaz de unmdulo es la descripcin de los servicio que ofrece a otros mdulos. Jerarqua: Permite organizar y ordenar las abstracciones. Hay dos tipos: por estructura y por especializacin.

Tipo: Caracterizacin precisa de propiedades sobre la estructura y el comportamiento de una coleccin de unidades. Esta asociado ntimamente con la clases. Va a indicarnos cual es el ambiente que va a englobar al modulo. Persistencia: Propiedad de un objeto de poder quedar vigente en el tiempo y el espacio (independiente de 00). Indicara que tiempo el objeto permanecer vigente. Concurrencia: Que simultneamente se pueden llevar mltiples procesos.

1.6 Clases y objetos.Objeto = Instancia. Un objeto tiene un estado, un comportamiento y una identidad. Estado: El estado de un objeto se compone de las propiedades estticas de un objeto con valores dinmicos asociados a ellas en un momento dado. Estado ? variables de instancia. Comportamiento: Forma en que acta y reacciona el objeto, expresado en trminos de cambios de estado y envo de mensajes a otros objetos. Comportamiento ? Mtodo (es lo que nos indica qu puede hacer la clase) Identidad: Propiedad que distingue a un objeto de los dems.

1.7 Relaciones entre objetos.Relacin de uso.Expresan la manera en que unos objetos usan a otros. Formas de uso: Actor.-Objeto que puede operar sobre otros. (nunca es operado por los dems). Servidor.-Objeto que puede ser operado por otros. (nunca opera sobre los dems). Agente.- Objeto que puede operar sobre los dems y tambin puede ser operado por otros. Relacin de Contencin. Se crea la relacin si un objeto esta compuesto por otros objetos.

1.8 Clases.Conjunto de objetos que tienen una estructura comn y un comportamiento comn. Por tanto es una abstraccin del concepto objeto.

*Un

objeto es una instancia de una clase.

Interfaz de una clase. Proporciona la vista externa o interfaz con el usuario. Se divide en: Pblica:visible para todas las clases. Protegida: visible slo para subclases. Privada:NO visible para ninguna otra clase. Para garantizar el encapsulamiento y la privacidad se usaran variables privadas.

Relacin de Herencia. Una clase comparte la estructura y/o comportamiento definidosen una o ms clases. Herencia Sencilla.

NOTA. El ?elefante? es una subclase, y ?animal? es una superclase. Herencia Multiple. Superclase:Clase de la cual otra clase hereda. Subclase: Clase que hereda de una o ms clases. subclase ?especializacin de la superclase. NOTA. NO todos los lenguajes de programacin orientada a objetos usan la herencia mltiple. Clase abstracta. Su comportamiento no esta totalmente definido. Sirven para captar las propiedades generales que posteriormente son particularizadas en las subclases. Clase Base. Clase que no tiene superclases.

Relacin de instanciacin. Relacin entre clases donde el comportamiento de una clase puede ser parametrizada por otra clase. Ejemplo. Colecciones de objetos homogneas (listas, colas, pilas, rboles, etc. [operaciones genricas para todos]). La parametrizacin de una clase con otra es un mecanismo muy flexible que permita crear clases reutilizables. Relacin de metaclases. A una clase se le puede ver como a un objeto por lo tanto a la clase de los objetos de clases se les llama Metaclase. Metaclase. Es una clase cuyos objetos son clases. La idea central de la instanciacin y la parametrizacin: poder llegar a tener clases reutilizables.

1.9 Relacin entre clases y objetos.Las clases son estticas, forman parte del texto del programa y no cambian durante su ejecucin. Los objetos por el contrario son totalmente dinmicos, se crean, cambian su estado y se destruyen. Clasificacin. Forma de ordenar el conocimiento. No existen reglas simples que permitan la mejor seleccin de clases y objetos para generar una clasificacin. Clasificar es agrupar cosas que tienen estructura comn o comportamiento similar. La clasificacin es un proceso difcil, por lo que conviene hacerlo de manera incremental iterativa. Al iniciar el diseo, se define una estructura inicial para las clases. En base a la experiencia adquirida se crean nuevas subclases a partir de las existentes o bien es muy comn que se requiera dividir una clase en otras ms pequeas (pero ms generales), inclusive es posible requerir de la unin de varias clases.

1.10 Autoevaluacin.1.Da 3 ejemplos de jerarqua de especializacin y 3 de dependencias estructuras. 2.Buscar toda la metodologa de diagramacin para la programacin orientada a objetos.

3.Realizar una pequea investigacin comparativa de los diferentes lenguajes de programacin (orientada a objetos) que existen, y su evolucin: *Historia *Evolucin *Ventajas y desventajas. *Conclusiones. 4.Cmo clasificaramos el entorno de tu casa para que funcione correctamente? Pista: Clase base: la casa.Luego la recamara, la sala, el bao, la cocina, etc? Luego, tomando la recamara: qu hay en ella?.cama, cmoda/closet, mesa, silla, etc.

2. Desarrollo Orientado a Objetos.2.1 PROGRAMACION PROCEDURAL.La programacin procedural fue la primer manera en como se programaron las aplicaciones como Windows.Las caractersticas de este lenguaje de programacin son: Programa paso a paso que gua a la aplicacin por una serie de instrucciones Ejecuta cada sentencia en el orden en que fue establecida Los datos (variables) y las funciones (mtodos) son dos partes independientes

2.2 PROGRAMACION ORIENTADA A OBJETOS.

La programacin orientada a objetos es el segundo paso en la evolucin del diseo de aplicaciones. Su diseo se asemeja mas a la realidad y por tanto es mas sencillo de programar y reutilizar.Su auge a permitido la creacin de una gran variedad de lenguajes de programacin como Java, C++, etc. Las caractersticas de la programacin orientada a objetos son: Programa en base a objetos Combina los datos (variables) y las funciones (mtodos) en una misma unidad Su ejecucin depende de los eventos y estados de la aplicacin

EL enfoque del diseo orientado a objetos es representar el mundo real a travs de entidades con datos y funciones, de manera que se comporten de manera inteligente de acuerdo a los eventos o estados que se presentan en una aplicacin. Ejemplo: Una tienda de libros esta compuesta de: Libros, clientes, ordenes, etc. Cada uno de ellos representa una entidad dentro del modelo, analizando a un libro, podemos decir que es una entidad inteligente, ya que podemos pedirle que se imprima, que se elimine, que se cambie el titulo