APO1 - Presentacion nivel 4
-
Upload
mario-jose-villamizar-cano -
Category
Education
-
view
2.635 -
download
8
description
Transcript of APO1 - Presentacion nivel 4
![Page 1: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/1.jpg)
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
![Page 2: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/2.jpg)
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
REDES SOCIALES
NIVEL 4
![Page 3: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/3.jpg)
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
![Page 4: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/4.jpg)
CASOS DE ESTUDIO
NIVEL 4
1 Caso de estudio: Un Club Social
![Page 5: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/5.jpg)
CASOS DE ESTUDIO
NIVEL 4
2 Caso de estudio: Brazo Mecánico
![Page 6: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/6.jpg)
HOJAS DE TRABAJO
1 Hoja de trabajo: Venta de Boletas en una Sala de Cine
NIVEL 4
![Page 7: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/7.jpg)
HOJAS DE TRABAJO
2 Hoja de trabajo: Un Sistema de Préstamos
NIVEL 4
![Page 8: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/8.jpg)
CASO DE ESTUDIO – EL CLUB DE SOCIOS
NIVEL 4
![Page 9: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/9.jpg)
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
![Page 10: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/10.jpg)
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
![Page 11: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/11.jpg)
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
![Page 12: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/12.jpg)
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
![Page 13: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/13.jpg)
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
![Page 14: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/14.jpg)
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
![Page 15: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/15.jpg)
MANEJO DE EXCEPCIONES
En el siguiente caso el método NO genera ninguna excepción:
NIVEL 4
![Page 16: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/16.jpg)
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
![Page 17: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/17.jpg)
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
![Page 18: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/18.jpg)
PREGUNTAS
NIVEL 4
![Page 19: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/19.jpg)
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
![Page 20: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/20.jpg)
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
![Page 21: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/21.jpg)
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
![Page 22: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/22.jpg)
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?
![Page 23: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/23.jpg)
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.
![Page 24: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/24.jpg)
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
![Page 25: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/25.jpg)
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
![Page 26: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/26.jpg)
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
![Page 27: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/27.jpg)
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
![Page 28: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/28.jpg)
DOCUMENTACIÓN JavaDoc
NIVEL 4
![Page 29: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/29.jpg)
DOCUMENTACIÓN JavaDoc
NIVEL 4
![Page 30: APO1 - Presentacion nivel 4](https://reader038.fdocuments.mx/reader038/viewer/2022102621/5595a2a71a28ab34748b45e3/html5/thumbnails/30.jpg)
PREGUNTAS
NIVEL 4