Curso de Programacin Orientada Objetos en JAVA - PowerPoint PPT Presentation

1 / 80
About This Presentation
Title:

Curso de Programacin Orientada Objetos en JAVA

Description:

Ganados individualmente en un examen te rico inicial ... Delta (lenguaje no compilable, 73-75) Smalltalk (mediados de los 70s) C /Eiffel (desde los 80s) ... – PowerPoint PPT presentation

Number of Views:877
Avg rating:3.0/5.0
Slides: 81
Provided by: Nati53
Category:

less

Transcript and Presenter's Notes

Title: Curso de Programacin Orientada Objetos en JAVA


1
Curso de Programación Orientada Objetos en JAVA
  • Dictado por
  • Alejandro Alliana Granada
  • Ale Feltes Quenhan
  • Pablo Santa Cruz Cosp
  • Colaboradores
  • Mirna Cantero
  • Dani Cricco

2

Programación Orientada a Objetos en Java
  • Presentación del curso

3
Evaluación
  • 5 puntos
  • Ganados individualmente en un examen teórico
    inicial previsto para la clase número 3.
  • 10 puntos
  • Ganados individualmente en una guerra de robots
    del
  • proyecto Robocode. http//robocode.alphaworks.ibm.
    com/home/home.html
  • Cada alumno presentará un robot, que ganará los
    puntos en el campo de batalla y los profesores
    presentarán tres robots que competirán en la
    arena.

4
Evaluación
  • 30 puntos
  • Tres trabajos prácticos individuales de 10 puntos
    cada uno sobre puntos (temas) a ser tratados en
    c2lase.
  • 55 puntos
  • Ganados por todo el curso completo en una
    presentación del trabajo final.
  • De estos 55 puntos, la distribución será la
    siguiente
  • 1) 25 puntos nota por individual para cada grupo
    de trabajo a definir
  • 2) 30 puntos nota global que será multiplicada
    por el siguiente factor F
  • F 0,5 NotaIndividualGrupal/50

5
Evaluación
  • Créditos
  • A los alumnos que aprueben la materia, se les
    otorgarán 6 (seis) créditos académicos.
  • El trabajo práctico será presentado a una mesa
    examinadora compuesta por profesores de la
    universidad, que otorgará eventualemente 2
    créditos académicos más.

6
Bibliografía Consultada
  • Thinking in Java, 3rd ed., Bruce Eckel, Prentice
    Hall
  • Applying UML And Patterns 2d. Edicion, Craig
    Larman , Prentice Hall
  • UML in a NutShell (1998), Sinan Sir Alhir ,
    O'Reilly
  • Java 2 - Exam Cram Series (1999), Bill Brogden,
    Coriolis
  • Java Swing (1998), Robert Ecktstein, Marc Loy,
    Dave Wood, O'Reilly
  • Cómo programar en Java, Deitel Deitel, Prentice
    Hall

7
JDBC
8
Acceso a Bases de Datos
  • Se logra a través de JDBC (Java Data Base
    Connectivity)
  • JDBC provee un API de programación el cual se
    utiliza para conectarnos a diferentes bases de
    datos

9
Capas de JDBC
  • Capa Aplicación (Application Layer)
  • Conjunto de clases (API) usadas para hacer
    llamados a la base de datos a través de SQL,
    obtener y procesar los resultados.
  • Capa Manejador (Driver Layer)
  • Conjunto de clases (API) que se encargan de
    establecer, manejar y terminar la comunicación
    con un DBMS
  • (Implementación especifica de un driver)

10
(No Transcript)
11
Ventajas
  • El Driver Manager instancia el driver adecuado.
  • Los driver no tienen que ser precargados
  • Los tipos de datos SQL son mapeados a tipos de
    datos Java (flexibilidad)

12
Ejemplo de uso
  • dbDriverManager.getConnection(Jdbcpostgresqldat
    abase, usr, pwd)
  • st db.createStatement()
  • st.executeQuery( sql code )

13
SWING
14
Swing
  • Es el conjunto de clases de JFC que nos permite
    construir interfaces gráficas para usuario (GUI).

15
Ejemplo de componentes
16
Swing JDBC
17
J2ME
18
J2ME
  • Esta diseñado para equipos con baja capacidad de
    memoria y procesamiento.
  • Se puede programar orientando el programa a una
    gran gama de dispositivos.

19
SDK
  • Sun Microsystem provee varios emuladores junto
    con un sdk para j2me, con lo cual no necesitamos
    tener un dispositivo para probar.
  • Varios distribuidores proveen versiones de
    emuladores de sus productos. Sony Ericsson,
    Motorola,et.

20
Caso práctico Truco ME
21
Servlets / JSP
  • Desarrollo de aplicaciones WEB con Java

22
Servlets y JSP
  • Son métodos de creación de páginas web dinámicas
    en servidor usando el lenguaje Java
  • En ese sentido son similares a otros métodos o
    lenguajes tales como PHP, los CGIs (common
    gateway interface), que generan páginas web en el
    servidor, o los ASP (Active Server Pages), un
    método específico de Microsoft.
  • Sin embargo, se diferencian de ellos en otras
    cosas.

23
Java Servlets
  • Son programas escritos en JAVA que se ejecutan
    en el marco de un servicio de red(ej. Servidor
    HTTP ) que reciben y responden peticiones de los
    clientes.

24
Servidores HTTP
  • Resin, de Caucho Technologies
  • Enfocado al servicio de páginas XML, con licencia
    libre para desarrolladores.
  • Dice ser bastante rápido.
  • Incluye soporte para Javascript además de Java y
    un lenguaje de templates llamado XTP.
  • Fácil de instalar.
  • BEA Weblogic
  • Servidor de aplicaciones de alto nivel, y alto
    precio.
  • Escrito íntegramente en Java.
  • Se combina con otra serie de productos, tales
    como Tuxedo, un servidor de bases de datos para
    XML.

25
Servidores HTTP
  • JRun, de Macromedia
  • Servidor de aplicaciones de Java
  • Se puede bajar una versión de evaluación gratuita
  • Lutris Enhydra
  • Servidor gratuito y Open Source, aunque tiene una
    versión de pago.
  • Enfocado a servir XML, y para plataformas
    móviles.
  • Las versiones más actualizadas son de pago.
  • Jakarta Tomcat
  • El más popular, Open Source, y continuamente en
    desarrollo.

26
Arquitectura Cliente/Servidor
27
Caracteristicas de los Servlets
  • Al igual que los programas CGI, los servlets
    permiten la generación dinámica de código HTML.
  • Permiten la utilización de cookies y sesiones de
    forma que se puede guardar informaciones
    específicas de un usuario.
  • Pueden actuar de enlace entre el cliente y una o
    varias Bases de Datos en arquitecturas cliente
    servidor de 3 capas.

28
JSP
  • Un JSP se compila a un programa en Java la
    primera vez que se invoca, y del programa en Java
    se crea una clase que se empieza a ejecutar en el
    servidor como un servlet.
  • Enfoque de la programación un JSP es una página
    Web con etiquetas especiales y código Java
    incrustado, mientras que un servlet es un
    programa que recibe peticiones y genera a partir
    de ellas una página web.

Diferencia entre Servlet y JSP
29
El paradigma OO y la producción de Juegos
30
El paradigma OO
  • Orientación a objetos
  • Reusabilidad
  • Confiabilidad
  • Robustez
  • Extensibilidad
  • Mantenibilidad
  • En todos los niveles del proceso de desarrollo
    Análisis, diseño y programación

31
Desafíos en el desarrollo de juegos
  • Inexperiencia en el área en el país
  • Manejo de un grupo de desarrollo de más de 15
    personas
  • División eficiente de las tareas a realizar
  • Definición conveniente de las interfaces entre
    los grupos.
  • Documentación y comunicación intergrupal
  • Elección del mejor paradigma a ser aplicado en
    base a los objetivos propuestos y los recursos
    disponibles

32
OO para enfrentar esos desafíos
  • División del proyecto en subsistemas bien
    definidos (conjuntos de objetos)
  • El más bajo acoplamiento posible
  • Interfaces definidas como paso de mensajes entre
    objetos
  • Uso del UML caso exitoso de buena documentación
    y comunicación intergrupal

33
Caso de estudio Proyecto TOLUCA
  • Truco en línea de la Universidad Católica
  • T (ruco)
  • OL (online)
  • UCA (Universidad Católica)
  • Arquitectura
  • cliente/servidor
  • Componentes principales
  • Proceso servidor de solicitudes corriendo sobre
    protocolo TCP/IP
  • Cliente corriendo como Applet de Java en
    navegadores con esta capacidad
  • Lenguaje para ambos componentes Java

34
Arquitectura
35
El Toluca
36
Componentes principales de la arquitectura interna
Sala (Room)
Mesa (Table)
Juego (TrucoGame)
Cliente
CommunicatorClient
INTERNET
CommunicatorServer
Sala (Room)
Juego (TrucoGame)
Mesa (Table)
BD
Servidor
37
Comunicación entre Rooms
CommunicatorClient
INTERNET
CommunicatorServer
Sala (Room)
BD
Servidor
38
Comunicación entre Tables
Mesa (Table)
Cliente
CommunicatorClient
INTERNET
CommunicatorServer
Mesa (Table)
Servidor
39
Comunicación entre TrucoGames
Juego (TrucoGame)
Cliente
CommunicatorClient
INTERNET
CommunicatorServer
Juego (TrucoGame)
BD
Servidor
40
Protocolo común de Comunicaciónentre Componentes
Eventos - Interfaces
Cliente
TableListener
TrucoListener
RoomListener
TrucoEvent
RoomEvent
TableEvent
CommunicatorClient
41
Protocolo común de Comunicación Cliente-Servidor
Juego (TrucoGame) Java Bean
Representación XML
Cliente
CommunicatorClient
INTERNET
CommunicatorServer
Representación XML
BD
Servidor
42
Modalidad de trabajo
  • Grupos
  • Servidor
  • Chat Panel
  • Redes
  • Interfaz de Inicio
  • Interfaz de Juego
  • Game (engine)
  • Base de datos
  • Análisis y diseño en UML (OO)

43
Diagrama de clases principales
44
Diagrama de secuencia login
45
Diagrama de secuencia play
46
Lenguaje JAVA
  • Por qué JAVA?
  • Lenguaje que hizo posible que alumnos con menos
    experiencia OO formen parte del proyecto.
  • Extenso y sencillo API hace que los proyectos
    puedan ser desarrollados en tiempo relativamente
    corto
  • Bajo acoplamiento (buena integración entre
    componentes si las interfaces están bien
    definidas)
  • Ventajas del lenguaje

47
Orientación a Objetos
Programación Orientada a Objetos
48
Contenido de la clase de hoy
  • Introduccíón a la Orientación a objetos
  • Introducción a la Programación Orientada a
    Objetos

49
Ciclo de Vida de una Aplicación
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
50
La base Orientación a Objetos
  • Qué es?
  • Paradigma (Qué es un paradigma?)
  • Basado en objetos y clases
  • Aplicables al análisis, diseño y programación de
    una solución
  • Un sistema software es un conjunto de objetos que
    cooperan.

51
La base Orientación a Objetos
  • Los objetos poseen una funcionalidad (operaciones
    que son capaces de hacer o mensajes a los que son
    capaces de reaccionar).
  • En este curso enfocamos la aplicación de la
    orientación a objetos a la programación en java

52
Orientación a Objetos Historia
  • Cuándo surge?
  • Kristen Nygaard y su equipo (Noruega)
  • Simula I (61-64)
  • Primer reporte (65)
  • Simula 67 (67)
  • Desarrollo en el mundo
  • Delta (lenguaje no compilable, 73-75)
  • Smalltalk (mediados de los 70s)
  • C/Eiffel (desde los 80s)
  • Java (mediados de los 90s)
  • Objective C (mediados de los 90s)
  • C (2001)
  • Por qué se tardó tanto en expandir el uso de los
    lenguajes orientados a objeto?

53
Orientación a Objetos
Áreas de Aplicación
  • Simulaciones (65)
  • Programación en general (65)
  • Módulos (componentes) reusables de SoftWare (80s)
  • Desarrollo de sistemas (90s)
  • Aplicaciones para Internet (mediados de los 90s)

54
Programación orientada a objetos
  • Qué es?
  • Cómo se hacen los programas?
  • Paradigma orientado a objetos, aplicado a los
    lenguajes de programación
  • Algunos lenguajes
  • C - C - Objective C Java Delphi
    Smalltalk Simula Eiffel Delphi Python
    Ruby - etc.

55
Distintas formas de construcción de sistemas
software
  • Programación estructurada. (Imperativos)
  • C, Pascal, Modula.
  • Programación funcional.
  • Lisp, Cammel.
  • Programación lógica. (Declarativos)
  • Prolog.
  • Programación orientada a objetos.
  • Smalltalk, C, Java, C
  • Programación con agentes.

56
Contraste con otros paradigmas de programación
57
Programación orientada a objetos
Ventajas
  • Desarrollo más rápido
  • Incremento en la calidad
  • Mantenimiento más sencillo (Modularidad)
  • Los cambios son más sencillos de hacer
  • Reutilización de SoftWare
  • Sistemas que pueden evolucionar de una manera más
    conveniente y sencilla (Extensibilidad)
  • Reducción del riesgo en el desarrollo de sistemas
    complejos porque la integración es más simple
  • Naturalidad en la forma de encarar los problemas

58
POO Conceptos
  • Objeto
  • Mensaje
  • Clase
  • Herencia
  • Interfaz

Cómo traducir estos conceptos en código?
JAVA
59
Objeto
  • Qué es?
  • Clave para entender el paradigma orientado a
    objetos
  • Cualquier objeto de la vida real

60
(No Transcript)
61
Objeto Qué podemos representar?
  • Objetos reales
  • Casas, perros, gatos, sillas, mezas, clubes de
    fútbol, etc, etc.
  • Objetos abstractos
  • Eventos (Cambios de estado, cotización de
    productos, etc)
  • Desde el punto de vista de la programación,
    un
    objeto es una variable.

62
Objeto Esquema visual de un objeto en SOFTWARE
63
Objeto Una bicicleta modelada con un objeto de
SOFTWARE
64
Objeto Beneficios
  • Modularidad
  • Information hiding (Encapsulación)

65
Mensaje
  • Qué es?
  • Formas de comunicación entre objetos
  • Un objeto de una clase
  • responde a cualquiera de los mensajes definidos
    en la clase. Ej
  • float x unRectangulo.getX()
    unRectangulo.Mover(0, 20) unRectangulo.Dibujar(
    )

66
Mensaje Alguien enviando mensajes a una bicicleta
67
Mensaje Beneficios
  • El comporamiento de un objeto se expresa a través
    de sus métodos (en vez de acceso directo a sus
    variables)
  • El paso de mensajes soporta TODA la interacción
    entre objetos
  • Los objetos no necesitan estar siquiera en la
    misma máquina para comunicarse entre sí

68
Clase
Agrupador de objetos que comparten
características y comportamientos, describe un
conjunto de ejemplares con propiedades y
comportamientos similares.
Qué es?
69
(No Transcript)
70
Clase Esquema
71
Clase Objetos como Instancias
Los objetos son instanciaciones de las clases
72
Clase
  • Una clase se describe por
  • Nombre.
  • Interfaz Operaciones (métodos, mensajes) que
    manipulan el estado.
  • Conjunto de atributos (datos) que definen el
    estado.
  • Desde el punto de vista de la programación una
    clase es un tipo de dato (Ejs. Rectangulo,
    Lista, Cola, NumeroComplejo, etc.).

73
Clase Cómo son diferentes a los objetos?
  • Ustedes...

74
Herencia
  • Qué es?
  • Una relación entre Clases que permite
    Generalizar o Especializar las mismas
  • Posibilidad de definir nuevas clases a partir de
    clases existentes compartiendo ciertas
    características.

75
Herencia
  • Heredar (inherit)
  • Redefinir (override)
  • Crear una jerarquía

76
Herencia Beneficios
  • La subclases proveen especialización a los
    elementos básicos comunes provistos por las
    super-clases
  • La clase hija puede extender o redefinir
    (override) el comportamiento de la clase padre.
  • Extensión Se añaden operaciones y/o atributos
    (ej. Volar en el caso de Ave).
  • Redefinición Se cambia la implementación de
    alguna operación heredada (o se le da una
    implementación si no la tenía).

77
Herencia Beneficios
  • En java, se dice que las clases EXTIENDEN a su
    super-clase o clase padre
  • Ej.
  • Integer extends Number
  • Number extends Object

78
Interfaces
  • Qué es?
  • Traducción literal dispositivo que utilizan dos
    entidades para interactuar.
  • En POO, las interfaces son utilizadas por los
    objetos no relacionados para interactuar
  • En otros lenguajes OO a las interfaces se las
    suele llamar protocolos
  • En java, se dice que las clases IMPLEMENTAN
    interfaces

79
Diferencia entre los conceptos de clase e
interfaz
  • El concepto de clase hace referencia a los
    atributos y a las operaciones, junto con su
    implementación.
  • El concepto de interfaz hace referencia sólo a
    los prototipos de las operaciones visibles.

80
Muchas gracias por su atención!!!!
Write a Comment
User Comments (0)
About PowerShow.com