1 / 23

Programación Orientada a Objetos

Ingeniería en Informática Curso 2003/2004. Programación Orientada a Objetos. Jesús García Molina Dpto. Informatica y Sistemas Universidad de Murcia http://dis.um.es/~jmolina/. Construcción de Software OO. POO favorece extensibilidad y reutilización. ¿Por qué?.

banagher
Download Presentation

Programación Orientada a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IngenieríaenInformática Curso 2003/2004 Programación Orientada a Objetos Jesús García Molina Dpto. Informatica y Sistemas Universidad de Murcia http://dis.um.es/~jmolina/

  2. Construcción de Software OO POO favorece extensibilidad y reutilización ¿Por qué? Las técnicas de la orientación a objetos son el medio adecuado para mejorar la calidad del software Clases y Objetos Mensajes Herencia y Polimorfismo y Ligadura Dinámica ¿Cómo?

  3. ¿Cómo surge la programación OO? 60’s Simula Smalltalk 70’s 80’s OO es útil en IS Eiffel, Trellis-Owl,... C++, Delphi, ... Lenguajes OO puros Lenguajes OO híbridos En 1995 ¡Java! y en 2002 C#

  4. Evolución OO • A finales de los ochenta, mito de la OO: “Mi gato es OO” • En los noventa deja de ser algo exótico • Consenso en la comunidad software: “OO es el camino a seguir” • La OO no resuelve todos los problemas de la I.S. • Existen buenos entornos profesionales • Existe experiencia de su aplicación

  5. Evolución OO Lenguajes OO Métodos OO Análisis y Diseño OO Bases de Datos OO

  6. Evolución OO • Integración de cliente-servidor y OO: Objetos Distribuidos • Desarrollo basado en componentes “Alcanzar el viejo sueño de construir el software como el hardware” • Lenguaje estándar para modelado OO: UML Procesos OO basados en UML

  7. Ciclo de vida OO • Se reduce el salto semántico entre dominio del problema y la aplicación • Análisis y Diseño basados en los objetos del dominio. • Se favorece la extensibilidad

  8. Situación actual • Componentes • Objetos Distribuidos • UML: Un estándar para el modelado • Frameworks • Patrones de Diseño • Bases de datos OO y Objeto-Relacionales

  9. Situación actual • La tecnología OO ha madurado • Desarrollo de software OO está extendido • Fenómeno Java • Crece el uso de las técnicas de Análisis y diseño OO • Procesos basados en UML: RUP • Estándares: CORBA, UML, JDO,...

  10. OMG • Consorcio de la industria software • Dos objetivos • Promover la ingeniería del software OO • Definir un estándar para la infraestructura que posibilite las aplicaciones distribuidas OO • UML • CORBA • MDA (Arquitectura dirigida por modelos)

  11. OO en el plan de estudios 3º OB Programación OO Introducción a la Programación OO 4º OB Análisis y Diseño de Software Diseño OO (UML, Proceso y Patrones) 5º OPT Desarrollo basado en componentes Componentes Software 5º OPT Desarrollo de aplicaciones distribuidas Objetos Distribuidos (Java RMI, Servlet, EJB) 5º OPT Arquitectura del software Patrones EJB, Frameworks

  12. Objetivos de la parte teórica • Describir el núcleo de conceptos que caracterizan al paradigma orientado a objetos, OO. • Contrastar como diferentes lenguajes de programación OO reflejan los conceptos del paradigma. • Valorar en que medida las técnicas OO mejoran la calidad del software. • Enseñar un lenguaje OO junto con su entorno de programación. • Enseñar técnicas de programación OO.

  13. Programa de Teoría Tema 1.Orientación a Objetos, una técnica para mejorar la calidad del software. Tema 2.Clases y Objetos Tema 3.Diseño por Contrato Tema 4. Herencia

  14. Objetivos de la parte práctica • Aplicar los conceptos teóricos • Aplicar técnicas de programación • Adquirir destreza en el manejo de un lenguaje OO, junto con su entorno de programación. • Lenguaje Java • Entorno JBuilder 7 Personal • Realizar un conjunto de ejercicios de programación • Realizar un pequeño proyecto.

  15. Lenguaje ideal para docencia • Buenas propiedades • OO puro • reflejar con claridad los conceptos • legible • pequeño • tipado estáticamente • alto nivel • soporte para corrección

  16. Lenguaje ideal para docencia • Entorno fácil de aprender y manejar, robusto. • Requisitos hardware y software mínimos. • Muy utilizado en las empresas e industrias • Buena documentación • Libre distribución

  17. ¿Por qué Java? • Tipado estáticamente • Simple • Orientado a objetos “casi puro” • Muy extendido en la industria • Abundante documentación • Tecnología Java: Servlet, RMI, Java Beans, EJB,..

  18. Características de Java • Simplifica y acerca C++ a la OO • Semántica referencia • Garbage Collection • No es necesario declarar funciones “virtuales” • Lenguaje de uso general • Portabilidad: Bytecodes y MáquinaVirtual Java • Apropiado para crear software para la web: • aplicaciones seguras independientes de la plataforma • applets Java

  19. Características de Java • Herencia múltiple basada en interfaces • Mecanismo de excepciones • Mecanismo de concurrencia • Persistencia

  20. Programa de Prácticas Tema 1. Clases, Objetos y Mensajes en Java Entorno de Programación Java Tema 2. Herencia en Java Clases abstractas Interfaces Tema 3. Clases Básicas: Colecciones, Cadenas, E/S Tema 4. Clases internas Tema 5. Concurrencia y Persistencia Tema 6.Desarrollo de aplicaciones interactivas

  21. Horario de Prácticas Horario: Lunes 18.30-20.30 Jueves 16.30-18.30 Jueves 18.30-20.30 Laboratorio 1/3

  22. Evaluación • Examen teórico con cuestiones teórico-prácticas. • Entrega de ejercicios y proyecto de programación • Entrevista para evaluación del trabajo práctico • Necesario aprobar parte teórica y práctica • Nota final: Media ponderada entre la nota de teoría(60%) y la nota de prácticas(40%).

  23. Bibliografía Básica TEORIA 1.Arnold, K. y Gosling, J., “El lenguaje de programación Java”, Addison-Wesley, 3ª Ed., 2001. 2. Budd, T.,“An Introduction to Object-Oriented Programming”, 3ª ed., Addison-Wesley, 2002. 3. Meyer, B., "Construcción de Software Orientado a Objetos", 2ª edición, Prentice-Hall, 1998. 4. Stroustrup, B., "El Lenguaje de Programación C++", Edición Especial, Addison-Wesley, 2000. PRACTICAS 1.Arnold, K., Gosling, J. y Jomes, D. “El lenguaje de Programación Java”, 3ª Edición, Addison-Wesley, 2001. 2. J. Bloch, “Effective Java”, Addison-Wesley, 2001 3. Eckel, B. “Piensa en Java”, 2ª Edición, Prentice-Hall, 2002.

More Related