La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4."— Transcripción de la presentación:

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

2 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

3 Contrato de un método Acuerdo entre quien implementa el método y quien lo usa Método Signatura del método Se establece claramente Condiciones para definir los resultados

4 Caso de estudio No 1 Club social

5 Caso de estudio No 1 Comprensión de los requerimientos. Comprensión del mundo del problema. Definición de la arquitectura.

6 Comprensión de los requerimientos

7 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

8 Definición de la arquitectura Club Socio Factura ClubTest SocioTest

9 Declaración de las clases public class Club { } public class Socio { } public class Factura { }

10 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

11 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?

12 Asignación de resposabilidades

13 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

14 Asignación de responsabilidades NombreR1-Pagar una factura ResumenSe requiere pagar la factura de un socio Entradas Socio Factura a pagar Resultados Se ha cancelado la factura seleccionada.

15 Asignación de responsabilidades Descomposición del requerimiento 1.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)

16 Asignación de responsabilidades NombreR2-Registrar una persona autorizada ResumenSe requiere registrar una persona autorizada de un socio Entradas Socio Nombre autorizado Resultados Se ha registrado una persona autorizada a un socio.

17 Asignación de responsabilidades Descomposición del requerimiento 1.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)

18 Asignación de responsabilidades R2-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 de la persona autorizada agregarAutorizado()

19 Taller no 1

20 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

21 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.

22 Manejo de excepciones Instrucción try-catch try { 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.

23 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édula Socio s = buscarSocio( cd ); if ( s == null) { //Se crea el objeto socio Socio nuevoSocio = new Socio( cd, nm ); // Se agrega el socio al club socios.add( nuevoSocio); } else { // Si el socio ya existia lanza la excepción throw new Exception( “El socio ya existe” ); }

24 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

25 Contrato de un método Acuerdo entre quien implementa el método y quien lo usa Método Signatura del método Se establece claramente Condiciones para definir los resultados

26 Contrato de un método public void afiliarSocio( String cedula, String nombre ) throws Exception Antes de ejecutar el método: 1.La lista de socios ya fue creada 2.La cédula no es null, ni vacía 3.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: 1.Todo funciona bien y el socio se afilia al club. 2.Se produjo un error y se informó del problema con una excepción.

27 Contrato de un método Precondiciones y postcondiciones Precondició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.

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

29 Contrato de un método Precondiciones y postcondiciones Postcondició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.

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

31 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.

32 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.

33 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

34 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. * pre: La lista de socios esta inicializada (no es null).

35 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. * post: Se ha afiliado un nuevo socio al club con los datos dados.

36 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 != “”

37 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

38 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.

39 Documentación de los contratos con Javadoc /** * Este método afilia un nuevo socio al club * pre: La lista de socios esta inicializada (no es null). * post: Se ha afiliado un nuevo socio al club con los datos dados. * @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 { }

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


Descargar ppt "Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4."

Presentaciones similares


Anuncios Google