Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

01 Introduccion Programación Orientaeda a Objetos

1,540 views

Published on

Clase de Introducción al Curso de Programación Orientada a Objetos de la carrera de Ciencias Computacionales de la ESPOL

Published in: Technology
  • Be the first to comment

  • Be the first to like this

01 Introduccion Programación Orientaeda a Objetos

  1. 1. Programación Orientada a Objetos Orientada a Objetos <ul><li>Introducción </li></ul>
  2. 2. Instructor <ul><li>Xavier Ochoa Chehab </li></ul><ul><ul><li>Estudios </li></ul></ul><ul><ul><ul><li>Ingeniero en Computación (ESPOL, 2000) </li></ul></ul></ul><ul><ul><ul><li>M.Sc. Computación Aplicada (VUB, 2002) </li></ul></ul></ul><ul><ul><ul><li>Ph.D. en Ingeniería (KULeuven, 2008) </li></ul></ul></ul><ul><ul><li>Trabajo </li></ul></ul><ul><ul><ul><li>Profesor Principal de la FIEC (7 años) </li></ul></ul></ul><ul><ul><ul><li>Investigador en el CTI (11 años) </li></ul></ul></ul>
  3. 3. Instructor <ul><li>Areas de Interes Profesional </li></ul><ul><ul><li>E-Learning 2.0 </li></ul></ul><ul><ul><li>Multimedia </li></ul></ul><ul><ul><li>Métricas </li></ul></ul><ul><li>Areas de Interes Personal </li></ul><ul><ul><li>Ciencia Ficción (Libros, Peliculas) </li></ul></ul><ul><ul><li>Astronomía </li></ul></ul><ul><ul><li>Viajar </li></ul></ul>
  4. 4. Instructor <ul><ul><li>Presencia Digital: </li></ul></ul><ul><ul><ul><li>http://ariadne.cti.espol.edu.ec/xavier </li></ul></ul></ul><ul><ul><ul><li>Bookmarks: http://delicious.com/xaoch </li></ul></ul></ul><ul><ul><ul><li>Twitter: http://www.twitter.com/xaoch </li></ul></ul></ul><ul><ul><ul><li>Web log: http://xaoch.tumblr.com </li></ul></ul></ul><ul><ul><ul><li>Pres.: http://www.slideshare.com/xaoch </li></ul></ul></ul>
  5. 5. Estudiantes
  6. 6. Estudiantes <ul><li>Entrevista Cruzada </li></ul><ul><ul><li>¿Quién es? </li></ul></ul><ul><ul><li>¿Porque estudia CC? </li></ul></ul><ul><ul><li>Origen de su Nombre </li></ul></ul>
  7. 7. Las Reglas <ul><li>Asistencia: </li></ul><ul><ul><li>La asistencia es obligatoria </li></ul></ul><ul><ul><li>Se toma lista a los 15 minutos de empezada la clase. Se puede ingresar a la clase más tarde, pero no se marca la asistencia </li></ul></ul><ul><ul><li>Si el instructor no llegase dentro de los 15 primeros minutos no habrá clase ese día. </li></ul></ul>
  8. 8. Las Reglas <ul><li>Evaluación: </li></ul><ul><ul><li>Primera Evaluación </li></ul></ul><ul><ul><ul><li>Examen escrito: 50 puntos </li></ul></ul></ul><ul><ul><ul><li>Investigación: 10 puntos </li></ul></ul></ul><ul><ul><ul><li>Deberes: 10 puntos </li></ul></ul></ul><ul><ul><ul><li>Proyecto: 25 puntos </li></ul></ul></ul>
  9. 9. Las Reglas <ul><li>Evaluación: </li></ul><ul><ul><li>Segunda Evaluación </li></ul></ul><ul><ul><ul><li>Examen escrito: 50 puntos </li></ul></ul></ul><ul><ul><ul><li>Investigación: 10 puntos </li></ul></ul></ul><ul><ul><ul><li>Deberes: 10 puntos </li></ul></ul></ul><ul><ul><ul><li>Proyecto: 30 puntos </li></ul></ul></ul>
  10. 10. Las Reglas <ul><li>Evaluación: </li></ul><ul><ul><li>Mejoramiento </li></ul></ul><ul><ul><ul><li>Examen escrito: 50 puntos </li></ul></ul></ul><ul><ul><ul><li>Proyecto: 50 puntos </li></ul></ul></ul>
  11. 11. Las Reglas <ul><li>Investigación </li></ul><ul><ul><li>Cada semana deberán inlcuir un contenido nuevo para la materia encontrado en Internet </li></ul></ul><ul><ul><li>No se contará contenido repetido </li></ul></ul><ul><ul><li>Se utilizará el sistema Delicious.com </li></ul></ul><ul><ul><li>Se utilizará el tag pooespol </li></ul></ul><ul><ul><li>Se contará hasta las 23:59 del Domingo </li></ul></ul>
  12. 12. Las Reglas <ul><li>Proyectos </li></ul><ul><ul><li>Los proyectos se realizarán en grupos de 2 </li></ul></ul><ul><ul><li>Los proyectos deberán ser sustentados </li></ul></ul><ul><ul><li>Se calificará: </li></ul></ul><ul><ul><ul><li>funcionalidad, diseño, estilo y robustés </li></ul></ul></ul>
  13. 13. Introducción a Orientación a Objetos Orientación a Objetos
  14. 14. Paradigma Procedimental <ul><li>El paradigma procedimental ve a un sistema de computo como un “procesador de datos” </li></ul><ul><li>Los datos ingresan al programa y se van transformando al pasar por una serie de funciones </li></ul>
  15. 15. Paradigma Procedimental <ul><li>Sistema de Rol de Pagos : </li></ul><ul><ul><li>Obtener la lista de empleados </li></ul></ul><ul><ul><li>Obtener el registro de horas de trabajo </li></ul></ul><ul><ul><li>Obtener las tablas de remuneración y descuentos </li></ul></ul><ul><ul><li>Para cada empleado: </li></ul></ul><ul><ul><ul><li>Calcular la cantidad a pagar </li></ul></ul></ul><ul><ul><ul><li>Calcular las retenciones e impuestos </li></ul></ul></ul><ul><ul><ul><li>Calcular la paga neta </li></ul></ul></ul><ul><ul><ul><li>Preparar el cheque </li></ul></ul></ul><ul><ul><ul><li>Anotar el cheque en el sistema de contabilidad </li></ul></ul></ul><ul><ul><ul><li>Enviar el cheque al empleado </li></ul></ul></ul><ul><ul><li>Devolver todos los documentos a su respectivo lugar </li></ul></ul>
  16. 16. Paradigma Procedimental <ul><li>Esas operaciones pueden llevarse a cabo con un computador </li></ul><ul><li>Los pasos necesarios para llegar a cabo una tarea se conocen como “proceso” </li></ul><ul><li>Cada uno de los pasos se conoce como “procedimiento” </li></ul>
  17. 17. Paradigma Procedimental <ul><li>Cada procedimiento recibe datos de entrada, los procesa y luego los transmite a otro procedimiento y finalmente a un humano. </li></ul><ul><li>Los datos son dados a los procedimientos de una manera similar a la que la materia prima es alimentada una línea de ensamblaje. </li></ul>
  18. 18. Paradigma Procedimental <ul><li>El diseñador trata de descomponer los problemas en pequeños procedimientos que siendo ejecutados en el orden correcto hacen que el sistema llegue a una respuesta. </li></ul><ul><li>Esto funciona muy bien para problemas pequeños. ¿Pero que pasa con sistemas grandes y donde lo que gobierna al sistema no son los datos sino los eventos? </li></ul>
  19. 19. Paradigma Procedimental <ul><li>Ejemplos de este tipo de problema son los sistemas interactivos </li></ul><ul><li>En ellos el flujo del programa ya no es lineal, sino que dependerá de la respuesta del usuario </li></ul><ul><li>El orden en que los procedimientos son llamados no se conoce de antemano </li></ul>
  20. 20. Construcción de una casa para “fido” Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples
  21. 21. Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas
  22. 22. Construcción de un rascacielos
  23. 23. ¿Un nuevo paradigma? <ul><li>Paradigma = conjunto de teorías, estándares y métodos que juntos representan maneras de organizar el conocimiento y ver el mundo. </li></ul><ul><li>En la ciencia una revolución ocurre cuando un paradigma viejo es reexaminado, rechazado y remplazado por uno nuevo </li></ul><ul><li>Paradigma de Programación = una manera de conceptuar que significa computar y como estructurar y organizar las tareas que deben ser llevadas a cabo por una computadora </li></ul>
  24. 24. Paradigma Orientado a Objetos Orientado a Objetos <ul><li>En el paradigma orientado a objetos, el diseñador trata de resolver un problema modelando los diferentes objetos presentes y sus diferentes interacciones </li></ul><ul><li>En este paradigma los datos no son algo externo al programa, sino que está embebido dentro de los “objetos” </li></ul>
  25. 25. Paradigma Orientado a Objetos Orientado a Objetos <ul><li>El paradigma orientado a objetos permite al programador concentrarse en el la solución al problema y no en cómo implementarla en un computador </li></ul><ul><li>Brinda tres claras ventajas sobre el paradigma procedimental: </li></ul><ul><ul><li>Fácil Mantenimiento </li></ul></ul><ul><ul><li>Reusable </li></ul></ul><ul><ul><li>Escalable </li></ul></ul>
  26. 26. ¿Por qué la POO es Popular? <ul><li>Similaridad con la forma de pensar acerca de los problemas en la vida real </li></ul><ul><li>Es muy escalable, desde problemas triviales hasta sistemas muy complejos </li></ul>
  27. 27. POO: Una nueva manera de ver el mundo <ul><li>“ Juan quiere mandar flores a su amiga Ana que vive en otra ciudad. Debido a la distancia Juan no puede llevar las flores directamente a Ana. Juan acude a Pedro, un florista local, y le da el número y tipo de flores que quiere enviarle a Ana y su dirección. Juan puede estar seguro que las flores serán entregadas a Ana. ” </li></ul>
  28. 28. Agentes, Responsabilidad, Mensajes y Métodos <ul><li>Juan encuentra un agente apropiado (Pedro) </li></ul><ul><li>Y le envía un mensaje que contiene una petición. </li></ul><ul><li>Es la responsabilidad de Pedro el satisfacer esa petición. </li></ul><ul><li>Existe algún método (conjunto de operaciones) usadas por Pedro para entregar las flores. </li></ul><ul><li>Juan no necesita conocer el método particular que Pedro utilizará, esa información esta oculta . </li></ul>
  29. 29. POO: el Principio General <ul><li>Un programa orientado a objetos esta estructurado como una comunidad de agentes que interactúan entre si llamados objetos. </li></ul><ul><li>Las acciones son iniciadas por la transmisión de mensajes a un agente (un objeto). </li></ul><ul><li>El mensaje codifica un requerimiento de acción y es acompañado por información adicional (argumentos) necesaria para llevar a cabo el requerimiento. </li></ul><ul><li>El receptor es el agente al cual el mensajes es enviado. Si el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la acción solicitada. </li></ul><ul><li>En respuesta a un mensajes el receptor ejecutará algún método para satisfacer el requerimiento. </li></ul>
  30. 30. ¿Qué es un objeto? <ul><ul><li>Así como los procedimientos son la base para construir programas estructurados, los objetos son usados para construir programas orientados a objetos </li></ul></ul><ul><ul><li>Un programa orientado a objetos es una colección de objetos que están organizados para, y cooperan para, lograr un objetivo. </li></ul></ul>
  31. 31. Objeto <ul><li>Cada objeto: </li></ul><ul><ul><li>Contiene datos: Los datos guardan información que describe el estado del objeto. </li></ul></ul><ul><ul><li>Tiene un conjunto de comportamientos: Estos comportamientos son cosas que el objeto sabe como hacer y que son disparadas por mensajes enviados al objeto. </li></ul></ul><ul><ul><li>Tiene identidad individual: Esto hace posible distinguir un objeto de otro así como es posible distinguir una variable de otra </li></ul></ul>
  32. 32. Objeto <ul><li>Objeto empleado: </li></ul>Datos: Nombre: Juan Perez Horas que trabaja a la semana: 40 Afiliado al seguro: si Comportamiento: Calcular Sueldo Calcular Retenciones Cambiar horario de trabajo Empleado # 03123
  33. 33. Objeto
  34. 34. Objeto Bicicleta
  35. 35. Objeto <ul><li>Un objeto es una abstracción de una entidad del mundo real. </li></ul><ul><li>Los datos de un objeto son conocidos como los atributos </li></ul><ul><li>Los comportamientos de un objeto son conocidos como métodos. </li></ul>
  36. 36. Ejemplos de Objetos <ul><li>Cuenta Bancaria </li></ul><ul><ul><li>Estado: número de cuenta, dueño, balance, tasa interés, etc </li></ul></ul><ul><ul><li>Operaciones: depositar, retirar, transferir, etc </li></ul></ul><ul><li>Estudiante </li></ul><ul><ul><li>Estado: nombre, matrícula, fecha de nacimiento, carrera </li></ul></ul><ul><ul><li>Operaciones: calcular edad, calcular pago, buscar notas </li></ul></ul><ul><li>String </li></ul><ul><ul><li>Estado: secuencia de caracteres </li></ul></ul><ul><ul><li>Operaciones: calcular largo, probar si es igual, concatenar, etc. </li></ul></ul>
  37. 37. Lenguajes OO <ul><li>Smalltalk (Squeak) </li></ul><ul><li>C++ </li></ul><ul><li>Java </li></ul><ul><li>C# </li></ul><ul><li>Python </li></ul><ul><li>Ruby </li></ul>
  38. 38. Terminología <ul><li>JRE – Java Runtime Environment </li></ul><ul><ul><li>JVM que ejecuta el código </li></ul></ul><ul><li>JDK – Java Development Kit </li></ul><ul><ul><li>JRE + tools (compiler, debugger) para desarrollo de applets y de aplicaciones </li></ul></ul><ul><li>J2SE – Java 2 Platform, Standard Edition </li></ul><ul><ul><li>JRE y JDK “family” </li></ul></ul><ul><li>J2EE - Java 2 Platform, Enterprise Edition </li></ul><ul><ul><li>Incluye frameworks para trabajo Web </li></ul></ul><ul><li>http://java.sun.com/javase/technologies/index.jsp </li></ul>
  39. 39. Entorno de Desarrollo
  40. 40. Tarea <ul><li>Instalar JDK 6 </li></ul><ul><li>Instalar Eclipse (JEE-Galileo) </li></ul><ul><li>Enviar captura de pantalla en SIDWeb </li></ul>

×