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.

jueves, 7 de abril de 2011

diagrama uml



DIAGRAMAS DE CLASE Y SECUENCIA DE UML

DIAGRAMA DE CLASE: Un diagrama de clase sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenimiento.

Un diagrama de clases esta compuesto por los siguientes elementos:

Clase: atributos, métodos y visibilidad.
Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

En UML, una clase es representada por un rectángulo que posee tres divisiones

herencia y polimorfismo

- herencia:
La herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
aqui en mi proyecto usaria erencia en el buscador ya que reutilizaria  al mostrar los resultados de la busqueda ya que contienen los mismas celdas .


-Polimorfismo:
La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos

En programación orientada a objetos el polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.

en mi proyecto utilizare polimorfismo en la pantalla principal del buscador donde el usuario podra seleccionar como dirigir la busqueda si por juego , consola o accesorio.

diseño con clases

1) clase catalogo: en esta clase que sera la principal donde el usuario se desplasara por el catalogo y que se va relacionando con las demas clases.

atributos: titulo,consola, genero clasificacion

metodos:aqui se podra buscar directamente poniendo el nombre del juego, consola y accesorio. y tambien podra hacerse una busqueda mas especialisada escogiendo una o mas categorias y para la consola requerida

2)clase videojuego: en esta clase se mostrara el resultado de los videojuegos relacionados  y sujeridos  al usuario .

atributos: videojuegos,nombre, imajen, clasificacion, consola, genero,precio.
metodos: aqui al escojer el juego se abrira toda la informacion referente a este juego de interes para el usuario

3)clase consola: en esta clase se mostrara el resultado de la consola relacionada y sujerencias.
atributos:consola.
metodo: desplegando una opcion para escojer el tipo de consola que requiere ya sea de casa o portatil

4)clase accesorio: esta clase mostrara el resultado  de los accesorios requeridos y sujeridos al usuario.
atributo: consola
metodo: escogiendo la consola para la que requiere el accesorio y asi se desplegaran todos los accesorios.

sistema de catalogo (proyecto)

El software que se desarrollara se trata de un sistema de catalogo de videojuegos  pensado para tiendas especializadas y  no especializadas en sus ventas así facilitar  el acceso  y la compra de estos.
Este catalogo tiene como objetivo agilizar  la búsqueda tanto de juegos consolas accesorios, mostrando si se encuentra disponible en el inventario de la tienda cuando no se quiere perder tiempo mirando todo el aparador  y buscando entre toda la mercancía exhibida  también proporcionara información  del videojuego  como nombre, imágenes del videojuego, consola para las que se encuentra disponible, clasificación parental genero, reseña,  puntaje obtenido y precio .
La manera de uso podría ser de la  colocación de un quiosco interactivo  para los consumidores y vendedores así no seria necesario demasiada la intervención de un vendedor el mismo usuario podría guiarse en su búsqueda.




miércoles, 23 de marzo de 2011

ANTI PATRONES

Anti patrones: Son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software, que invariablemente conduce a una mala solución para un problema. existen los anti patrones de : Gestión, Gestión de , proyectos, De diseño de software, orientado a objetos y de programación.


4 ejemplos de anti patrones de Programación Orientada a Objetos:



  • Acoplamiento secuencial: consiste en construir una clase que necesita que sus métodos se invoquen en un orden determinado.
  • BasebeanHeredar funcionalidad de una clase utilidad en lugar de delegar en ella.
  • Llamar a superObligar a las subclases a llamar a un método de la superclase que ha sido sobrescrito.
  • Objeto sumideroReusar objetos no adecuados realmente para el fin que se persigue.




jueves, 17 de marzo de 2011

singleton y command

-Singleton (instancia unica ):
El  patron singleton tiene la funcion de restringir la creación de objetos pertenecientes a una clase o el valor.  Es implementado en las clases cuya intencion es que solo se tenga una instancia y proporcionar un punto de axeso a sia dicha clase y es implementado mayormente en en donde el control de acceso a un recurso fisico como :raton, o un archivo abierto.  O cuando cierto tipo de dato debe estar disponible.

-command (comando):
este patron permite solicitar una operacion un objeto  sin conoser su contenido y es aplicable para facilitar  la  parametrización de las acciones a realizar,Independizar el momento de petición del de ejecución y soportar el deshacer.

miércoles, 26 de enero de 2011

idea de programa de POO

mi idea del programa seria hacer  un programa de inventario que marque cuanto inventario hay  que tipo de cosas hay y cuantas hay   de cada una....es una idea baga espero conforme pase el tiempo y amplie mi conocimiento  formar y mejorar la idea de programa o rediseñarlo