SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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
NIVEL 4

             REDES SOCIALES




           mjvc007@hotmail.com




        http://twitter.com/mariocloud




http://linkedin.com/in/mariojosevillamizarcano
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

                     CASOS DE ESTUDIO
1 Caso de estudio: Un Club Social
NIVEL 4

                    CASOS DE ESTUDIO
2 Caso de estudio: Brazo Mecánico
NIVEL 4

                     HOJAS DE TRABAJO
1 Hoja de trabajo: Venta de Boletas en una Sala de Cine
NIVEL 4

                    HOJAS DE TRABAJO
2 Hoja de trabajo: Un Sistema de Préstamos
NIVEL 4

CASO DE ESTUDIO – EL CLUB DE SOCIOS
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

                         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

               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

                        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

                      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

                       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

                    MANEJO DE EXCEPCIONES

En el siguiente caso el método NO genera ninguna excepción:
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

                       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



PREGUNTAS
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

                                  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

                                   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

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

                                 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

                               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

DOCUMENTACIÓN JavaDoc
NIVEL 4

DOCUMENTACIÓN JavaDoc
NIVEL 4



PREGUNTAS

Contenu connexe

Tendances

Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteJosé Antonio Sandoval Acosta
 
Programación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónProgramación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Elementos de diagramas de secuencias
Elementos de diagramas de secuenciasElementos de diagramas de secuencias
Elementos de diagramas de secuenciasJorge Reyes
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Java 8 introducción a expresiones lambdas y api stream
Java 8  introducción a expresiones lambdas y api streamJava 8  introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api streamEudris Cabrera
 
MANUAL DE NETBEANS
MANUAL DE NETBEANSMANUAL DE NETBEANS
MANUAL DE NETBEANSAlfa Mercado
 
Curso Uml 2.1 Diagramas De Cu Y Clases
Curso Uml   2.1 Diagramas De Cu Y ClasesCurso Uml   2.1 Diagramas De Cu Y Clases
Curso Uml 2.1 Diagramas De Cu Y ClasesEmilio Aviles Avila
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasJosé Antonio Sandoval Acosta
 
Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)Rommel Lòpez
 
Teoria de los lenguajes de programacion
Teoria de los lenguajes de programacionTeoria de los lenguajes de programacion
Teoria de los lenguajes de programacionMario Bastidas
 

Tendances (20)

UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
Gramaticas y lic
Gramaticas y licGramaticas y lic
Gramaticas y lic
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Gramáticas formales
Gramáticas formales Gramáticas formales
Gramáticas formales
 
Programación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónProgramación modular en Introducción a la Programación
Programación modular en Introducción a la Programación
 
Elementos de diagramas de secuencias
Elementos de diagramas de secuenciasElementos de diagramas de secuencias
Elementos de diagramas de secuencias
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Curso Uml 2.6 Otros Diagramas
Curso Uml   2.6 Otros DiagramasCurso Uml   2.6 Otros Diagramas
Curso Uml 2.6 Otros Diagramas
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
Visual Basic. Net
Visual Basic. NetVisual Basic. Net
Visual Basic. Net
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Java 8 introducción a expresiones lambdas y api stream
Java 8  introducción a expresiones lambdas y api streamJava 8  introducción a expresiones lambdas y api stream
Java 8 introducción a expresiones lambdas y api stream
 
MANUAL DE NETBEANS
MANUAL DE NETBEANSMANUAL DE NETBEANS
MANUAL DE NETBEANS
 
Curso Uml 2.1 Diagramas De Cu Y Clases
Curso Uml   2.1 Diagramas De Cu Y ClasesCurso Uml   2.1 Diagramas De Cu Y Clases
Curso Uml 2.1 Diagramas De Cu Y Clases
 
Recursividad
RecursividadRecursividad
Recursividad
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Topicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 EventosTopicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 Eventos
 
Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)
 
Teoria de los lenguajes de programacion
Teoria de los lenguajes de programacionTeoria de los lenguajes de programacion
Teoria de los lenguajes de programacion
 

En vedette (12)

APO1 - Presentacion nivel 3
APO1 - Presentacion nivel 3APO1 - Presentacion nivel 3
APO1 - Presentacion nivel 3
 
APO1 - Presentacion nivel 2
APO1 - Presentacion nivel 2APO1 - Presentacion nivel 2
APO1 - Presentacion nivel 2
 
APO2 - Presentacion nivel 7
APO2 - Presentacion nivel 7APO2 - Presentacion nivel 7
APO2 - Presentacion nivel 7
 
APO1 - Presentacion nivel 1
APO1 - Presentacion nivel 1APO1 - Presentacion nivel 1
APO1 - Presentacion nivel 1
 
APO2 - Presentacion nivel 8
APO2 - Presentacion nivel 8APO2 - Presentacion nivel 8
APO2 - Presentacion nivel 8
 
APO1 - Presentacion nivel 6
APO1 - Presentacion nivel 6APO1 - Presentacion nivel 6
APO1 - Presentacion nivel 6
 
APO2 - Presentacion nivel 10
APO2 - Presentacion nivel 10APO2 - Presentacion nivel 10
APO2 - Presentacion nivel 10
 
APO2 - Presentacion nivel 9
APO2 - Presentacion nivel 9APO2 - Presentacion nivel 9
APO2 - Presentacion nivel 9
 
De diagrama de clase a Codigo Java
De diagrama de clase a Codigo JavaDe diagrama de clase a Codigo Java
De diagrama de clase a Codigo Java
 
Persistencia jpa
Persistencia jpaPersistencia jpa
Persistencia jpa
 
Emprendimiento en internet y startups 2017
Emprendimiento en internet y startups 2017Emprendimiento en internet y startups 2017
Emprendimiento en internet y startups 2017
 
Tecnicas grupales
Tecnicas grupalesTecnicas grupales
Tecnicas grupales
 

Similaire à APO1 - Presentacion nivel 4

Vencer la resistencia al Diseño Centrado en el Usuario
Vencer la resistencia al Diseño Centrado en el UsuarioVencer la resistencia al Diseño Centrado en el Usuario
Vencer la resistencia al Diseño Centrado en el UsuarioJuan Manuel Carraro
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de softwarevivymoreno
 
Taller Evento TestingUY 2018 - Probando la experiencia de usuario
Taller Evento TestingUY 2018 - Probando la experiencia de usuarioTaller Evento TestingUY 2018 - Probando la experiencia de usuario
Taller Evento TestingUY 2018 - Probando la experiencia de usuarioTestingUy
 
Taller en TestingUy 2018: Probando la experiencia de usuario
Taller en TestingUy 2018: Probando la experiencia de usuarioTaller en TestingUy 2018: Probando la experiencia de usuario
Taller en TestingUy 2018: Probando la experiencia de usuarioClaudia Badell
 
Metodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacionMetodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacioncaroyu
 
Carrera de informatica_educativa
Carrera de informatica_educativaCarrera de informatica_educativa
Carrera de informatica_educativaDiego Sinche
 
Anexo 18 actividad 5 adminsitracion de sistemas operativos en red 1
Anexo 18  actividad 5 adminsitracion de sistemas operativos en red 1Anexo 18  actividad 5 adminsitracion de sistemas operativos en red 1
Anexo 18 actividad 5 adminsitracion de sistemas operativos en red 1Angel Rene
 
9. Cómo identificar el conocimiento
9. Cómo identificar el conocimiento9. Cómo identificar el conocimiento
9. Cómo identificar el conocimientoCRISEL BY AEFOL
 
Caso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitarioCaso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitarioChamilo Venezuela
 
Caso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitarioCaso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitarioChamilo Association
 
Ingenieria de requisitos
Ingenieria de requisitosIngenieria de requisitos
Ingenieria de requisitosJoamarbet
 
Manual de procedimientos
Manual de procedimientosManual de procedimientos
Manual de procedimientosLina Vega
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacionDemián Gutierrez
 
Requerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitarRequerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitarDharma Consulting
 
Unidad iv alternativas de adquisición de sistemas de
Unidad iv alternativas de adquisición de sistemas deUnidad iv alternativas de adquisición de sistemas de
Unidad iv alternativas de adquisición de sistemas depheramrh
 

Similaire à APO1 - Presentacion nivel 4 (20)

clase5.pdf
clase5.pdfclase5.pdf
clase5.pdf
 
Obtencion de requisitos
Obtencion de requisitosObtencion de requisitos
Obtencion de requisitos
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Vencer la resistencia al Diseño Centrado en el Usuario
Vencer la resistencia al Diseño Centrado en el UsuarioVencer la resistencia al Diseño Centrado en el Usuario
Vencer la resistencia al Diseño Centrado en el Usuario
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Práctica 4 (anexo19)
Práctica 4 (anexo19)Práctica 4 (anexo19)
Práctica 4 (anexo19)
 
Taller Evento TestingUY 2018 - Probando la experiencia de usuario
Taller Evento TestingUY 2018 - Probando la experiencia de usuarioTaller Evento TestingUY 2018 - Probando la experiencia de usuario
Taller Evento TestingUY 2018 - Probando la experiencia de usuario
 
Taller en TestingUy 2018: Probando la experiencia de usuario
Taller en TestingUy 2018: Probando la experiencia de usuarioTaller en TestingUy 2018: Probando la experiencia de usuario
Taller en TestingUy 2018: Probando la experiencia de usuario
 
Metodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacionMetodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacion
 
Carrera de informatica_educativa
Carrera de informatica_educativaCarrera de informatica_educativa
Carrera de informatica_educativa
 
Anexo 18 actividad 5 adminsitracion de sistemas operativos en red 1
Anexo 18  actividad 5 adminsitracion de sistemas operativos en red 1Anexo 18  actividad 5 adminsitracion de sistemas operativos en red 1
Anexo 18 actividad 5 adminsitracion de sistemas operativos en red 1
 
9. Cómo identificar el conocimiento
9. Cómo identificar el conocimiento9. Cómo identificar el conocimiento
9. Cómo identificar el conocimiento
 
Caso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitarioCaso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitario
 
Caso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitarioCaso: Chamilo en el ámbito universitario
Caso: Chamilo en el ámbito universitario
 
Ingenieria de requisitos
Ingenieria de requisitosIngenieria de requisitos
Ingenieria de requisitos
 
Manual de procedimientos
Manual de procedimientosManual de procedimientos
Manual de procedimientos
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacion
 
Requerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitarRequerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitar
 
Unidad iv alternativas de adquisición de sistemas de
Unidad iv alternativas de adquisición de sistemas deUnidad iv alternativas de adquisición de sistemas de
Unidad iv alternativas de adquisición de sistemas de
 

Plus de Mario Jose Villamizar Cano

e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...Mario Jose Villamizar Cano
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsMario Jose Villamizar Cano
 
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)Mario Jose Villamizar Cano
 
An Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and EntrepreneurshipAn Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and EntrepreneurshipMario Jose Villamizar Cano
 
Energy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud InfrastructureEnergy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud InfrastructureMario Jose Villamizar Cano
 
Emprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet StartupsEmprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet StartupsMario Jose Villamizar Cano
 
e-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific Computinge-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific ComputingMario Jose Villamizar Cano
 
Cloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedoresCloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedoresMario Jose Villamizar Cano
 
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceUnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceMario Jose Villamizar Cano
 
Bio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow executionBio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow executionMario Jose Villamizar Cano
 
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Mario Jose Villamizar Cano
 
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...Mario Jose Villamizar Cano
 
Una grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombiaUna grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombiaMario Jose Villamizar Cano
 
Infraestructura computacional: Computación en grid
Infraestructura computacional: Computación en gridInfraestructura computacional: Computación en grid
Infraestructura computacional: Computación en gridMario Jose Villamizar Cano
 

Plus de Mario Jose Villamizar Cano (16)

e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
 
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
 
An Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and EntrepreneurshipAn Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and Entrepreneurship
 
Energy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud InfrastructureEnergy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud Infrastructure
 
Emprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet StartupsEmprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet Startups
 
e-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific Computinge-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific Computing
 
Cloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedoresCloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedores
 
CLOUD COMPUTING HOY: Todo como Servicio.
CLOUD COMPUTING HOY: Todo como Servicio.CLOUD COMPUTING HOY: Todo como Servicio.
CLOUD COMPUTING HOY: Todo como Servicio.
 
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceUnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
 
Bio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow executionBio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow execution
 
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
 
An Opportunistic Storage System for UnaGrid
An Opportunistic Storage System for UnaGridAn Opportunistic Storage System for UnaGrid
An Opportunistic Storage System for UnaGrid
 
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
 
Una grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombiaUna grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombia
 
Infraestructura computacional: Computación en grid
Infraestructura computacional: Computación en gridInfraestructura computacional: Computación en grid
Infraestructura computacional: Computación en grid
 

Dernier

Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...Ars Erótica
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxpaogar2178
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 

Dernier (20)

Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 

APO1 - Presentacion nivel 4

  • 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
  • 8. NIVEL 4 CASO DE ESTUDIO – EL CLUB DE SOCIOS
  • 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”