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.
1. NIVEL 4
ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1)
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
2. NIVEL 4
REDES SOCIALES
mjvc007@hotmail.com
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
3. 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
4. NIVEL 4
CASOS DE ESTUDIO
1 Caso de estudio: Un Club Social
5. NIVEL 4
CASOS DE ESTUDIO
2 Caso de estudio: Brazo Mecánico
6. NIVEL 4
HOJAS DE TRABAJO
1 Hoja de trabajo: Venta de Boletas en una Sala de Cine
7. NIVEL 4
HOJAS DE TRABAJO
2 Hoja de trabajo: Un Sistema de Préstamos
9. 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
10. 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?
11. 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 .
12. 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.
13. 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).
14. 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.
15. NIVEL 4
MANEJO DE EXCEPCIONES
En el siguiente caso el método NO genera ninguna excepción:
16. 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.
17. 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.
19. 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.
20. 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.
21. 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.
22. NIVEL 4
CONTRATOS
Los contratos solucionan los siguientes problemas:
¿Qué se debe ¿Qué no se
suponer al debe suponer
utilizar un al utilizar un
método? método?
Contratos
23. NIVEL 4
CONTRATOS
Contrato entre dos personas
Quién escribe o Quién utiliza o usa
implementa el el método necesita
cuerpo del método saber cuáles son las
puede hacer ciertas suposiciones que
suposiciones sobre hizo quién lo
los parámetros o los construyó, sin
atributos, y esto necesidad de entrar a
puede afectar en estudiar la
algunos casos el implementación.
resultado.
24. NIVEL 4
CONTRATOS
Contrato entre dos personas
Quién escribe o Quién utiliza o usa
implementa el el método necesita
cuerpo del método saber cuáles son las
puede hacer ciertas suposiciones que
suposiciones sobre hizo quién lo
los parámetros o los construyó, sin
atributos, y esto necesidad de entrar a
puede afectar en estudiar la
algunos casos el implementación.
resultado.
En ocasiones debe
Dice qué se supone hacer algunas
en el método validaciones antes
de usar el método
25. 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 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.
26. 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.
27. 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”