definición y cumplimiento de responsabilidades giovanni hernández p. nivel 4

40
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Upload: maria-rosario-carolina-miranda-maldonado

Post on 24-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Definición y cumplimiento de responsabilidades

Giovanni Hernández P.Nivel 4

Page 2: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Contrato entre dos sujetos: el que lo implementa y el que lo usa.

Necesito que me adicione este libro al catálogo. No he

verificado si ya existe ahí. El libro esta en buen estado

Ok. Yo lo adiciono si no esta en el catálogo. Si ya está le informo para que Usted decida que

hacer

Page 3: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Contrato de un método

Contrato de un método

Acuerdo entre quien

implementa el método y quien

lo usa

Método

Signatura del métodoSe establece

claramente

Condiciones para definir los resultados

Page 4: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Caso de estudio No 1

Club social

Page 5: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Caso de estudio No 1

• Comprensión de los requerimientos.• Comprensión del mundo del problema.• Definición de la arquitectura.

Page 6: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Comprensión de los requerimientos

Page 7: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Comprensión del mundo del problema

Un club tiene muchos socios

Un socio tiene muchas facturas Un socio puede

tener muchas personas

autorizadas

Solo se necesita el nombre de la

persona por lo cuál se representa con

String

Page 8: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Definición de la arquitectura

ClubSocioFactura

ClubTestSocioTest

Page 9: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Declaración de las clases

public class Club{}public class Socio{}public class Factura{}

Page 10: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidades

Técnica del experto

El dueño de la información es el

responsable

Permite que otros tengan accedan y

puedan pedir cambios en la información

Tiene en cuenta las reglas del mundo

Técnicas de asignación de responsabilidades

Técnica de descomposición de

requerimientos

Page 11: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de resposabilidades

Caso de estudio• Quíen es el responsable de agregar un nuevo

socio al club?• Quíen es responsible de registrar una persona

autorizada por un socio?

Page 12: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de resposabilidades

Page 13: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidades

Técnica de descomposición

de los requerimientos

Descomponer en sub-problemas

Identificar los pasos de invocación de

métodos

Asignar resposabilidades a las

clases

Técnicas de asignación de responsabilidades

Técnica del experto

Page 14: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidadesNombre R1-Pagar una factura

Resumen Se requiere pagar la factura de un socio

Entradas

SocioFactura a pagarResultados

Se ha cancelado la factura seleccionada.

Page 15: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidades

Descomposición del requerimiento1. Buscar si el socio que quiere pagar la factura

existe (buscar Socio)2. Si el socio existe, obtener todas las facturas

pendientes (darFacturas)3. Pagar la factura seleccionada (pagar Factura)

Page 16: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidadesNombre R2-Registrar una persona autorizada

Resumen Se requiere registrar una persona autorizada de un socio

Entradas

SocioNombre autorizadoResultados

Se ha registrado una persona autorizada a un socio.

Page 17: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidades

Descomposición del requerimiento1. Buscar si existe el socio a quien se le va agregar una

persona autorizada (buscarSocio)2. Dado el nombre de una persona, verificar si esa

persona ya pertenece al grupo de autorizados del socio (existeAutorizado)

3. Asociar con el socio una nueva persona autorizada (agregarAutorizado)

Page 18: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Asignación de responsabilidadesR2-Registrar una persona autorizada

Paso No 1. Localizar el socio buscarSocio()

Paso No 2. Verificar que la persona que se va a agregar no esta ya incluida

existeAutorizado()

Paso No 3. Agregar al socio el nombre dela persona autorizada

agregarAutorizado()

Page 19: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Taller no 1

Page 20: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Manejo de excepciones

Excepción en programación

Idacador de que existe un error en el

programa

Se produce cuando un método no termina

correctamente

Se produce por una acción inesperada en

un método

Programación

Codificación en programación

Page 21: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Manejo de excepciones

public void afiliarSocio(String cedula,String nombre) throws Exception{

…..}

Con esta declaración el método advierte a todos los que lo utilizan que puede producirse una excepción al utilizarlo.

Los métodos que hacen la invocación pueden capturar la excepción o dejarla.

Page 22: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Manejo de excepciones

Instrucción try-catchtry {

inst1;}catch (Exception e){

instr2;}

Si todo funciona bien no se ejecuta ninguna de las instrucciones catch.

Así se dice que cualquier excepción que se atrape se la asigna al objeto e de tipo Exception.

Se puede utilizar la variable e para pedir información sobre el error.

Page 23: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Manejo de excepciones

• La construcción de un objeto Exception y la instrucción throw

public void afiliarSocio(String cd, String nm) throws Exception{

// Revisa que no exista un socio con la misma cédulaSocio s = buscarSocio( cd );if ( s == null){

//Se crea el objeto socioSocio nuevoSocio = new Socio( cd, nm );// Se agrega el socio al clubsocios.add( nuevoSocio);

}else{

// Si el socio ya existia lanza la excepciónthrow new Exception( “El socio ya existe” );

}}

Page 24: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Manejo de excepciones

Flujo de control en el manejo de excepciones

public void m1(){ try { o1.m2(); } catch( …) { }}

public void m2() throws Exception{ o2.m3();}

public void m3() throws Exception{ o3.m4();}

public void m4() throws Exception{ …}Lanza la excepción

Dejar pasar la excepción

Atrapa la excepción y se recupera

Page 25: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Contrato de un método

Contrato de un método

Acuerdo entre quien

implementa el método y quien

lo usa

Método

Signatura del métodoSe establece

claramente

Condiciones para definir los resultados

Page 26: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Contrato de un métodopublic void afiliarSocio( String cedula, String nombre ) throws Exception

Antes de ejecutar el método:1. La lista de socios ya fue creada2. La cédula no es null , ni vacía3. No se ha verificado si ya existe un socio con esa cédula.4. El nombre no es null ni vacío.

Después de ejecutar el método, el resultado debe ser:5. Todo funciona bien y el socio se afilia al club.6. Se produjo un error y se informó del problema con una excepción.

Page 27: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Contrato de un método

Precondiciones y postcondicionesPrecondición: Aquello que se exige para poder resolver un

problema planteado a un método (Condiciones que se imponen al hacer el método).

Pueden referirse a:1. El estado de un objeto que va a ejecutar el método.2. El estado de algún elemento del mundo con el cual el objeto

tiene asociación.3. Condiciones sobre los parámetros de entrada entregados al

método.

Page 28: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Taller No 2Identificar precondición de un método

Page 29: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Contrato de un método

Precondiciones y postcondicionesPostcondición: Descripción del resultado obtenido después de

ejecutar un método (Compromiso que asume al hacer el método).

Pueden referirse a:1. Una descripción del valor de retorno.2. Una descripcion del estado del objeto después de haber

ejecutado el método.

Page 30: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Taller No 3Identificar precondición de un método

Page 31: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Preguntas

1. ¿Un método debe verificar en algún punto las condiciones que hacen parte de la precondición? – No.

2. ¿Qué lugar ocupan las excepciones en los contratos? – Únicamente lanza la excepción.

3. ¿Qué incluir en la precondición? – Condiciones fáciles de garantizar

4. ¿Por qué es inconveniente verificar todo dentro de un método invocado? – Por eficiencia.

Page 32: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• Hace parte de la documentación del método• Generar automáticamente la documentación

con Javadoc

• El contrato se expresa como un comentario en javadoc /** … */, inmediatamente antes del método.

Page 33: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• El contrato empieza con una descripción general del método

/** * Este método afilia un nuevo socio al club

Page 34: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• Precondiciones relacionados con el estado del objeto que ejecuta el método. Allí se incluye únicamente las restricciones y las relaciones que deben cumplir los atributos y los objetos con los cuales tiene una asociación.

* <b>pre:</b>La lista de socios esta inicializada (no es null). </br>

Page 35: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• Postcondiciones que hacen referencia al estado del objeto después de la ejecución del método. Allí se deben describir la modificación de los atributos y objetos asociados que pueden esperarse después de su ejecución.

* <b>post:</b>Se ha afiliado un nuevo socio al club con los datos dados. </br>

Page 36: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• Parámetros se describe los parámetros de entrada y las precondiciones asociadas con ellos. Para cada parámetro se debe utilizar la etiqueta @param seguido de nombre del parámetro, una descripción y las suposiciones que el método hace sobre el.

* @param cedula Es la cédula del nuevo socio. Cedula != null, cedula != “”* @param nombre Es el nombre del nuevo socio. nombre != null, cedula != “”

Page 37: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• Retorno se describe el valor de retorno que se devolverá como si fuera una variable. Para el retorno se utiliza la etiqueta @return.

Para el ejemplo, no tiene retorno

* @return

Page 38: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

• Excepciones se describe las excepciones que el método dispara. Se utiliza la etiqueta @throws seguida del tipo de excepción y una descripción de la situación en la que puede ser disparada.

* @throws Exception si un socio con la misma cédula ya estaba afiliado al club, dispara una excepción indicando que la nueva afiliación no se puede llevar a cabo.

Page 39: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Documentación de los contratos con Javadoc

/** * Este método afilia un nuevo socio al club * <b>pre:</b>La lista de socios esta inicializada (no es null). </br> * <b>post:</b>Se ha afiliado un nuevo socio al club con los datos dados. </br> * @param cedula Es la cédula del nuevo socio. Cedula != null, cedula != “” * @param nombre Es el nombre del nuevo socio. nombre != null, cedula != “” * @throws Exception si un socio con la misma cédula ya estaba afiliado al club,

dispara una excepción indicando que la nueva afiliación no se puede llevar a cabo.

*/

public void afiliarSocio( String cedula, String nombre) throws Exception{}

Page 40: Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4

Taller No 4Identificar precondición de un método