martes, 24 de mayo de 2011

PRUEBAS UNITARIAS

¿Qué son las pruebas unitarias?

Es una forma de probar el correcto funcionamiento de un módulo de código.

Para que una prueba unitaria sea buena se deben cumplir los siguientes requisitos:
Automatizable: no debería requerirse una intervención manual. Esto es especialmente útil para integración continua.
Completas: deben cubrir la mayor cantidad de código.
Repetibles o Reutilizables: no se deben crear pruebas que sólo puedan ser ejecutadas una sola vez. También es útil para integración continua.
Independientes: la ejecución de una prueba no debe afectar a la ejecución de otra.
Profesionales: las pruebas deben ser consideradas igual que el código, con la misma profesionalidad, documentación, etc

patrones de diseño



Un patrón de diseño es:
• una solución estándar para un problema común de programación
• una técnica para flexibilizar el código haciéndolo satisfacer ciertos criterios
• un proyecto o estructura de implementación que logra una finalidad determinada
• un lenguaje de programación de alto nivel
• una manera más práctica de describir ciertos aspectos de la organización de un programa • conexiones entre componentes de programas
• la forma de un diagrama de objeto o de un modelo de objeto.

Existen tres tipos de Patrones de diseño y cada uno se divide en mas Patrones

Patrones de creación
Abstract Factory.
Builder.
Factory Method.
Prototype.
Singleton.

Patrones estructurales
Adapter.
Bridge.
Composite.
Decorator.
Facade.
Flyweight.
Proxy.

Patrones de comportamiento
Chain of Responsibility.
Command.
Interpreter.
Iterator.
Mediator.
Observer.
State.
Strategy.
Template Method.
Visitor

NO HAY LONCHE GRATIS

El "No hay lonche gratis" Teorema de optimización (CFN) es un teorema de imposibilidad que nos dice que una estrategia universal de optimización de propósito general es imposible, y la única manera de una estrategia puede superar a otro es si se especializa en la estructura del problema específico bajo consideración

lunes, 23 de mayo de 2011

diagrama uml

aqui en mi diagrama inicia con el comprador quien sera el que acceda al catalogo una vez en el catalogo el usuario volvera a introducir los parametros de busqueda  el catalogo acederra a su  inventario  y regresara una respuesta de busqueda  al usuario como puede ser busqueda encontrada y asi el usuario ira  por el producto y comprarlo o si no se encuentra en inventario se retirara  y regresara otro dia

jueves, 19 de mayo de 2011

PROYECTO FINAL

patrones de diseño

el patrón que utilizaría en  mi proyecto seria el memento  que permite el roll- back asi cuando una persona use el buscador avanzado y escojiera siertos criterios para la busqueda pueda regresar  ala pagina principal del buscador sin la necesidad de volver a escoger los campos o reescribir el nombre asi solo cambiara los valores que crea el nesesario

sistema distribuido

en mi proyecto  de catalogo de  videojuegos
se utilizaria un sistema nube por que se utilisaria un servidor exclusivo de la tienda asi se formaria una red  donde todas las tiendas pudieran tener acceso  a un catalogo y ya escogiendo la tienda mostraria su inventario determinado  y facilitaria a un cliente de que si no se encuentra en la tienda que se encuentra  podrian verificarle ahi si hay en existencia el articulo que busca en otra tienda sercana.

eventos, excepciones y errores

un  evento  que podría utilisarse en el catalogo es que cuando un producto se marque en existencia o agotado se genere una alerta para que si no estaba exhibido se ponga en los estantes o a su inversa se genere una orden de pedido automático al encargado de resurtir el producto.

EXCEPCION:
seria que  en el buscador se pudiera escribir tanto con mayuscula o minuscula, o que tenga auto completado la busqueda  o que tenga sierto criterio con la falta de ortografia y muestre una lista de sugerencias

ERRORES
 si llegase a ver un error en la busqueda de un juego o donde se encontraba almasenado dicho juego no se pudiera tener acceso  para evitar una pagina  sin propocito y solo un mensaje de error se mostrara un mensaje de el accesorio o juego no se encuentra disponible por el momento   y se mostrara articulos en promocion o lo mas nuevo que este estable y el usuario pueda acceder sin problema  como en la imajen de arriba que le muestra una serie de juego.

INTERFAZ




aqui se mostraria la interfaz del buscado aqui se introdusiria el nombre del juego, accesorio o consola que se busca 




aqui se muestra un resultado de una busqueda que incluira precio si se encuentra en el inventario de la tienda y una brebe descripcion ya sea de un juego,accesorio o consola




aqui es la interfaz ya de la selección de un juego especifico donde vendrá una informacion mas detallada como control parental  fecha de salida una introducción porcentaje de juego imágenes videos, material extra y valoracion por personas que compraron el producto.

PRUEBAS UNITARIAS

En programación, una prueba unitaria es una forma de probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado. Luego, con las Pruebas de Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión.
La idea es escribir casos de prueba para cada función no trivial o método en el módulo de forma que cada caso sea independiente del resto.
Para que una prueba unitaria sea buena se deben cumplir los siguientes requisitos:
  • Automatizable: no debería requerirse una intervención manual. Esto es especialmente útil para integración continua.
  • Completas: deben cubrir la mayor cantidad de código.
  • Repetibles o Reutilizables: no se deben crear pruebas que sólo puedan ser ejecutadas una sola vez. También es útil para integración continua.
  • Independientes: la ejecución de una prueba no debe afectar a la ejecución de otra.
  • Profesionales: las pruebas deben ser consideradas igual que el código, con la misma profesionalidad, documentación, etc.
VENTAJAS

El objetivo de las pruebas unitarias es aislar cada parte del programa y mostrar que las partes individuales son correctas. Proporcionan un contrato escrito que el trozo de código debe satisfacer. Estas pruebas aisladas proporcionan cinco ventajas básicas:
  1. Fomentan el cambio: Las pruebas unitarias facilitan que el programador cambie el código para mejorar su estructura (lo que se ha dado en llamar refactorización), puesto que permiten hacer pruebas sobre los cambios y así asegurarse de que los nuevos cambios no han introducido errores.
  2. Simplifica la integración: Puesto que permiten llegar a la fase de integración con un grado alto de seguridad de que el código está funcionando correctamente. De esta manera se facilitan las pruebas de integración.
  3. Documenta el código: Las propias pruebas son documentación del código puesto que ahí se puede ver cómo utilizarlo.
  4. Separación de la interfaz y la implementación: Dado que la única interacción entre los casos de prueba y las unidades bajo prueba son las interfaces de estas últimas, se puede cambiar cualquiera de los dos sin afectar al otro, a veces usando objetos mock (mock object) para simular el comportamiento de objetos complejos.
  5. Los errores están más acotados y son más fáciles de localizar: dado que tenemos pruebas unitarias que pueden desenmascararlos.