APO1 - Presentacion nivel 4

30
ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1) NIVEL 4 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 4 del curso "ISIS-1204 Algorítmia y Programación por Objetos 1" (APO1) de la Universidad de los Andes, Bogotá, Colombia.

Transcript of APO1 - Presentacion nivel 4

Page 1: APO1 - Presentacion nivel 4

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

NIVEL 4

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: APO1 - Presentacion nivel 4

[email protected]

http://twitter.com/mariocloud

http://linkedin.com/in/mariojosevillamizarcano

REDES SOCIALES

NIVEL 4

Page 3: APO1 - Presentacion 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

Page 4: APO1 - Presentacion nivel 4

CASOS DE ESTUDIO

NIVEL 4

1 Caso de estudio: Un Club Social

Page 5: APO1 - Presentacion nivel 4

CASOS DE ESTUDIO

NIVEL 4

2 Caso de estudio: Brazo Mecánico

Page 6: APO1 - Presentacion nivel 4

HOJAS DE TRABAJO

1 Hoja de trabajo: Venta de Boletas en una Sala de Cine

NIVEL 4

Page 7: APO1 - Presentacion nivel 4

HOJAS DE TRABAJO

2 Hoja de trabajo: Un Sistema de Préstamos

NIVEL 4

Page 8: APO1 - Presentacion nivel 4

CASO DE ESTUDIO – EL CLUB DE SOCIOS

NIVEL 4

Page 9: APO1 - Presentacion 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

Page 10: APO1 - Presentacion 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

Page 11: APO1 - Presentacion 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

Page 12: APO1 - Presentacion 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

Page 13: APO1 - Presentacion 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

Page 14: APO1 - Presentacion 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

Page 15: APO1 - Presentacion nivel 4

MANEJO DE EXCEPCIONES

En el siguiente caso el método NO genera ninguna excepción:

NIVEL 4

Page 16: APO1 - Presentacion 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

Page 17: APO1 - Presentacion 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

Page 18: APO1 - Presentacion nivel 4

PREGUNTAS

NIVEL 4

Page 19: APO1 - Presentacion 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

Page 20: APO1 - Presentacion 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

Page 21: APO1 - Presentacion 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

Page 22: APO1 - Presentacion 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?

Page 23: APO1 - Presentacion nivel 4

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

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

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

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

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

DOCUMENTACIÓN JavaDoc

NIVEL 4

Page 29: APO1 - Presentacion nivel 4

DOCUMENTACIÓN JavaDoc

NIVEL 4

Page 30: APO1 - Presentacion nivel 4

PREGUNTAS

NIVEL 4