APO2 - Presentacion nivel 8

71
ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2) NIVEL 8 Mario José Villamizar Cano [email protected] Oficina ML-637 http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php Grupo de Tecnologías de Información y Comunicación (COMIT) Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá D.C., Colombia

description

Esta es la presentación del Nivel 8 del curso "ISIS-1205 Algorítmia y Programación por Objetos 2" (APO2) de la Universidad de los Andes, Bogotá, Colombia.

Transcript of APO2 - Presentacion nivel 8

Page 1: APO2 - Presentacion nivel 8

ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2)

NIVEL 8

Mario José Villamizar Cano

[email protected]

Oficina ML-637

http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php

Grupo de Tecnologías de Información y Comunicación (COMIT)

Departamento de Ingeniería de Sistemas y Computación

Universidad de los Andes, Bogotá D.C., Colombia

Page 2: APO2 - Presentacion nivel 8

[email protected]

http://twitter.com/mariocloud

http://linkedin.com/in/mariojosevillamizarcano

REDES SOCIALES

NIVEL 8

Page 3: APO2 - Presentacion nivel 8

Caso de estudio 1 – Explorados de archivos

Expresiones condicionales

Manipulación básica de archivos

Lectura de archivos

Manipulación de cadenas de caracteres

Escritura de archivos

Pruebas unitarias con archivos

Componente JTextArea

NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN

NIVEL 8

Page 4: APO2 - Presentacion nivel 8

Caso de estudio 2 – Tienda virtual de discos

Diseño e implementación de excepciones

Reportes y otras salidas en archivos

Importación de datos desde archivos

Construcción de pruebas unitarias

Persistencia simple por serialización

Controlar la salida de un programa

Manejo de logs

Componente JComboBox

Uso del depurador de Eclipse

NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN

NIVEL 8

Page 5: APO2 - Presentacion nivel 8

CASOS DE ESTUDIO

Caso de estudio 1: Explorados de archivos

NIVEL 8

Page 6: APO2 - Presentacion nivel 8

CASOS DE ESTUDIO

Caso de estudio 2: Tienda virtual de discos

NIVEL 8

Page 7: APO2 - Presentacion nivel 8

HOJAS DE TRABAJO

Hoja de trabajo 1: Campeonato de fórmula 1

NIVEL 8

Page 8: APO2 - Presentacion nivel 8

HOJAS DE TRABAJO

Hoja de trabajo 2: Mundial de fútbol

NIVEL 8

Page 9: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Interfaz Gráfica

NIVEL 8

Page 10: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Requerimientos funcionales.

NIVEL 8

Page 11: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Requerimientos funcionales.

NIVEL 8

Page 12: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Requerimientos funcionales.

NIVEL 8

Page 13: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Modelo del Mundo

NIVEL 8

Page 14: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Modelo de la Interfaz

NIVEL 8

Page 15: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Modelo de las Pruebas

NIVEL 8

Page 16: APO2 - Presentacion nivel 8

EXPRESIONES CONDICIONALES EN JAVA

NIVEL 8

Page 17: APO2 - Presentacion nivel 8

EXPRESIONES CONDICIONALES EN JAVA

NIVEL 8

Page 18: APO2 - Presentacion nivel 8

MANIPULACIÓN BÁSICA DE ARCHIVOS

NIVEL 8

Page 19: APO2 - Presentacion nivel 8

MANIPULACIÓN BÁSICA DE ARCHIVOS

Para representar un archivo o directorio en Java se utiliza la clase File.

Métodos de la clase File:

length() getAbsolutePath( ) getName( )

lastModified( ) createNewFile( ) listFiles( )

isDirectory( ) isFile( )

Constante: File.separator

NIVEL 8

Page 20: APO2 - Presentacion nivel 8

MANIPULACIÓN BÁSICA DE ARCHIVOS

NIVEL 8

Page 21: APO2 - Presentacion nivel 8

LECTURA DE ARCHIVOS

Se utilizan las clases FileReader y BufferedReader:

FileReader: Lee el archivo como una fuente de caracteres.

BufferedReader: Lee el archivo como una secuencia de caracteres

(String).

NIVEL 8

Page 22: APO2 - Presentacion nivel 8

LECTURA DE ARCHIVOS

NIVEL 8

Clase Método Excepción Causa

File File(nombreCompleto) NullPointerException El nombre completo del archivo o directorio es nulo

File File(directorio, nombreCorto)

NullPointerException El nombre corto del archivo o directorio es nulo

File createNewFile( ) IOException Error al crear el archivo

FileReader FileReader (File) FileNotFoundException No existe el archivo

FileReader close( ) IOException Error al cerrar la fuente de caracteres

BufferedReader readLine( )

IOException Error al leer el archivo

BufferedReader close( ) IOException Error al cerrar la fuente de cadenas

Page 23: APO2 - Presentacion nivel 8

LECTURA DE ARCHIVOS

NIVEL 8

Clase Método Excepción Causa

File delete() SecurityException Problemas debido a permisos del archivo o directorio

File mkdir() SecurityException Problemas debido a permisos del directorio

File mkdirs() SecurityException Problemas debido a permisos del directorio

File exists() SecurityException Problemas debido a permisos del archivo o directorio

FileReader renameTo( File) SecurityException Problemas debido a permisos del archivo o directorio

BufferedReader setReadOnly( ) SecurityException Problemas debido a permisos del archivo o directorio

Page 24: APO2 - Presentacion nivel 8

MANIPULACIÓN DE CADENAS DE CARACTERES

Métodos de la clase String:

trim( )

toLowerCase()

toUpperCase()

indexOf( caracter )

lastIndexOf( caracter )

NIVEL 8

Page 25: APO2 - Presentacion nivel 8

MANIPULACIÓN DE CADENAS DE CARACTERES

Métodos de la clase String:

subString( inicio, fin ). IndexOutOfBoundException.

La posición de inicio se incluye.

La posición de fin se excluye.

subString( inicio ). IndexOutOfBoundException.

startsWith( prefijo)

endsWith( sufijo )

split( separador )

replace( car1, car2 )

replace( cadena1, cadena2 )

NIVEL 8

Page 26: APO2 - Presentacion nivel 8

MANIPULACIÓN DE CADENAS DE CARACTERES

Ejemplo de la Clase Directorio:

NIVEL 8

Page 27: APO2 - Presentacion nivel 8

ESCRITURA DE ARCHIVOS

Se utilizan las clases PrintWriter :

Los métodos print( cadena ) y flush( ) también pueden ser utilizados.

NIVEL 8

Page 28: APO2 - Presentacion nivel 8

ESCRITURA DE ARCHIVOS

Ejemplo de uso del PrintWriter :

NIVEL 8

Page 29: APO2 - Presentacion nivel 8

COMPONENTE JTextArea

NIVEL 8

Page 30: APO2 - Presentacion nivel 8

PREGUNTAS

NIVEL 8

Page 31: APO2 - Presentacion nivel 8

HOJA DE TRABAJO

NIVEL 8

Page 32: APO2 - Presentacion nivel 8

PRUEBAS UNITARIAS CON ARCHIVOS

Estas pruebas requieren de un escenario físico, ya que hay que crear

archivos y directorios:

NIVEL 8

Page 33: APO2 - Presentacion nivel 8

PRUEBAS UNITARIAS CON ARCHIVOS

Estas pruebas requieren de un escenario físico, ya que hay que crear

archivos y directorios:

NIVEL 8

Page 34: APO2 - Presentacion nivel 8

PRUEBAS UNITARIAS CON ARCHIVOS

Construcción de un escenario de pruebas:

NIVEL 8

Page 35: APO2 - Presentacion nivel 8

PRUEBAS UNITARIAS CON ARCHIVOS

Creación de una prueba:

NIVEL 8

Page 36: APO2 - Presentacion nivel 8

PRUEBAS UNITARIAS CON ARCHIVOS

Creación de una prueba:

NIVEL 8

Page 37: APO2 - Presentacion nivel 8

CASOS DE ESTUDIO

Caso de estudio 2: Tienda virtual de discos

NIVEL 8

Page 38: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Modelo del Mundo

NIVEL 8

Page 39: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Modelo de las Pruebas

NIVEL 8

Page 40: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

Page 41: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

Page 42: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

Page 43: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

Page 44: APO2 - Presentacion nivel 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos NO funcionales.

NIVEL 8

Page 45: APO2 - Presentacion nivel 8

DISEÑO E IMPLEMENTACIÓN DE LAS EXCEPCIONES

En el programa se deben poder manejar tres nuevo tipos de

excepciones.

ElementoExisteException:

En caso de que ya exista un disco en la tienda con ese nombre.

En caso de que ya exista en el disco una canción con ese nombre.

Interesa:

Nombre del disco o canción que se desea agregar.

ArchivoVentaException:

El formato del archivo de pedidos es inválido.

Error de lectura del archivo con el pedido de canciones.

Interesa:

Causa del error.

Número de canciones que pudieron ser vendidas.

NIVEL 8

Page 46: APO2 - Presentacion nivel 8

DISEÑO E IMPLEMENTACIÓN DE LAS EXCEPCIONES

En el programa se deben poder manejar tres nuevo tipos de

excepciones.

PersistenciaException:

Error al leer o escribir el archivo con la información del estado del

modelo del mundo.

Interesa:

Causa del error.

NIVEL 8

Page 47: APO2 - Presentacion nivel 8

DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR

EXCEPCIONES

NIVEL 8

Page 48: APO2 - Presentacion nivel 8

DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR

EXCEPCIONES

NIVEL 8

Page 49: APO2 - Presentacion nivel 8

DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR

EXCEPCIONES

NIVEL 8

Page 50: APO2 - Presentacion nivel 8

COMO LANZAR VARIOS TIPOS DE EXCEPCIONES

NIVEL 8

COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES

Page 51: APO2 - Presentacion nivel 8

COMO LANZAR VARIOS TIPOS DE EXCEPCIONES

NIVEL 8

COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES

Page 52: APO2 - Presentacion nivel 8

REPORTES Y OTRAS SALIDAS EN ARCHIVOS

NIVEL 8

Page 53: APO2 - Presentacion nivel 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

El pedido del cliente está en un archivo, cuyo formato se ilustra en la

siguiente figura.

Page 54: APO2 - Presentacion nivel 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

Page 55: APO2 - Presentacion nivel 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

Page 56: APO2 - Presentacion nivel 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

Page 57: APO2 - Presentacion nivel 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

Page 58: APO2 - Presentacion nivel 8

CASOS DE PRUEBA

NIVEL 8

Las pruebas regularmente están enfocadas en verificar que las

nuevas excepciones se lanzan adecuadamente.

Page 59: APO2 - Presentacion nivel 8

PERSISTENCIA SIMPLE POR SERIALIZACIÓN

NIVEL 8

Sirve para guardar objetos en un archivo.

Page 60: APO2 - Presentacion nivel 8

PERSISTENCIA SIMPLE POR SERIALIZACIÓN

NIVEL 8

Las clases que deben ser serializadas deben implementar la

interfaz Serializable.

Page 61: APO2 - Presentacion nivel 8

PERSISTENCIA SIMPLE POR SERIALIZACIÓN

NIVEL 8

Sirve para restaurar un objetos almacenado en un archivo.

Page 62: APO2 - Presentacion nivel 8

CONTROLAR LA SALIDA DE UN PROGRAMA

NIVEL 8

Para que cuando el usuario de clic en la X de cerrar se hagan

ciertas validaciones y/u operaciones.

Page 63: APO2 - Presentacion nivel 8

CONTROLAR LA SALIDA DE UN PROGRAMA

NIVEL 8

Para que cuando el usuario de clic en la X de cerrar se hagan

ciertas validaciones y/u operaciones.

Page 64: APO2 - Presentacion nivel 8

ARCHIVO DE LOGS

NIVEL 8

Sirve para llevar una traza de todos los problemas encontrados

en el manejo de la persistencia.

Page 65: APO2 - Presentacion nivel 8

COMPONENTE JComboBox

NIVEL 8

Page 66: APO2 - Presentacion nivel 8

COMPONENTE JComboBox

NIVEL 8

Page 67: APO2 - Presentacion nivel 8

COMPONENTE JComboBox

NIVEL 8

Page 68: APO2 - Presentacion nivel 8

COMPONENTE JComboBox

NIVEL 8

Page 69: APO2 - Presentacion nivel 8

USO DEL DEPURADOR DE ECLIPSE

NIVEL 8

Page 70: APO2 - Presentacion nivel 8

PREGUNTAS

NIVEL 8

Page 71: APO2 - Presentacion nivel 8

HOJA DE TRABAJO

NIVEL 8