TRABAJO COLABORATIVO 1 Grupo 301403_30

PRESENTADO POR:

ORLANDO DE JESUS POSADA 80364369

ADALBERTO VILLALBA RAMIREZ 82392179

PRESENTADO A:

Ing. Cesar Orlando Jiménez

Tutor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA PROGRAMA INGENIERIA ELECTRONICA PROGRAMACION ORIENTADA A OBJETOS 24 OCTUBRE 2013

Los primeros avances metodológicamente ordenados. no todas ellas son correctas. La POO no es difícil. a veces subjetiva de quien la programa.INTRODUCCION La programación orientación a objetos promete mejoras de amplio alcance en la forma de diseño. pero es una manera especial de pensar. Programar bien es importante porque así nos podemos aprovechar de todas las ventajas de la POO. Dijstra y de forma menos teórica pero quizás con más impacto por Kernighan y Ritchie. lo difícil no es programar orientado a objetos sino programar bien. de manera que la forma de hacer las cosas puede ser diferente según el programador. desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo del software. fueron protagonizados principalmente por Wirth. . Aunque podamos hacer los programas de formas distintas.

• Mantener buenas relaciones con los miembros del grupo. con una actitud tolerante hacia las ideas de los compañeros. . responsabilizándose de la consecución de los objetivos.OBJETIVOS • Organizar tareas colectivas aportando y superando las dificultades que se presenten. • Definir y proponer cambios en la mejora del planteamiento y solución de los programas. • Elegir una estructura para los datos y codificar el programa en lenguaje JAVA.

UNIDAD 1. Mostrar hora en segundos. Para que el objeto funcione se le debe enviar un mensaje adecuado. Mostrar hora en minutos. Sumar Hora. Características de datos: Por ejemplo hora. ¿Qué es un mensaje? Es el llamado que se hace a un objeto para que ejecute una de sus operaciones. • ESTRUCTURA DE DATOS: Hora. Mostrar hora. desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los . Para una solución software un objeto es un elemento especial de información que se construye a partir de una estructura de datos y una estructura funcional. INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Capítulo 1 Conceptos Básicos Orientado a Objetos Cada objeto tiene un conjunto de características o atributos que lo hacen diferente a los demás. es más podríamos afirmar que lo único estructurado en la “programación estructurada” son los procedimientos pero los datos están muy aislados. Resta Hora. 3. Segundos • ESTRUCTURA FUNCIONAL: Leer hora. Introducción: La orientación a objetos promete mejoras de amplio alcance en la forma de diseño. CAPITULO 2. actualizar la hora y siendo más ambiciosos mostrar la hora en segundos. Introducción Y Elementos Básicos De Programación Orientada A Objetos (POO) 1. ¿Podríamos hacer la representación de un objeto del mundo real? Desde el punto de vista computacional es posible representar lógicamente cualquier objeto del mundo real. 1. mostrar la hora en minutos o sumar y restar horas. 2. Minutos. que sea identificado por el mismo objeto. En la programación estructurada la estructura de datos es totalmente independiente de la parte funcional o procedimental. La estructura funcional opera directamente sobre la estructura de datos y esta a su vez solo puede ser manipulada por la estructura funcional del mismo objeto. minutos y segundos Características funcionales: Por ejemplo mostrar la hora.

Si en algún punto del programa modificamos la estructura de los datos o la acción realizada sobre ellos. como su nombre lo indica. ciclos de desarrollo largos y técnicas de codificación no intuitivas. Un lenguaje se dice que está basado en objetos si soporta como una característica fundamental del mismo. Ventajas de POO Uniformidad: Ya que la representación de los objetos lleva implica tanto el análisis como el diseño y la codificación de los mismos. un objeto no es un dato simple. Muchos de los lenguajes pueden cumplir uno o dos de estos puntos. Flexibilidad: Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar. pero es muy difícil que se cumplan los tres. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen una estructura y forman parte de una organización. Comprensión: Tanto los datos que componen los objetos. que se corresponden con las estructuras de información que el programa trata. Los lenguajes de programación convencionales son poco más que una lista de acciones a realizar sobre un conjunto de datos en una determinada secuencia. Esta definición especifica varias propiedades importantes de los objetos. basado en clases y capaz de tener herencia de clases. Dado que la POO. Tiene tres características básicas: debe estar basado en objetos. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos. sino que forma parte de una organización jerárquica o de otro tipo. están agrupados en clases. . el inconveniente más complicado de diseñar es la herencia. En segundo lugar. como los procedimientos que los manipulan. En primer lugar. de forma que esté organizado en la misma manera que el problema que trata de modelar. el objeto.problemas y preocupaciones que han existido desde el comienzo en el desarrollo del software: la falta de portabilidad del código y reusabilidad. sino que contiene en su interior cierto número de componentes bien estructurados. El concepto de programación orientada a objetos (POO) no es nuevo. El elemento fundamental de la POO es. Básicamente la POO permite a los programadores escribir software. cualquier cambio que se realice sobre ellos quedará reflejado automáticamente en cualquier lugar donde estos datos aparezcan. el programa cambia. código que es difícil de modificar. Un lenguaje orientado a objetos ataca estos problemas. lenguajes clásicos como SmallTalk se basan en ella. 2. Estabilidad: Dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo. cada objeto no es un ente aislado.

• Proceso de desarrollo apropiado. • Mejor calidad del producto de software terminado. • Bibliotecas de clases comerciales disponibles. 3. Limitaciones para el programador. . sin embargo existen casos en los que lo anterior no se cumple. Velocidad de ejecución. Heredan clases a partir de clases existentes se heredan de forma implícita todos los miembros de dicha clase aun cuando no todos se necesiten. • Reutilización. De esta forma. La gran mayoría de los equipos de cómputo cuentan con capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la mayoría de las aplicaciones que puedan desarrollarse con la tecnología orientada a objetos. • Mejor independencia e interoperatividad de la tecnología. • Mejor informática distribuida en cliente – servidor. • Sistemas más fiables. lo que produce aplicaciones muy grandes que no siempre encajan en los sistemas con los que se disponga. • Desarrollo más flexible. Desventajas de la tecnología orientada a objetos. Una aplicación innecesariamente pesada en muchas ocasiones es más lenta de ejecutar que una aplicación conformada únicamente por los módulos necesarios. • Modelos que reflejan mejor la realidad. después de haber revisado de forma breve los principios de la programación orientada a objetos. nos es claro que en ésta se requiere una lógica de pensamiento totalmente diferente a la lógica comúnmente utilizada para la programación estructurada.Reusabilidad: La noción de objeto permite que programas que traten las mismas estructuras de información reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. • Mejores relaciones con los clientes. Las clases se construyen a partir de otras clases. Tamaño excesivo en las aplicaciones resultantes. el desarrollo de un programa puede llegar a ser una simple combinación de objetos ya definidos donde estos están relacionados de una manera particular. La lógica de la programación estructurada sigue siendo predominante en la mayoría de los desarrolladores de software.

Un desarrollo realizado con el modelo orientado a objetos es más fácil de mantener y de reutilizar. Las subrutinas proporcionan una división natural de las tareas. Comparación entre la Programación orientada a Objetos y la programación estructurada. En un programa estructurado. así como imposible de mantener. Un modelo de objetos es más cercano a la realidad que un modelo funcional. La Abstracción se puede definir como la capacidad de examinar algo sin preocuparse de los detalles internos. la subrutina se puede ejecutar simplemente incluyendo el nombre del programa siempre que se requiera. Hoy casi todos los lenguajes de programación tienen construcciones que facilitan la programación estructurada. Los lenguajes de programación lineal (BASIC. una vez que se ha definido. es fácil escribir programas compilados y tortuosos difíciles de modificar y comprender. Esta ha sido la panorámica durante muchos años en el desarrollo del software. Una subrutina ha creado una secuencia de instrucciones a las que se les da un nombre independiente. COBOL Y FORTRAN) no tenían facilidad para reutilizar el código existente de programas. Aunque las subrutinas proporcionan el mecanismo básico de la programación Modular. La integridad que dan los objetos a los datos evita ambigüedades en su uso. para que se pueda utilizar sin tener que conocer cómo funciona su interior. El modelo orientado a objetos evita la redundancia en los procesos luego los códigos son más entendibles y resumidos. dando mayor seguridad en los resultados. Programación Modular. De hecho se duplicaban segmentos de software cada vez más en muchos programas. Esto se conoce como una Abstracción funcional y es el núcleo de la programación estructurada. los lenguajes lineales no tenían capacidad de controlar la visibilidad de los elementos llamados datos. se necesita mucha disciplina para crear software bien estructurado. Aún más. diferentes programas utilizan. Programación Estructurada. El modelo orientado a objetos facilita la integridad de módulos que hayan sido realizados por separado sin correr riesgos en el manejo de los datos. La Programación estructurada fija su atención en el conjunto de acciones que manipulan el flujo de datos. 5. El control de programas era difícil y se producían continuos saltos a lo largo del referido programa. mientras que la POO se fija en la interrelación que existe entre los datos y las acciones a realizar con ellos. Los programas se ejecutaban en secuencias lógicas. El soporte más elemental de la programación Modular llegó con la aparición de la subrutina.4. . es suficiente conocer que un procedimiento sea fiable. Evolución de la programación Programación lineal. haciendo la lógica difícil de comprender. Sin esta disciplina.

La representación de dicha organización da lugar a los denominados Árboles de herencia: Mediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. principalmente porque se suelen emplear conjuntamente. Estos módulos que se puedan compilar por separado. Modularidad Se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos). pero que tienen conexiones con otros módulos. . Estos límites. una variedad de técnicas son requeridas para ampliar una abstracción Encapsulación Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad. Al acto de tomar propiedades de una clase padre se denomina heredar. Los procesos. son muy valiosos en la comprensión del programa" Por su parte Bárbara Liskov establece que "modularización consiste en dividir un programa en módulos que pueden ser compilados de forma separada. los lenguajes soportan la Modularidad de diversas formas. Por ejemplo.. . las funciones o los métodos pueden también ser abstraídos y cuando lo están. una justificación más poderosa para particionar un programa es que crea una serie de límites bien definidos y documentados en el programa. . Algunos autores confunden este concepto con el principio de ocultación. un perro es un Mamífero. A pesar de particionar un programa es útil por esta razón. Así se simplifican los diseños y se evita la duplicación de código al no tener que volver a codificar métodos ya implementados. cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. y los animales seres vivos. Del mismo modo. o interfaces. las distintas clases de un programa se organizan mediante la Jerarquía. Al igual que la encapsulación. Según Bertrand Meyer "El acto de particionar un programa en componentes individuales para reducir su complejidad en algún grado. y los mamíferos son animales. y “comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. . Esto permite aumentar la cohesión de los componentes del sistema. informar y cambiar su estado. pero que tienen conexiones con otros módulos" Jerarquía La mayoría de las personas ve de manera natural nuestro mundo como objetos que se relacionan entre sí de una manera jerárquica. al mismo nivel de abstracción. Propiedades Básicas De La Programación Orientada a Objetos Abstracción: Cada objeto en el sistema sirve como modelo de un "agente “abstracto que puede realizar trabajo.Capítulo 3..

Cuando esto ocurre en "tiempo de ejecución". Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo. pueden compartir el mismo nombre. O dicho de otro modo. y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. asociados a objetos distintos. esta última característica se llama Asignación tardía o asignación dinámica. tales como las plantillas y la sobrecarga de operadores de C++ .Polimorfismo Comportamientos diferentes. las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos. al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.

Conclusiones La gran cantidad de información referente a POO es muy variada de actual hasta muy desactualizada pero que interesa con la lógica y el entendimiento de todo lo teórico para realizar la práctica que sea aplicable pero en realidad no están cierto hay personas que poseen excelente teoría pero en la práctica en la ejecución en el copilar el programa no tiene o poseen la destreza y tener la capacidad en su elaboración su ejecución con la construcción de una clase. el objetos con sus atributos y sus funciones a realizar .

Universidad Nacional Abierta y a Distancia UNAD.unam.scribd.net/wiki/Modularidad-(programacion-orientada-a-objetos) Recuperado de http://es. http://www.org/wiki/Modularidad_(inform%C3%A1tica) Recuperado de http://lsi.mx/carlos/java/java_basico3_4.com/doc/47777405/Conceptos-fundamentales-de-la-POO Recuperado de http://es. Recuperado de Lenguajes de programación.REFERENCIAS BIBLIOGRAFICAS Recuperado de http://es.. (2010) programación orientada a objetos.com/programacion-estructurada.html • Jiménez Angarita C.cyclopaedia.shtml Recuperado de http://www.lenguajes-de-programacion.ehu.fi-b.wikipedia.es/mikell/docencia/Programacion-II/Transparencias/2Gaia/T2ModularidadJava0607.javahispano.vc.pdf Recuperado de http://profesores. O.org/contenidos/es/introduccrion_a_la_programacrion_orien tada_a_objet/ 17 .