APO2 - Presentacion nivel 8

Post on 19-Jun-2015

3.157 views 1 download

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

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

NIVEL 8

Mario José Villamizar Cano

mj.villamizar24@uniandes.edu.co

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

mjvc007@hotmail.com

http://twitter.com/mariocloud

http://linkedin.com/in/mariojosevillamizarcano

REDES SOCIALES

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

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

CASOS DE ESTUDIO

Caso de estudio 1: Explorados de archivos

NIVEL 8

CASOS DE ESTUDIO

Caso de estudio 2: Tienda virtual de discos

NIVEL 8

HOJAS DE TRABAJO

Hoja de trabajo 1: Campeonato de fórmula 1

NIVEL 8

HOJAS DE TRABAJO

Hoja de trabajo 2: Mundial de fútbol

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Interfaz Gráfica

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Modelo del Mundo

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Modelo de la Interfaz

NIVEL 8

CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS

Modelo de las Pruebas

NIVEL 8

EXPRESIONES CONDICIONALES EN JAVA

NIVEL 8

EXPRESIONES CONDICIONALES EN JAVA

NIVEL 8

MANIPULACIÓN BÁSICA DE ARCHIVOS

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

MANIPULACIÓN BÁSICA DE ARCHIVOS

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

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

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

MANIPULACIÓN DE CADENAS DE CARACTERES

Métodos de la clase String:

trim( )

toLowerCase()

toUpperCase()

indexOf( caracter )

lastIndexOf( caracter )

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

MANIPULACIÓN DE CADENAS DE CARACTERES

Ejemplo de la Clase Directorio:

NIVEL 8

ESCRITURA DE ARCHIVOS

Se utilizan las clases PrintWriter :

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

NIVEL 8

ESCRITURA DE ARCHIVOS

Ejemplo de uso del PrintWriter :

NIVEL 8

COMPONENTE JTextArea

NIVEL 8

PREGUNTAS

NIVEL 8

HOJA DE TRABAJO

NIVEL 8

PRUEBAS UNITARIAS CON ARCHIVOS

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

archivos y directorios:

NIVEL 8

PRUEBAS UNITARIAS CON ARCHIVOS

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

archivos y directorios:

NIVEL 8

PRUEBAS UNITARIAS CON ARCHIVOS

Construcción de un escenario de pruebas:

NIVEL 8

PRUEBAS UNITARIAS CON ARCHIVOS

Creación de una prueba:

NIVEL 8

PRUEBAS UNITARIAS CON ARCHIVOS

Creación de una prueba:

NIVEL 8

CASOS DE ESTUDIO

Caso de estudio 2: Tienda virtual de discos

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Modelo del Mundo

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Modelo de las Pruebas

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos funcionales.

NIVEL 8

CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS

Requerimientos NO funcionales.

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

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

DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR

EXCEPCIONES

NIVEL 8

DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR

EXCEPCIONES

NIVEL 8

DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR

EXCEPCIONES

NIVEL 8

COMO LANZAR VARIOS TIPOS DE EXCEPCIONES

NIVEL 8

COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES

COMO LANZAR VARIOS TIPOS DE EXCEPCIONES

NIVEL 8

COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES

REPORTES Y OTRAS SALIDAS EN ARCHIVOS

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.

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

IMPORTACIÓN DE DATOS DESDE ARCHIVOS

NIVEL 8

CASOS DE PRUEBA

NIVEL 8

Las pruebas regularmente están enfocadas en verificar que las

nuevas excepciones se lanzan adecuadamente.

PERSISTENCIA SIMPLE POR SERIALIZACIÓN

NIVEL 8

Sirve para guardar objetos en un archivo.

PERSISTENCIA SIMPLE POR SERIALIZACIÓN

NIVEL 8

Las clases que deben ser serializadas deben implementar la

interfaz Serializable.

PERSISTENCIA SIMPLE POR SERIALIZACIÓN

NIVEL 8

Sirve para restaurar un objetos almacenado en un archivo.

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.

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.

ARCHIVO DE LOGS

NIVEL 8

Sirve para llevar una traza de todos los problemas encontrados

en el manejo de la persistencia.

COMPONENTE JComboBox

NIVEL 8

COMPONENTE JComboBox

NIVEL 8

COMPONENTE JComboBox

NIVEL 8

COMPONENTE JComboBox

NIVEL 8

USO DEL DEPURADOR DE ECLIPSE

NIVEL 8

PREGUNTAS

NIVEL 8

HOJA DE TRABAJO

NIVEL 8