¿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
martes, 24 de mayo de 2011
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
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.
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
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
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:
- 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.
- 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.
- Documenta el código: Las propias pruebas son documentación del código puesto que ahí se puede ver cómo utilizarlo.
- 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.
- 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
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.
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 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.
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:
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.
- Basebean: Heredar funcionalidad de una clase utilidad en lugar de delegar en ella.
- Llamar a super: Obligar a las subclases a llamar a un método de la superclase que ha sido sobrescrito.
- Objeto sumidero: Reusar 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.
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
Suscribirse a:
Entradas (Atom)