apo1 - presentacion nivel 4
DESCRIPTION
Esta es la presentación del Nivel 4 del curso "ISIS-1204 Algorítmia y Programación por Objetos 1" (APO1) de la Universidad de los Andes, Bogotá, Colombia.TRANSCRIPT
ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1)
NIVEL 4
Mario José Villamizar Cano
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
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
REDES SOCIALES
NIVEL 4
TEMAS PRINCIPALES
Definición de contratos
Uso de la clase Exception de java para manejo de problemas asociados a la
violación de contratos.
Técnicas simples para la asignación de responsabilidades de las clases
NIVEL 4
CASOS DE ESTUDIO
NIVEL 4
1 Caso de estudio: Un Club Social
CASOS DE ESTUDIO
NIVEL 4
2 Caso de estudio: Brazo Mecánico
HOJAS DE TRABAJO
1 Hoja de trabajo: Venta de Boletas en una Sala de Cine
NIVEL 4
HOJAS DE TRABAJO
2 Hoja de trabajo: Un Sistema de Préstamos
NIVEL 4
CASO DE ESTUDIO – EL CLUB DE SOCIOS
NIVEL 4
REQUERIMIENTOS FUNCIONALES – EL CLUB DE SOCIOS
R1 - Registrar una persona autorizada por un socio
R2 - Pagar una factura
R3 - Afiliar un socio al club
R4 - Registrar un consumo en la cuenta de un socio
NIVEL 4
TÉCNICA DEL EXPERTO
Nos indica quién es el responsable de hacer algo.
Las reglas del mundo son las que nos indican cómo cumplir con dicha
responsabilidad.
¿Quién es el responsable de adicionar un nuevo socia al club?
¿Quién es el responsable de registrar una persona autorizada por un socio?
¿Quién es responsable de registrar una factura a un socio?
NIVEL 4
DESCOMPOSICIÓN DE REQUERIMIENTOS
Muchos requerimientos funcionales requieren más de un paso para poder
satisfacerlos.
Se hace necesario definir los métodos para satisfacerlos, y asignar los
métodos a cada una de las clases responsables.
Se desea pagar una factura para esto se debe:
• Buscar si el socio que va a pagar la factura existe (Clase Club).
• Si el socio existe obtener todas sus facturas pendientes (Socio).
• Pagar la factura seleccionada .
NIVEL 4
MANEJO DE EXCEPCIONES
Una excepción se puede ver como la indicación de que se produjo un error
en el programa.
Las excepciones se producen cuando la ejecución de un programa no termina
correctamente sino que termina de manera excepcional como consecuencia de
una situación no esperada.
Ejemplos de situaciones anormales:
Cuando se accede a un objeto que no ha sido inicializado.
Cuando se accede a una posición de un arreglo o vector que no existe.
Cuando se trata de acceder a un objeto que tiene el valor de null.
NIVEL 4
MANEJO DE EXCEPCIONES
Si no son manejadas correctamente al momento de generarse una excepción
el programa termina abruptamente su ejecución y el usuario no sabe que fue lo
que sucedió (Mensaje rojos en la consola de Eclipse).
NIVEL 4
MANEJO DE EXCEPCIONES
Cuando durante la ejecución de un método el computador detecta un error,
crea un objeto de una clase especial para representarlo, llamada Exception, el
cual incluye toda la información del problema.
Luego dispara o lanza dicho objeto (throw en inglés) con la esperanza de
que alguien lo atrape y decida como recuperarse del error. Si nadie lo atrapa el
programa termina y en la consola aparecerá toda la información del error.
Manejar una excepción significa que se debe atrapar y manejar antes de que
el programa deje de funcionar, para ello se debe realizar una acción para
recuperarse del error y mostrarle de una manera amigable al usuario el problema
que se está teniendo.
NIVEL 4
MANEJO DE EXCEPCIONES
En el siguiente caso el método NO genera ninguna excepción:
NIVEL 4
MANEJO DE EXCEPCIONES
Cuando en un método se puede disparar una excepción en caso de que se
detecte una situación anormal, esta indicación debe formar parte de la signatura
del método mediante la instrucción throws Exception. Cuando queremos lanzar
una excepción utilizamos la instrucción throw.
NIVEL 4
MANEJO DE EXCEPCIONES
Cuando desde la interfaz se llama al método afiliarSocio de la clase Club se
debe atrapar y manejar la excepción, para ello se utilizan las sentencias try-
catch.
NIVEL 4
PREGUNTAS
NIVEL 4
CONTRATOS
En la clase Club crear el método buscarSocio. Este método recibe como
parámetro la cédula del socio y retorna el socio. En caso de que no haya un
socio con esta cédula el método retorna null. No hacer ningún tipo de
validación.
En la clase Club adicionar el método afiliarSocio. Este método recibe como
parámetros el nombre y la cédula del nuevo socio, y no retorna nada. No hacer
ningún tipo de validación.
NIVEL 4
CONTRATOS
En la clase Club crear el método buscarSocio. Este método recibe como
parámetro la cédula del socio y retorna el socio. En caso de que no haya un
socio con esta cédula el método retorna null. Hacer todas las validaciones
posibles:
Que la cédula del socio sea diferente de null.
Que la cédula del socio no sea una cadena vacía.
Que el vector de socios esté inicializado.
NIVEL 4
CONTRATOS
En la clase Club adicionar el método afiliarSocio. Este método recibe como
parámetros el nombre y la cédula del nuevo socio, y no retorna nada. Hacer
todas las validaciones posibles.
Que la cédula del nuevo socio sea diferente de null.
Que la cédula del nuevo socio no sea una cadena vacía.
Que el nombre del nuevo socio sea diferente de null.
Que el nombre del nuevo socio no sea una cadena vacía.
Que el vector de socios esté inicializado.
Que el socio no este registrado.
NIVEL 4
CONTRATOS
Los contratos solucionan los siguientes problemas:
NIVEL 4
Contratos
¿Qué se debe suponer al utilizar un método?
¿Qué no se debe suponer al utilizar un
método?
CONTRATOS
Contrato entre dos personas
NIVEL 4
Quién escribe o
implementa el
cuerpo del método
puede hacer ciertas
suposiciones sobre
los parámetros o los
atributos, y esto
puede afectar en
algunos casos el
resultado.
Quién utiliza o usa
el método necesita
saber cuáles son las
suposiciones que
hizo quién lo
construyó, sin
necesidad de entrar a
estudiar la
implementación.
CONTRATOS
Contrato entre dos personas
NIVEL 4
Quién escribe o
implementa el
cuerpo del método
puede hacer ciertas
suposiciones sobre
los parámetros o los
atributos, y esto
puede afectar en
algunos casos el
resultado.
Quién utiliza o usa
el método necesita
saber cuáles son las
suposiciones que
hizo quién lo
construyó, sin
necesidad de entrar a
estudiar la
implementación.
Dice qué se supone
en el método
En ocasiones debe
hacer algunas
validaciones antes
de usar el método
CONTRATOS
El contrato de un método por lo tanto establece bajo qué condiciones el
método tendrá éxito y cual será el resultado una vez que finalice la ejecución.
Las precondición es aquello que se exige para poder resolver el problema
planteado. Se expresan como condiciones que deben ser verdaderas para que el
método se ejecute con éxito. Estas precondiciones pueden referirse a:
El estado del objeto que va a ejecutar el método (valor de sus atributos)
El estado de algún elemento del mundo con el cual el objeto tenga una
asociación.
Condiciones sobre los parámetros de entrada entregados al método.
NIVEL 4
CONTRATOS
El contrato de un método por lo tanto establece bajo qué condiciones el
método tendrá éxito y cual será el resultado una vez que finalice la ejecución.
Las postcondición describe el resultado obtenido después de la ejecución
del método. Se expresan como un conjunto de condiciones que deben ser
verdaderas después de que el método ha sido ejecutado, siempre y cuando el
método no haya lanzado una excepción. Estas postcondiciones hacen referencia
referirse a:
Una descripción del valor de retorno.
Una descripción del estado del objeto después de que el método ha sido
ejecutado.
NIVEL 4
CONTRATOS
Las precondiciones se ve como el conjunto de condiciones que impone aquel
que desarrolla el método y las postcondiciones como los compromisos que
asume.
“Si todas las condiciones de la precondición se cumplen
antes de llamar al método, éste asume el compromiso de
llegar a cumplir todas las condiciones incluidas en la
postcondición”
NIVEL 4
DOCUMENTACIÓN JavaDoc
NIVEL 4
DOCUMENTACIÓN JavaDoc
NIVEL 4
PREGUNTAS
NIVEL 4